1
1
add_custom_target (tests )
2
2
3
3
macro (NLOPT_add_cpp_test test_name )
4
- add_executable (${test_name} ${test_name} .cxx )
5
- target_link_libraries (${test_name} ${nlopt_lib} )
6
- add_dependencies (tests ${test_name} )
7
- target_include_directories (${test_name} PRIVATE ${NLOPT_PRIVATE_INCLUDE_DIRS} )
8
- foreach (arg IN ITEMS ${ARGN} )
9
- add_test (NAME check_${test_name}_${arg} COMMAND ${test_name} ${arg} )
10
- if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows )
11
- set_tests_properties (check_${test_name}_${arg}
12
- PROPERTIES ENVIRONMENT "PATH=${PROJECT_BINARY_DIR} \\ ${CMAKE_BUILD_TYPE} ;$ENV{PATH} " ) # to load dll
13
- endif ()
14
- endforeach ()
4
+ if (NLOPT_CXX )
5
+ add_executable (${test_name} ${test_name} .cxx )
6
+ target_link_libraries (${test_name} ${nlopt_lib} )
7
+ add_dependencies (tests ${test_name} )
8
+ target_include_directories (${test_name} PRIVATE ${NLOPT_PRIVATE_INCLUDE_DIRS} )
9
+ foreach (arg IN ITEMS ${ARGN} )
10
+ add_test (NAME check_${test_name}_${arg} COMMAND ${test_name} ${arg} )
11
+ if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows )
12
+ set_tests_properties (check_${test_name}_${arg}
13
+ PROPERTIES ENVIRONMENT "PATH=${PROJECT_BINARY_DIR} \\ ${CMAKE_BUILD_TYPE} ;$ENV{PATH} " ) # to load dll
14
+ endif ()
15
+ endforeach ()
16
+ endif ()
15
17
endmacro ()
16
18
17
19
NLOPT_add_cpp_test (t_tutorial 24 25 31 40 )
18
20
NLOPT_add_cpp_test (cpp_functor 0 )
19
21
NLOPT_add_cpp_test (t_fbound 0 )
20
22
NLOPT_add_cpp_test (t_except 1 0 )
21
-
22
23
NLOPT_add_cpp_test (t_bounded 0 1 2 3 4 5 6 7 8 19 35 42 43 )
23
- if (NOT NLOPT_CXX )
24
- set_tests_properties (check_t_bounded_8 check_t_bounded_43 PROPERTIES DISABLED TRUE )
25
- endif ()
26
24
27
25
# have to add timer.c and mt19937ar.c as symbols are declared extern
28
26
set (testopt_sources testfuncs.c testfuncs.h testopt.c ${PROJECT_SOURCE_DIR} /src/util/timer.c ${PROJECT_SOURCE_DIR} /src/util/mt19937ar.c )
@@ -67,7 +65,7 @@ foreach (algo_index RANGE 28) # 42
67
65
endforeach ()
68
66
endforeach ()
69
67
70
- if (Python_NumPy_FOUND AND ( SWIG_FOUND OR ( EXISTS ${PROJECT_SOURCE_DIR} /src/swig/nlopt-python.cpp )) )
68
+ if (TARGET nlopt_python )
71
69
set (PYINSTALLCHECK_ENVIRONMENT "LD_LIBRARY_PATH=${PROJECT_BINARY_DIR} /src/swig"
72
70
"PYTHONPATH=$<SHELL_PATH:${PROJECT_BINARY_DIR} /src/swig/python;${PROJECT_BINARY_DIR} /src/swig>"
73
71
)
@@ -85,7 +83,7 @@ endif ()
85
83
# The binding itself should also compile with more ancient Java versions that
86
84
# have already reached their end of life, but it is not worth uglifying the test
87
85
# code for them, because people will then cargo-cult the legacy boilerplate.
88
- if (JNI_FOUND AND Java_FOUND AND SWIG_FOUND AND NOT Java_VERSION VERSION_LESS 1.8 )
86
+ if (TARGET nlopt_java AND NOT Java_VERSION VERSION_LESS 1.8 )
89
87
include (UseJava )
90
88
add_jar (t_java SOURCES t_java.java INCLUDE_JARS nlopt_jar ENTRY_POINT t_java )
91
89
get_property (t_java_jar TARGET t_java PROPERTY JAR_FILE )
@@ -100,15 +98,15 @@ if (JNI_FOUND AND Java_FOUND AND SWIG_FOUND AND NOT Java_VERSION VERSION_LESS 1.
100
98
endforeach ()
101
99
endif ()
102
100
103
- if (OCTAVE_FOUND )
101
+ if (TARGET nlopt_optimize )
104
102
add_test (NAME test_octave COMMAND ${OCTAVE_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} /t_octave.m ${PROJECT_SOURCE_DIR} /src/octave ${PROJECT_BINARY_DIR} /src/octave )
105
103
endif ()
106
104
107
- if (MATLAB_FOUND )
105
+ if (TARGET nlopt_optimize-mex )
108
106
add_test (NAME test_matlab COMMAND ${Matlab_MAIN_PROGRAM} -nodesktop -nosplash -r "addpath('${PROJECT_SOURCE_DIR} /src/octave'); addpath('${PROJECT_BINARY_DIR} /src/octave'); try; run('${CMAKE_CURRENT_SOURCE_DIR} /t_matlab.m'); catch; exit(1); end; quit" )
109
107
endif ()
110
108
111
- if (GUILE_FOUND AND ( SWIG_FOUND OR ( EXISTS ${PROJECT_SOURCE_DIR} /src/swig/nlopt-guile.cpp )) )
109
+ if (TARGET nlopt_guile )
112
110
set (GUILECHECK_ENVIRONMENT "LD_LIBRARY_PATH=${PROJECT_BINARY_DIR} /src/swig"
113
111
"GUILE_LOAD_PATH=$<SHELL_PATH:${PROJECT_BINARY_DIR} /src/swig/guile;${PROJECT_BINARY_DIR} /src/swig>"
114
112
"GUILE_AUTO_COMPILE=0" )
0 commit comments