From 5182b6aa204ae39fd0e9b4a5f9196c580b3e969e Mon Sep 17 00:00:00 2001 From: Max Luebke Date: Mon, 8 Apr 2024 15:29:47 +0000 Subject: [PATCH] Refactor build file generation --- bench/CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- bench/barite/CMakeLists.txt | 26 +++++++++++++++++++------- bench/dolo/CMakeLists.txt | 25 +++++++++++++++++-------- bench/surfex/CMakeLists.txt | 23 ++++++++++++++++------- src/CMakeLists.txt | 2 +- 5 files changed, 84 insertions(+), 24 deletions(-) diff --git a/bench/CMakeLists.txt b/bench/CMakeLists.txt index 6b5e9b9f3..2f0eb9cbd 100644 --- a/bench/CMakeLists.txt +++ b/bench/CMakeLists.txt @@ -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 $ -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(surfex) -add_subdirectory(barite) + diff --git a/bench/barite/CMakeLists.txt b/bench/barite/CMakeLists.txt index 6c8b63aee..b51d1533b 100644 --- a/bench/barite/CMakeLists.txt +++ b/bench/barite/CMakeLists.txt @@ -1,8 +1,20 @@ -install(FILES - barite.R - barite_interp_eval.R - barite.pqi - db_barite.dat -DESTINATION - share/poet/bench/barite +# Create a list of files +set(bench_files + barite_200.R + barite_het.R ) + +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) \ No newline at end of file diff --git a/bench/dolo/CMakeLists.txt b/bench/dolo/CMakeLists.txt index d2c0acd1e..b32d79432 100644 --- a/bench/dolo/CMakeLists.txt +++ b/bench/dolo/CMakeLists.txt @@ -1,9 +1,18 @@ -install(FILES - dolo_diffu_inner.R - dolo_diffu_inner_large.R - dolo_inner.pqi - dolo_interp_long.R - phreeqc_kin.dat -DESTINATION - share/poet/bench/dolo +set(bench_files + dolo_inner_large.R + dolo_interp.R ) + +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) \ No newline at end of file diff --git a/bench/surfex/CMakeLists.txt b/bench/surfex/CMakeLists.txt index c5a605c6c..09408e038 100644 --- a/bench/surfex/CMakeLists.txt +++ b/bench/surfex/CMakeLists.txt @@ -1,9 +1,18 @@ -install(FILES - ExBase.pqi - ex.R +set(bench_files surfex.R - SurfExBase.pqi - SMILE_2021_11_01_TH.dat -DESTINATION - share/poet/bench/surfex + ex.R ) + +set(runtime_files + surfex_rt.R + ex_rt.R +) + +ADD_BENCH_TARGET( + surfex_bench + bench_files + runtime_files + "surfex" +) + +add_dependencies(${BENCHTARGET} surfex_bench) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c4e8d759d..5d77d60e0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -81,5 +81,5 @@ add_executable(poet_init initializer.cpp) target_link_libraries(poet_init PRIVATE POETLib RRuntime) target_include_directories(poet_init PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") -# install(TARGETS poet DESTINATION bin) +install(TARGETS poet poet_init DESTINATION bin)