diff options
author | Vito Gamberini <vito.gamberini@kitware.com> | 2024-08-07 18:17:18 (GMT) |
---|---|---|
committer | Vito Gamberini <vito.gamberini@kitware.com> | 2024-08-28 19:54:43 (GMT) |
commit | 20e9b59d5e215768956ec131e80e540ed60d2487 (patch) | |
tree | a2fd3c4d6adedfe1309526701b240f91955e4cc7 /Tests/RunCMake | |
parent | 041a482079baf690f1bf8e9cdc8a7a1922016267 (diff) | |
download | CMake-20e9b59d5e215768956ec131e80e540ed60d2487.zip CMake-20e9b59d5e215768956ec131e80e540ed60d2487.tar.gz CMake-20e9b59d5e215768956ec131e80e540ed60d2487.tar.bz2 |
Linking: Add CMAKE_LANG_STANDARD_LINK_DIRECTORIES
Closes: #18222
Diffstat (limited to 'Tests/RunCMake')
10 files changed, 43 insertions, 0 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 112e530..383c80f 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -491,6 +491,7 @@ if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) ) endif() add_RunCMake_test(ScriptMode) +add_RunCMake_test(StandardLinkDirectories) add_RunCMake_test(Swift -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMake_TEST_Swift=${CMake_TEST_Swift} -DXCODE_VERSION=${XCODE_VERSION}) diff --git a/Tests/RunCMake/StandardLinkDirectories/CMakeLists.txt b/Tests/RunCMake/StandardLinkDirectories/CMakeLists.txt new file mode 100644 index 0000000..ccf88ee --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.30) +project(${RunCMake_TEST} LANGUAGES C) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/StandardLinkDirectories/RunCMakeTest.cmake b/Tests/RunCMake/StandardLinkDirectories/RunCMakeTest.cmake new file mode 100644 index 0000000..6760ffc --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/RunCMakeTest.cmake @@ -0,0 +1,22 @@ +include(RunCMake) + +# Link should succeed +block() + set(libdir ${RunCMake_BINARY_DIR}/TestLib-build/TestLib/lib) + run_cmake(TestLib) + run_cmake_with_options(TestApp "-DCMAKE_C_STANDARD_LINK_DIRECTORIES=${libdir}") + set(RunCMake_TEST_NO_CLEAN 1) + set(RunCMake_TEST_OUTPUT_MERGE 1) + run_cmake_command(TestLib ${CMAKE_COMMAND} --build .) + run_cmake_command(TestAppGood ${CMAKE_COMMAND} --build ../TestApp-build) +endblock() + +# Link should fail +block() + run_cmake(TestLib) + run_cmake(TestApp) + set(RunCMake_TEST_NO_CLEAN 1) + set(RunCMake_TEST_OUTPUT_MERGE 1) + run_cmake_command(TestLib ${CMAKE_COMMAND} --build .) + run_cmake_command(TestAppBad ${CMAKE_COMMAND} --build ../TestApp-build) +endblock() diff --git a/Tests/RunCMake/StandardLinkDirectories/TestApp.cmake b/Tests/RunCMake/StandardLinkDirectories/TestApp.cmake new file mode 100644 index 0000000..53a9c9a --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestApp.cmake @@ -0,0 +1 @@ +add_subdirectory(TestApp) diff --git a/Tests/RunCMake/StandardLinkDirectories/TestApp/CMakeLists.txt b/Tests/RunCMake/StandardLinkDirectories/TestApp/CMakeLists.txt new file mode 100644 index 0000000..92dd52f --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestApp/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(TestApp TestApp.c) +target_link_libraries(TestApp PRIVATE SLD) diff --git a/Tests/RunCMake/StandardLinkDirectories/TestApp/TestApp.c b/Tests/RunCMake/StandardLinkDirectories/TestApp/TestApp.c new file mode 100644 index 0000000..66630d8 --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestApp/TestApp.c @@ -0,0 +1,6 @@ +int TestSymbol(void); + +int main(void) +{ + return TestSymbol(); +} diff --git a/Tests/RunCMake/StandardLinkDirectories/TestAppBad-result.txt b/Tests/RunCMake/StandardLinkDirectories/TestAppBad-result.txt new file mode 100644 index 0000000..d197c91 --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestAppBad-result.txt @@ -0,0 +1 @@ +[^0] diff --git a/Tests/RunCMake/StandardLinkDirectories/TestLib.cmake b/Tests/RunCMake/StandardLinkDirectories/TestLib.cmake new file mode 100644 index 0000000..aa8a6c3 --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestLib.cmake @@ -0,0 +1 @@ +add_subdirectory(TestLib) diff --git a/Tests/RunCMake/StandardLinkDirectories/TestLib/CMakeLists.txt b/Tests/RunCMake/StandardLinkDirectories/TestLib/CMakeLists.txt new file mode 100644 index 0000000..bf41631 --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestLib/CMakeLists.txt @@ -0,0 +1,2 @@ +add_library(SLD TestLib.c) +set_target_properties(SLD PROPERTIES ARCHIVE_OUTPUT_DIRECTORY $<1:lib>) diff --git a/Tests/RunCMake/StandardLinkDirectories/TestLib/TestLib.c b/Tests/RunCMake/StandardLinkDirectories/TestLib/TestLib.c new file mode 100644 index 0000000..e5d2b1c --- /dev/null +++ b/Tests/RunCMake/StandardLinkDirectories/TestLib/TestLib.c @@ -0,0 +1,4 @@ +int TestSymbol(void) +{ + return 0; +} |