Refactor build file generation

This commit is contained in:
Max Luebke 2024-04-08 15:29:47 +00:00
parent d53db0d5a5
commit 5182b6aa20
5 changed files with 84 additions and 24 deletions

View File

@ -1,3 +1,33 @@
function(ADD_BENCH_TARGET TARGET POET_BENCH_LIST RT_FILES OUT_PATH)
add_custom_target(${TARGET})
set(bench_install_dir share/poet/${OUT_PATH})
foreach(BENCH_FILE ${${POET_BENCH_LIST}})
get_filename_component(BENCH_NAME ${BENCH_FILE} NAME_WE)
set(OUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${BENCH_NAME}.rds)
add_custom_command(TARGET ${TARGET}
COMMAND $<TARGET_FILE:poet_init> -o ${OUT_FILE} -s ${CMAKE_CURRENT_SOURCE_DIR}/${BENCH_FILE}
COMMENT "Running poet_init on ${BENCH_FILE}"
DEPENDS poet_init
VERBATIM
)
install(FILES ${OUT_FILE} DESTINATION ${bench_install_dir})
endforeach(BENCH_FILE ${${POET_BENCH_LIST}})
# install all ADD_FILES to the same location
install(FILES ${${RT_FILES}} DESTINATION ${bench_install_dir})
endfunction()
# define target name
set(BENCHTARGET benchmarks)
add_custom_target(${BENCHTARGET} ALL)
add_subdirectory(barite)
add_subdirectory(dolo) add_subdirectory(dolo)
add_subdirectory(surfex) add_subdirectory(surfex)
add_subdirectory(barite)

View File

@ -1,8 +1,20 @@
install(FILES # Create a list of files
barite.R set(bench_files
barite_interp_eval.R barite_200.R
barite.pqi barite_het.R
db_barite.dat
DESTINATION
share/poet/bench/barite
) )
set(runtime_files
barite_200_rt.R
barite_het_rt.R
)
# add_custom_target(barite_bench DEPENDS ${bench_files} ${runtime_files})
ADD_BENCH_TARGET(barite_bench
bench_files
runtime_files
"barite"
)
add_dependencies(${BENCHTARGET} barite_bench)

View File

@ -1,9 +1,18 @@
install(FILES set(bench_files
dolo_diffu_inner.R dolo_inner_large.R
dolo_diffu_inner_large.R dolo_interp.R
dolo_inner.pqi
dolo_interp_long.R
phreeqc_kin.dat
DESTINATION
share/poet/bench/dolo
) )
set(runtime_files
dolo_inner_large_rt.R
dolo_interp_rt.R
)
ADD_BENCH_TARGET(
dolo_bench
bench_files
runtime_files
"dolo"
)
add_dependencies(${BENCHTARGET} dolo_bench)

View File

@ -1,9 +1,18 @@
install(FILES set(bench_files
ExBase.pqi
ex.R
surfex.R surfex.R
SurfExBase.pqi ex.R
SMILE_2021_11_01_TH.dat
DESTINATION
share/poet/bench/surfex
) )
set(runtime_files
surfex_rt.R
ex_rt.R
)
ADD_BENCH_TARGET(
surfex_bench
bench_files
runtime_files
"surfex"
)
add_dependencies(${BENCHTARGET} surfex_bench)

View File

@ -81,5 +81,5 @@ add_executable(poet_init initializer.cpp)
target_link_libraries(poet_init PRIVATE POETLib RRuntime) target_link_libraries(poet_init PRIVATE POETLib RRuntime)
target_include_directories(poet_init PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") target_include_directories(poet_init PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
# install(TARGETS poet DESTINATION bin) install(TARGETS poet poet_init DESTINATION bin)