mirror of
https://github.com/Kitware/CMake.git
synced 2026-06-30 19:57:41 +00:00
Merge topic 'link-flags-runcmake'
3ea9d225f7Tests: Port LinkFlags test to RunCMakee41256b568Tests: Move LinkFlags static tests to RunCMake.LinkStaticd38c268f4dTests/LinkStatic: Standardize RunCMake use where possible48e08cb757Tests/RunCMake: Fix typos in README.rst12089b576cTests/RunCMake: Prefer `RunCMake_TEST_EXPECT_*` if set Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !11615
This commit is contained in:
@@ -766,44 +766,6 @@ if(BUILD_TESTING)
|
||||
)
|
||||
endif()
|
||||
|
||||
add_test(LinkFlags-prepare
|
||||
${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/LinkFlags"
|
||||
"${CMake_BINARY_DIR}/Tests/LinkFlags"
|
||||
${build_generator_args}
|
||||
--build-project LinkFlags
|
||||
--build-target LinkFlags
|
||||
--build-options
|
||||
-DTEST_CONFIG=\${CTEST_CONFIGURATION_TYPE}
|
||||
)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/LinkFlags")
|
||||
|
||||
macro(ADD_LINK_FLAGS_TEST name depends)
|
||||
add_test(LinkFlags-${name}
|
||||
${CMAKE_CMAKE_COMMAND} --build "${CMake_BINARY_DIR}/Tests/LinkFlags"
|
||||
--target LinkFlags_${name} --config \${CTEST_CONFIGURATION_TYPE}
|
||||
)
|
||||
set_tests_properties(LinkFlags-${name} PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "BADFLAG" DEPENDS LinkFlags-${depends})
|
||||
endmacro()
|
||||
ADD_LINK_FLAGS_TEST(lib prepare)
|
||||
ADD_LINK_FLAGS_TEST(dll lib)
|
||||
ADD_LINK_FLAGS_TEST(mod dll)
|
||||
ADD_LINK_FLAGS_TEST(exe mod)
|
||||
ADD_LINK_FLAGS_TEST(lib_config exe)
|
||||
ADD_LINK_FLAGS_TEST(dll_config lib_config)
|
||||
ADD_LINK_FLAGS_TEST(mod_config dll_config)
|
||||
ADD_LINK_FLAGS_TEST(exe_config mod_config)
|
||||
ADD_LINK_FLAGS_TEST(lib_flags exe_config)
|
||||
ADD_LINK_FLAGS_TEST(dll_flags lib_flags)
|
||||
ADD_LINK_FLAGS_TEST(mod_flags dll_flags)
|
||||
ADD_LINK_FLAGS_TEST(exe_flags mod_flags)
|
||||
ADD_LINK_FLAGS_TEST(lib_flags_config exe_flags)
|
||||
ADD_LINK_FLAGS_TEST(dll_flags_config lib_flags_config)
|
||||
ADD_LINK_FLAGS_TEST(mod_flags_config dll_flags_config)
|
||||
ADD_LINK_FLAGS_TEST(exe_flags_config mod_flags_config)
|
||||
|
||||
# test for correct sub-project generation
|
||||
# not implemented in Xcode or Ninja
|
||||
if(NOT CMAKE_GENERATOR MATCHES "Xcode|Ninja|FASTBuild")
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(LinkFlags C)
|
||||
|
||||
string(TOUPPER "${TEST_CONFIG}" TEST_CONFIG_UPPER)
|
||||
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||||
if(BORLAND)
|
||||
set(pre -)
|
||||
endif()
|
||||
|
||||
add_library(LinkFlags_lib STATIC LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_lib PROPERTY STATIC_LIBRARY_FLAGS ${pre}BADFLAG${obj})
|
||||
|
||||
add_library(LinkFlags_dll SHARED LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_dll PROPERTY LINK_FLAGS ${pre}BADFLAG${obj})
|
||||
|
||||
add_library(LinkFlags_mod MODULE LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_mod PROPERTY LINK_FLAGS ${pre}BADFLAG${obj})
|
||||
|
||||
add_executable(LinkFlags_exe LinkFlagsExe.c)
|
||||
set_property(TARGET LinkFlags_exe PROPERTY LINK_FLAGS ${pre}BADFLAG${obj})
|
||||
|
||||
add_library(LinkFlags_lib_config STATIC LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_lib_config PROPERTY STATIC_LIBRARY_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG_${TEST_CONFIG}${obj})
|
||||
|
||||
add_library(LinkFlags_dll_config SHARED LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_dll_config PROPERTY LINK_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG_${TEST_CONFIG}${obj})
|
||||
|
||||
add_library(LinkFlags_mod_config MODULE LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_mod_config PROPERTY LINK_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG_${TEST_CONFIG}${obj})
|
||||
|
||||
add_executable(LinkFlags_exe_config LinkFlagsExe.c)
|
||||
set_property(TARGET LinkFlags_exe_config PROPERTY LINK_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG_${TEST_CONFIG}${obj})
|
||||
|
||||
add_executable(LinkFlags LinkFlags.c)
|
||||
if("x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC")
|
||||
set_property(TARGET LinkFlags PROPERTY
|
||||
LINK_FLAGS "/NODEFAULTLIB:\"libcdg.lib\" /NODEFAULTLIB:\"libcmtg.lib\" /NODEFAULTLIB:\"foomsvcrt.lib\" /NODEFAULTLIB:\"libbar.lib\" /NODEFAULTLIB:\"libfooba.lib\""
|
||||
)
|
||||
endif()
|
||||
|
||||
add_subdirectory(LinkerFlags)
|
||||
add_subdirectory(LinkerFlagsConfig)
|
||||
@@ -1,9 +0,0 @@
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Intel compiler does not reject bad flags or objects! */
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# error BADFLAG
|
||||
#endif
|
||||
@@ -1,9 +0,0 @@
|
||||
int flags_lib(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Intel compiler does not reject bad flags or objects! */
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# error BADFLAG
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
set(CMAKE_STATIC_LINKER_FLAGS ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_lib_flags STATIC ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_SHARED_LINKER_FLAGS ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_dll_flags SHARED ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_MODULE_LINKER_FLAGS ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_mod_flags MODULE ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS ${pre}BADFLAG${obj})
|
||||
add_executable(LinkFlags_exe_flags ../LinkFlagsExe.c)
|
||||
@@ -1,11 +0,0 @@
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_lib_flags_config STATIC ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_dll_flags_config SHARED ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG${obj})
|
||||
add_library(LinkFlags_mod_flags_config MODULE ../LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS_${TEST_CONFIG_UPPER} ${pre}BADFLAG${obj})
|
||||
add_executable(LinkFlags_exe_flags_config ../LinkFlagsExe.c)
|
||||
@@ -989,6 +989,7 @@ endif()
|
||||
|
||||
add_RunCMake_test(LinkLibrariesProcessing)
|
||||
add_RunCMake_test(LinkLibrariesStrategy)
|
||||
add_RunCMake_test(LinkFlags)
|
||||
add_RunCMake_test(File_Archive -DPython_EXECUTABLE=${Python_EXECUTABLE})
|
||||
add_RunCMake_test(File_Configure)
|
||||
add_RunCMake_test(File_Generate)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_EXECUTABLE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_MODULE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_SHARED.*
|
||||
8
Tests/RunCMake/LinkFlags/CMAKE_LINKER_FLAGS.cmake
Normal file
8
Tests/RunCMake/LinkFlags/CMAKE_LINKER_FLAGS.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
set(CMAKE_SHARED_LINKER_FLAGS ${pre}BADFLAG_SHARED${obj})
|
||||
add_library(LinkFlags_shared SHARED LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_MODULE_LINKER_FLAGS ${pre}BADFLAG_MODULE${obj})
|
||||
add_library(LinkFlags_mod MODULE LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS ${pre}BADFLAG_EXECUTABLE${obj})
|
||||
add_executable(LinkFlags_exe LinkFlagsExe.c)
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_EXECUTABLE_RELEASE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_MODULE_RELEASE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_SHARED_RELEASE.*
|
||||
8
Tests/RunCMake/LinkFlags/CMAKE_LINKER_FLAGS_CONFIG.cmake
Normal file
8
Tests/RunCMake/LinkFlags/CMAKE_LINKER_FLAGS_CONFIG.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE ${pre}BADFLAG_SHARED_RELEASE${obj})
|
||||
add_library(LinkFlags_shared SHARED LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE ${pre}BADFLAG_MODULE_RELEASE${obj})
|
||||
add_library(LinkFlags_mod MODULE LinkFlagsLib.c)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE ${pre}BADFLAG_EXECUTABLE_RELEASE${obj})
|
||||
add_executable(LinkFlags_exe LinkFlagsExe.c)
|
||||
9
Tests/RunCMake/LinkFlags/CMakeLists.txt
Normal file
9
Tests/RunCMake/LinkFlags/CMakeLists.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(${RunCMake_TEST} C)
|
||||
|
||||
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||||
if(BORLAND)
|
||||
set(pre -)
|
||||
endif()
|
||||
|
||||
include(${RunCMake_TEST}.cmake)
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-exe-result.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-exe-result.txt
Normal file
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-exe-stdout.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-exe-stdout.txt
Normal file
@@ -0,0 +1 @@
|
||||
.*BADFLAG_EXECUTABLE.*
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-mod-result.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-mod-result.txt
Normal file
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-mod-stdout.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-mod-stdout.txt
Normal file
@@ -0,0 +1 @@
|
||||
.*BADFLAG_MODULE.*
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-shared-result.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-shared-result.txt
Normal file
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-shared-stdout.txt
Normal file
1
Tests/RunCMake/LinkFlags/LINK_FLAGS-shared-stdout.txt
Normal file
@@ -0,0 +1 @@
|
||||
.*BADFLAG_SHARED.*
|
||||
8
Tests/RunCMake/LinkFlags/LINK_FLAGS.cmake
Normal file
8
Tests/RunCMake/LinkFlags/LINK_FLAGS.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
add_library(LinkFlags_shared SHARED LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_shared PROPERTY LINK_FLAGS ${pre}BADFLAG_SHARED${obj})
|
||||
|
||||
add_library(LinkFlags_mod MODULE LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_mod PROPERTY LINK_FLAGS ${pre}BADFLAG_MODULE${obj})
|
||||
|
||||
add_executable(LinkFlags_exe LinkFlagsExe.c)
|
||||
set_property(TARGET LinkFlags_exe PROPERTY LINK_FLAGS ${pre}BADFLAG_EXECUTABLE${obj})
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_EXECUTABLE_RELEASE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_MODULE_RELEASE.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_SHARED_RELEASE.*
|
||||
8
Tests/RunCMake/LinkFlags/LINK_FLAGS_CONFIG.cmake
Normal file
8
Tests/RunCMake/LinkFlags/LINK_FLAGS_CONFIG.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
add_library(LinkFlags_shared SHARED LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_shared PROPERTY LINK_FLAGS_RELEASE ${pre}BADFLAG_SHARED_RELEASE${obj})
|
||||
|
||||
add_library(LinkFlags_mod MODULE LinkFlagsLib.c)
|
||||
set_property(TARGET LinkFlags_mod PROPERTY LINK_FLAGS_RELEASE ${pre}BADFLAG_MODULE_RELEASE${obj})
|
||||
|
||||
add_executable(LinkFlags_exe LinkFlagsExe.c)
|
||||
set_property(TARGET LinkFlags_exe PROPERTY LINK_FLAGS_RELEASE ${pre}BADFLAG_EXECUTABLE_RELEASE${obj})
|
||||
4
Tests/RunCMake/LinkFlags/LinkFlagsLib.c
Normal file
4
Tests/RunCMake/LinkFlags/LinkFlagsLib.c
Normal file
@@ -0,0 +1,4 @@
|
||||
int flags_lib(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
45
Tests/RunCMake/LinkFlags/RunCMakeTest.cmake
Normal file
45
Tests/RunCMake/LinkFlags/RunCMakeTest.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
include(RunCMake)
|
||||
|
||||
macro(run_cmake_target test subtest)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
run_cmake_command(${test}-${subtest}
|
||||
${CMAKE_COMMAND} --build .
|
||||
--target LinkFlags_${subtest}
|
||||
${ARGN}
|
||||
)
|
||||
|
||||
unset(RunCMake_TEST_BINARY_DIR)
|
||||
unset(RunCMake_TEST_NO_CLEAN)
|
||||
endmacro()
|
||||
|
||||
if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
|
||||
# Intel compiler does not reject bad flags or objects!
|
||||
set(RunCMake_TEST_OUTPUT_MERGE TRUE)
|
||||
if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
||||
set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release)
|
||||
endif()
|
||||
|
||||
run_cmake(LINK_FLAGS)
|
||||
run_cmake_target(LINK_FLAGS shared)
|
||||
run_cmake_target(LINK_FLAGS mod)
|
||||
run_cmake_target(LINK_FLAGS exe)
|
||||
|
||||
run_cmake(LINK_FLAGS_CONFIG)
|
||||
run_cmake_target(LINK_FLAGS_CONFIG shared --config Release)
|
||||
run_cmake_target(LINK_FLAGS_CONFIG mod --config Release)
|
||||
run_cmake_target(LINK_FLAGS_CONFIG exe --config Release)
|
||||
|
||||
run_cmake(CMAKE_LINKER_FLAGS)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS shared)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS mod)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS exe)
|
||||
|
||||
run_cmake(CMAKE_LINKER_FLAGS_CONFIG)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG shared --config Release)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG mod --config Release)
|
||||
run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG exe --config Release)
|
||||
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
endif()
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG.*
|
||||
13
Tests/RunCMake/LinkStatic/CMAKE_STATIC_LINKER_FLAGS.cmake
Normal file
13
Tests/RunCMake/LinkStatic/CMAKE_STATIC_LINKER_FLAGS.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
enable_language(C)
|
||||
|
||||
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||||
if(BORLAND)
|
||||
set(pre -)
|
||||
endif()
|
||||
|
||||
set(CMAKE_STATIC_LINKER_FLAGS ${pre}BADFLAG${obj})
|
||||
add_library(CMakeStaticLinkerFlags STATIC LinkOptionsLib.c)
|
||||
|
||||
# shared library do not use CMAKE_STATIC_LINKER_FLAGS
|
||||
add_library(SharedCMakeStaticLinkerFlags SHARED LinkOptionsLib.c)
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_RELEASE.*
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
enable_language(C)
|
||||
|
||||
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||||
if(BORLAND)
|
||||
set(pre -)
|
||||
endif()
|
||||
|
||||
# CMAKE_STATIC_LINKER_FLAGS_<CONFIG> variant
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE ${pre}BADFLAG_RELEASE${obj})
|
||||
add_library(CMakeStaticLinkerFlags_config STATIC LinkOptionsLib.c)
|
||||
|
||||
# shared library do not use CMAKE_STATIC_LINKER_FLAGS_<CONFIG>
|
||||
add_library(SharedCMakeStaticLinkerFlags_config SHARED LinkOptionsLib.c)
|
||||
@@ -6,6 +6,9 @@ run_cmake(LINK_SEARCH_STATIC)
|
||||
macro(run_cmake_target test subtest target)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
if(RunCMake_GENERATOR STREQUAL "Borland Makefiles")
|
||||
set(RunCMake_TEST_EXPECT_RESULT .)
|
||||
endif()
|
||||
run_cmake_command(${test}-${subtest} ${CMAKE_COMMAND} --build . --target ${target} ${ARGN})
|
||||
|
||||
unset(RunCMake_TEST_BINARY_DIR)
|
||||
@@ -25,6 +28,19 @@ if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
|
||||
run_cmake_target(STATIC_LIBRARY_OPTIONS genex StaticLinkOptions_genex --config Release)
|
||||
run_cmake_target(STATIC_LIBRARY_OPTIONS shared SharedLinkOptions)
|
||||
|
||||
run_cmake(STATIC_LIBRARY_FLAGS)
|
||||
run_cmake_target(STATIC_LIBRARY_FLAGS basic StaticLinkFlags)
|
||||
run_cmake_target(STATIC_LIBRARY_FLAGS config StaticLinkFlags_config --config Release)
|
||||
run_cmake_target(STATIC_LIBRARY_FLAGS shared SharedLinkFlags)
|
||||
|
||||
run_cmake(CMAKE_STATIC_LINKER_FLAGS)
|
||||
run_cmake_target(CMAKE_STATIC_LINKER_FLAGS basic CMakeStaticLinkerFlags)
|
||||
run_cmake_target(CMAKE_STATIC_LINKER_FLAGS shared SharedCMakeStaticLinkerFlags)
|
||||
|
||||
run_cmake(CMAKE_STATIC_LINKER_FLAGS_CONFIG)
|
||||
run_cmake_target(CMAKE_STATIC_LINKER_FLAGS_CONFIG basic CMakeStaticLinkerFlags_config --config Release)
|
||||
run_cmake_target(CMAKE_STATIC_LINKER_FLAGS_CONFIG shared SharedCMakeStaticLinkerFlags_config --config Release)
|
||||
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG.*
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG_RELEASE.*
|
||||
18
Tests/RunCMake/LinkStatic/STATIC_LIBRARY_FLAGS.cmake
Normal file
18
Tests/RunCMake/LinkStatic/STATIC_LIBRARY_FLAGS.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
enable_language(C)
|
||||
|
||||
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||||
if(BORLAND)
|
||||
set(pre -)
|
||||
endif()
|
||||
|
||||
add_library(StaticLinkFlags STATIC LinkOptionsLib.c)
|
||||
set_property(TARGET StaticLinkFlags PROPERTY STATIC_LIBRARY_FLAGS ${pre}BADFLAG${obj})
|
||||
|
||||
# STATIC_LIBRARY_FLAGS_<CONFIG> variant
|
||||
add_library(StaticLinkFlags_config STATIC LinkOptionsLib.c)
|
||||
set_property(TARGET StaticLinkFlags_config PROPERTY STATIC_LIBRARY_FLAGS_RELEASE ${pre}BADFLAG_RELEASE${obj})
|
||||
|
||||
# shared library do not use property STATIC_LIBRARY_FLAGS
|
||||
add_library(SharedLinkFlags SHARED LinkOptionsLib.c)
|
||||
set_property(TARGET SharedLinkFlags PROPERTY STATIC_LIBRARY_FLAGS ${pre}BADFLAG${obj})
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
if (NOT actual_stdout MATCHES "BADFLAG")
|
||||
set (RunCMake_TEST_FAILED "Not found expected 'BADFLAG'.")
|
||||
endif()
|
||||
@@ -1 +1 @@
|
||||
.*
|
||||
[^0]
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.*BADFLAG.*
|
||||
@@ -1 +1 @@
|
||||
.*
|
||||
[^0]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
if (actual_stdout MATCHES "BADFLAG")
|
||||
string (APPEND RunCMake_TEST_FAILED "\nFound unexpected flag 'BADFLAG'.")
|
||||
endif()
|
||||
@@ -1 +0,0 @@
|
||||
.*
|
||||
@@ -152,7 +152,7 @@ customized by setting the following variables before a call.
|
||||
|
||||
``RunCMake_GENERATOR``
|
||||
CMake generator to use when configuring projects.
|
||||
This provided to ``RunCMakeTest.cmake`` scripts automatically
|
||||
This is provided to ``RunCMakeTest.cmake`` scripts automatically
|
||||
when they are executed, based on the CMake generator used to
|
||||
configure the test suite.
|
||||
|
||||
@@ -170,18 +170,18 @@ customized by setting the following variables before a call.
|
||||
``RunCMake_GENERATOR_IS_MULTI_CONFIG``
|
||||
Boolean value indicating whether ``${RunCMake_GENERATOR}`` is a
|
||||
multi-config generator.
|
||||
This provided to ``RunCMakeTest.cmake`` scripts automatically
|
||||
This is provided to ``RunCMakeTest.cmake`` scripts automatically
|
||||
when they are executed, based on the CMake generator used to
|
||||
configure the test suite.
|
||||
|
||||
``RunCMake_SOURCE_DIR``
|
||||
Absolute path to the ``Tests/RunCMake/<Test>`` directory in
|
||||
the CMake source tree. This provided to ``RunCMakeTest.cmake``
|
||||
the CMake source tree. This is provided to ``RunCMakeTest.cmake``
|
||||
scripts automatically when they are executed.
|
||||
|
||||
``RunCMake_BINARY_DIR``
|
||||
Absolute path to the ``Tests/RunCMake/<Test>`` directory in
|
||||
the CMake binary tree. This provided to ``RunCMakeTest.cmake``
|
||||
the CMake binary tree. This is provided to ``RunCMakeTest.cmake``
|
||||
scripts automatically when they are executed.
|
||||
|
||||
``RunCMake_TEST_SOURCE_DIR``
|
||||
|
||||
@@ -24,11 +24,11 @@ function(run_cmake test)
|
||||
|
||||
set(top_src "${RunCMake_SOURCE_DIR}")
|
||||
set(top_bin "${RunCMake_BINARY_DIR}")
|
||||
if(EXISTS ${top_src}/${test}-result.txt)
|
||||
if(DEFINED RunCMake_TEST_EXPECT_RESULT)
|
||||
set(expect_result "${RunCMake_TEST_EXPECT_RESULT}")
|
||||
elseif(EXISTS ${top_src}/${test}-result.txt)
|
||||
file(READ ${top_src}/${test}-result.txt expect_result)
|
||||
string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}")
|
||||
elseif(DEFINED RunCMake_TEST_EXPECT_RESULT)
|
||||
set(expect_result "${RunCMake_TEST_EXPECT_RESULT}")
|
||||
else()
|
||||
set(expect_result 0)
|
||||
endif()
|
||||
@@ -43,7 +43,9 @@ function(run_cmake test)
|
||||
endif()
|
||||
|
||||
foreach(o IN ITEMS stdout stderr config)
|
||||
if(RunCMake-${o}-file AND EXISTS ${top_src}/${RunCMake-${o}-file})
|
||||
if(DEFINED RunCMake_TEST_EXPECT_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${RunCMake_TEST_EXPECT_${o}}")
|
||||
elseif(RunCMake-${o}-file AND EXISTS ${top_src}/${RunCMake-${o}-file})
|
||||
file(READ ${top_src}/${RunCMake-${o}-file} expect_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
|
||||
elseif(EXISTS ${top_src}/${test}-${o}-${platform_name}.txt)
|
||||
@@ -52,8 +54,6 @@ function(run_cmake test)
|
||||
elseif(EXISTS ${top_src}/${test}-${o}.txt)
|
||||
file(READ ${top_src}/${test}-${o}.txt expect_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
|
||||
elseif(DEFINED RunCMake_TEST_EXPECT_${o})
|
||||
string(REGEX REPLACE "\n+$" "" expect_${o} "${RunCMake_TEST_EXPECT_${o}}")
|
||||
else()
|
||||
unset(expect_${o})
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user