@@ -117,7 +117,7 @@ set_target_properties(test_runtime PROPERTIES
117117
118118# Function for adding a test. This takes the name of the test and the list of
119119# source files as arguments.
120- function (addtest_flags TEST_NAME FLAGS TEST_SOURCE )
120+ function (addtest_flags TEST_NAME FLAGS TEST_SOURCE LINK_TARGET )
121121 if (${TEST_NAME} MATCHES ".*_arc" )
122122 # Only compile the main file with ARC
123123 set_source_files_properties (${TEST_SOURCE}
@@ -139,21 +139,28 @@ function(addtest_flags TEST_NAME FLAGS TEST_SOURCE)
139139 if (WIN32 )
140140 set_property (TEST ${TEST_NAME} PROPERTY ENVIRONMENT_MODIFICATION "PATH=path_list_append:${CMAKE_BINARY_DIR} " )
141141 endif ()
142- target_link_libraries (${TEST_NAME} objc )
142+ target_link_libraries (${TEST_NAME} ${LINK_TARGET} )
143143endfunction (addtest_flags )
144144
145- function (addtest_variants TEST TEST_SOURCE LEGACY )
146- addtest_flags (${TEST} "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " )
147- target_sources (${TEST} PRIVATE $<TARGET_OBJECTS :test_runtime >)
148- addtest_flags ("${TEST} _optimised" "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " )
149- target_sources ("${TEST} _optimised" PRIVATE $<TARGET_OBJECTS :test_runtime >)
145+ function (addtest_variants_for_target TEST TEST_SOURCE LEGACY LINK_TARGET SUFFIX )
146+ addtest_flags (" ${TEST}${SUFFIX} " "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " ${LINK_TARGET} )
147+ target_sources (" ${TEST}${SUFFIX} " PRIVATE $<TARGET_OBJECTS :test_runtime >)
148+ addtest_flags ("${TEST} _optimised${SUFFIX} " "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " ${LINK_TARGET} )
149+ target_sources ("${TEST} _optimised${SUFFIX} " PRIVATE $<TARGET_OBJECTS :test_runtime >)
150150
151151 # -fobjc-arc is not supported on platforms using the legacy runtime
152152 if (${LEGACY} AND ${OLDABI_COMPAT} AND NOT ${TEST} MATCHES ".*_arc" )
153- addtest_flags ("${TEST} _legacy" "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " )
154- target_sources ("${TEST} _legacy" PRIVATE $<TARGET_OBJECTS :test_runtime_legacy >)
155- addtest_flags ("${TEST} _legacy_optimised" "-O3 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " )
156- target_sources ("${TEST} _legacy_optimised" PRIVATE $<TARGET_OBJECTS :test_runtime_legacy >)
153+ addtest_flags ("${TEST} _legacy${SUFFIX} " "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " ${LINK_TARGET} )
154+ target_sources ("${TEST} _legacy${SUFFIX} " PRIVATE $<TARGET_OBJECTS :test_runtime_legacy >)
155+ addtest_flags ("${TEST} _legacy_optimised${SUFFIX} " "-O3 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " ${LINK_TARGET} )
156+ target_sources ("${TEST} _legacy_optimised${SUFFIX} " PRIVATE $<TARGET_OBJECTS :test_runtime_legacy >)
157+ endif ()
158+ endfunction (addtest_variants_for_target )
159+
160+ function (addtest_variants TEST TEST_SOURCE LEGACY )
161+ addtest_variants_for_target (${TEST} "${TEST_SOURCE} " ${LEGACY} objc "" )
162+ if (BUILD_STATIC_LIBOBJC)
163+ addtest_variants_for_target (${TEST} "${TEST_SOURCE} " false objc-static "_static" )
157164 endif ()
158165endfunction (addtest_variants )
159166
@@ -190,3 +197,7 @@ if (${LEGACY})
190197 set_tests_properties (ManyManySelectors_legacy PROPERTIES PROCESSORS 3 )
191198 set_tests_properties (ManyManySelectors_legacy_optimised PROPERTIES PROCESSORS 3 )
192199endif ()
200+ if (BUILD_STATIC_LIBOBJC)
201+ set_tests_properties (ManyManySelectors_static PROPERTIES PROCESSORS 3 )
202+ set_tests_properties (ManyManySelectors_optimised_static PROPERTIES PROCESSORS 3 )
203+ endif ()
0 commit comments