aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2021-09-06 10:57:40 +0100
committerSimon Tatham <anakin@pobox.com>2021-09-06 10:57:40 +0100
commit6691ad180cdd6f80673c49392c401ba8d6c5d3e7 (patch)
tree2c89fdca036ba5f926a428e8df8c0d0a273492a6
parentc108271b44c9607fce88499d794cbf1648213f1d (diff)
downloadpuzzles-6691ad180cdd6f80673c49392c401ba8d6c5d3e7.zip
puzzles-6691ad180cdd6f80673c49392c401ba8d6c5d3e7.tar.gz
puzzles-6691ad180cdd6f80673c49392c401ba8d6c5d3e7.tar.bz2
puzzles-6691ad180cdd6f80673c49392c401ba8d6c5d3e7.tar.xz
Fix benchmark.sh for the new cmake world.
It relied on reading gamedesc.txt to find a list of puzzle binaries to run. But gamedesc.txt is now specific to the Windows build (since it contains Windows executable names), and isn't available in the Unix cmake build directory. Fixed by making a simpler gamelist.txt available on all platforms.
-rw-r--r--CMakeLists.txt2
-rwxr-xr-xbenchmark.sh8
-rw-r--r--cmake/setup.cmake12
3 files changed, 19 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4b103a3..9e8d96f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -275,4 +275,4 @@ cliprogram(penrose-vector-test penrose.c COMPILE_DEFINITIONS TEST_VECTORS)
cliprogram(sort-test sort.c COMPILE_DEFINITIONS SORT_TEST)
cliprogram(tree234-test tree234.c COMPILE_DEFINITIONS TEST)
-build_platform_extras()
+build_extras()
diff --git a/benchmark.sh b/benchmark.sh
index b3af277..3e24491 100755
--- a/benchmark.sh
+++ b/benchmark.sh
@@ -2,11 +2,15 @@
# Run every puzzle in benchmarking mode, and generate a file of raw
# data that benchmark.pl will format into a web page.
+#
+# Expects to be run in the cmake build directory, where it can find
+# both the game binaries themselves and the file gamelist.txt that
+# lists them.
# If any arguments are provided, use those as the list of games to
-# benchmark. Otherwise, read the full list from gamedesc.txt.
+# benchmark. Otherwise, read the full list from gamelist.txt.
if test $# = 0; then
- set -- $(cut -f1 -d: < gamedesc.txt)
+ set -- $(cat gamelist.txt)
fi
failures=false
diff --git a/cmake/setup.cmake b/cmake/setup.cmake
index 26eb74d..ee39dbf 100644
--- a/cmake/setup.cmake
+++ b/cmake/setup.cmake
@@ -160,3 +160,15 @@ macro(export_variables_to_parent_scope)
set(objective_${name} ${objective_${name}} PARENT_SCOPE)
endforeach()
endmacro()
+
+macro(build_extras)
+ # Write out a list of the game names, for benchmark.sh to use.
+ file(WRITE ${CMAKE_BINARY_DIR}/gamelist.txt "")
+ list(SORT puzzle_names)
+ foreach(name ${puzzle_names})
+ file(APPEND ${CMAKE_BINARY_DIR}/gamelist.txt "${name}\n")
+ endforeach()
+
+ # Further extra stuff specific to particular platforms.
+ build_platform_extras()
+endmacro()