@@ -18,33 +18,13 @@ endif()
1818# Install the Mathematica package
1919# ##############################################################################
2020
21- if (WIN32 )
22- message (FATAL_ERROR "Installation on Windows is not yet supported - on it!." )
23- endif ()
24-
25- set (WolframLanguage_wolframscript_EXE "" )
26- execute_process (
27- COMMAND bash -c "which wolframscript"
28- OUTPUT_VARIABLE WolframLanguage_wolframscript_EXE
29- ERROR_QUIET )
30- if (WolframLanguage_wolframscript_EXE STREQUAL "" )
31- execute_process (
32- COMMAND bash -c "which wolfram"
33- OUTPUT_VARIABLE WolframLanguage_wolframscript_EXE
34- ERROR_QUIET )
35- endif ()
36- if (WolframLanguage_wolframscript_EXE STREQUAL "" )
37- execute_process (
38- COMMAND bash -c "which math"
39- OUTPUT_VARIABLE WolframLanguage_wolframscript_EXE
40- ERROR_QUIET )
41- endif ()
21+ find_program (WolframLanguage_wolframscript_EXE NAMES wolframscript wolfram math )
4222
4323# See if the variable WolframLanguage_wolframscript_EXE is defined
4424if (DEFINED ENV{WOLFRAM_SCRIPT})
4525 set (WolframLanguage_wolframscript_EXE $ENV{WOLFRAM_SCRIPT} )
4626elseif (NOT (WolframLanguage_wolframscript_EXE STREQUAL "" ))
47- # nothing to do, we found it with which
27+ # nothing to do, we found it with find_program
4828else ()
4929 set (WolframLanguage_wolframscript_EXE "" )
5030endif ()
@@ -60,7 +40,11 @@ if(NOT DEFINED WolframLanguage_wolframscript_EXE
6040 SHA256=78ba32abdf798bc616bab7c73aac32a17bbd7b06ad9e26a6add69de8f3ae4791 )
6141 include (${CMAKE_CURRENT_BINARY_DIR} /cmake/CPM.cmake )
6242 if ("${CPM_SOURCE_CACHE} " STREQUAL "OFF" OR NOT DEFINED CPM_SOURCE_CACHE)
63- set (CPM_SOURCE_CACHE $ENV{HOME} /.cache /CPM)
43+ if (WIN32 )
44+ set (CPM_SOURCE_CACHE $ENV{LOCALAPPDATA} /CPM)
45+ else ()
46+ set (CPM_SOURCE_CACHE $ENV{HOME} /.cache /CPM)
47+ endif ()
6448 endif ()
6549 # Get codeparser
6650 cpmaddpackage (
@@ -130,51 +114,89 @@ install(
130114# Testing
131115# ##############################################################################
132116
133- add_custom_target (
134- test
135- COMMAND
136- ${WolframLanguage_wolframscript_EXE} -script
137- ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m | tee
138- ${CMAKE_CURRENT_BINARY_DIR} /test.log
139- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
140- COMMENT "Running tests"
141- VERBATIM )
142-
143- # Run a single test file or directory:
144- # make test-single FILE=FEDeriK/FunctionalDTests.m
145- # make test-single FILE=FEDeriK
146- # Note: $(FILE) is expanded by Make at build time, not by CMake at configure
147- # time. VERBATIM is intentionally omitted so that Make resolves the variable.
148- add_custom_target (
149- test -single
150- COMMAND
151- ${WolframLanguage_wolframscript_EXE} -script
152- ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m $ (FILE ) | tee
153- ${CMAKE_CURRENT_BINARY_DIR} /test.log
154- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
155- COMMENT "Running tests" )
117+ if (WIN32 )
118+ add_custom_target (
119+ test
120+ COMMAND
121+ ${WolframLanguage_wolframscript_EXE} -script
122+ ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
123+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
124+ COMMENT "Running tests"
125+ VERBATIM )
126+
127+ add_custom_target (
128+ test -single
129+ COMMAND
130+ ${WolframLanguage_wolframscript_EXE} -script
131+ ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m $ (FILE )
132+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
133+ COMMENT "Running tests" )
134+ else ()
135+ add_custom_target (
136+ test
137+ COMMAND
138+ ${WolframLanguage_wolframscript_EXE} -script
139+ ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m | tee
140+ ${CMAKE_CURRENT_BINARY_DIR} /test.log
141+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
142+ COMMENT "Running tests"
143+ VERBATIM )
144+
145+ # Run a single test file or directory:
146+ # make test-single FILE=FEDeriK/FunctionalDTests.m
147+ # make test-single FILE=FEDeriK
148+ # Note: $(FILE) is expanded by Make at build time, not by CMake at configure
149+ # time. VERBATIM is intentionally omitted so that Make resolves the variable.
150+ add_custom_target (
151+ test -single
152+ COMMAND
153+ ${WolframLanguage_wolframscript_EXE} -script
154+ ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m $ (FILE ) | tee
155+ ${CMAKE_CURRENT_BINARY_DIR} /test.log
156+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /tests/Test.m
157+ COMMENT "Running tests" )
158+ endif ()
156159
157160# ##############################################################################
158161# Benchmarks
159162# ##############################################################################
160163
161- add_custom_target (
162- bench
163- COMMAND
164- ${WolframLanguage_wolframscript_EXE} -script
165- ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m | tee
166- ${CMAKE_CURRENT_BINARY_DIR} /bench.log
167- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
168- COMMENT "Running benchmarks"
169- VERBATIM )
170-
171- # Run a single benchmark file:
172- # make bench-single FILE=ScalarBench.m
173- add_custom_target (
174- bench-single
175- COMMAND
176- ${WolframLanguage_wolframscript_EXE} -script
177- ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m $ (FILE ) | tee
178- ${CMAKE_CURRENT_BINARY_DIR} /bench.log
179- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
180- COMMENT "Running benchmark" )
164+ if (WIN32 )
165+ add_custom_target (
166+ bench
167+ COMMAND
168+ ${WolframLanguage_wolframscript_EXE} -script
169+ ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
170+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
171+ COMMENT "Running benchmarks"
172+ VERBATIM )
173+
174+ add_custom_target (
175+ bench-single
176+ COMMAND
177+ ${WolframLanguage_wolframscript_EXE} -script
178+ ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m $ (FILE )
179+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
180+ COMMENT "Running benchmark" )
181+ else ()
182+ add_custom_target (
183+ bench
184+ COMMAND
185+ ${WolframLanguage_wolframscript_EXE} -script
186+ ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m | tee
187+ ${CMAKE_CURRENT_BINARY_DIR} /bench.log
188+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
189+ COMMENT "Running benchmarks"
190+ VERBATIM )
191+
192+ # Run a single benchmark file:
193+ # make bench-single FILE=ScalarBench.m
194+ add_custom_target (
195+ bench-single
196+ COMMAND
197+ ${WolframLanguage_wolframscript_EXE} -script
198+ ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m $ (FILE ) | tee
199+ ${CMAKE_CURRENT_BINARY_DIR} /bench.log
200+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /benchmarks/Benchmark.m
201+ COMMENT "Running benchmark" )
202+ endif ()
0 commit comments