Skip to content

Commit ecef7f1

Browse files
minusbatdavidchisnall
authored andcommitted
When making the static library tests, statically link the whole executable
The previous commit created tests which linked the static library, but were stil themselves dynamic executables. To properly test that we can use the static library in a statically linked executable we want the tests themselevs to be linekd this way. Hence this.
1 parent 3abeba8 commit ecef7f1

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

Test/CMakeLists.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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})
143143
endfunction(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()
158158
endfunction(addtest_variants_for_target)
159159

160160
function(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()
165165
endfunction(addtest_variants)
166166

0 commit comments

Comments
 (0)