@@ -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 LINK_TARGET )
120+ function (addtest_flags TEST_NAME FLAGS TEST_SOURCE LINK_TARGET EXTRA_LINK_FLAGS )
121121 if (${TEST_NAME} MATCHES ".*_arc" )
122122 # Only compile the main file with ARC
123123 set_source_files_properties (${TEST_SOURCE}
@@ -129,7 +129,7 @@ function(addtest_flags TEST_NAME FLAGS TEST_SOURCE LINK_TARGET)
129129 set_target_properties (${TEST_NAME} PROPERTIES
130130 INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR} ;${PROJECT_BINARY_DIR} /objc/"
131131 COMPILE_FLAGS "-Xclang -fblocks -Xclang -fobjc-exceptions ${FLAGS} "
132- LINK_FLAGS ${INCREMENTAL}
132+ LINK_FLAGS " ${INCREMENTAL} ${EXTRA_LINK_FLAGS} "
133133 LINKER_LANGUAGE C
134134 )
135135 set_property (TEST ${TEST_NAME} PROPERTY SKIP_RETURN_CODE 77 )
@@ -142,25 +142,25 @@ function(addtest_flags TEST_NAME FLAGS TEST_SOURCE LINK_TARGET)
142142 target_link_libraries (${TEST_NAME} ${LINK_TARGET} )
143143endfunction (addtest_flags )
144144
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} )
145+ function (addtest_variants_for_target TEST TEST_SOURCE LEGACY LINK_TARGET SUFFIX EXTRA_LINK_FLAGS )
146+ addtest_flags ("${TEST}${SUFFIX} " "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " ${LINK_TARGET} " ${EXTRA_LINK_FLAGS} " )
147147 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} )
148+ addtest_flags ("${TEST} _optimised${SUFFIX} " "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE} " ${LINK_TARGET} " ${EXTRA_LINK_FLAGS} " )
149149 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${SUFFIX} " "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " ${LINK_TARGET} )
153+ addtest_flags ("${TEST} _legacy${SUFFIX} " "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " ${LINK_TARGET} " ${EXTRA_LINK_FLAGS} " )
154154 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} )
155+ addtest_flags ("${TEST} _legacy_optimised${SUFFIX} " "-O3 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE} " ${LINK_TARGET} " ${EXTRA_LINK_FLAGS} " )
156156 target_sources ("${TEST} _legacy_optimised${SUFFIX} " PRIVATE $<TARGET_OBJECTS :test_runtime_legacy >)
157157 endif ()
158158endfunction (addtest_variants_for_target )
159159
160160function (addtest_variants TEST TEST_SOURCE LEGACY )
161- addtest_variants_for_target (${TEST} "${TEST_SOURCE} " ${LEGACY} objc "" )
161+ addtest_variants_for_target (${TEST} "${TEST_SOURCE} " ${LEGACY} objc "" "" )
162162 if (BUILD_STATIC_LIBOBJC)
163- addtest_variants_for_target (${TEST} "${TEST_SOURCE} " false objc-static "_static" )
163+ addtest_variants_for_target (${TEST} "${TEST_SOURCE} " false objc-static "_static" "-static" )
164164 endif ()
165165endfunction (addtest_variants )
166166
0 commit comments