diff options
author | Brad King <brad.king@kitware.com> | 2024-01-11 15:06:04 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-01-11 15:06:39 (GMT) |
commit | 97713da65024c784cc759278e5a4ebc79a74f111 (patch) | |
tree | 01acc210e1ebc151aae44c99ef0e70fc1beb9189 | |
parent | 1c02642ee6d20a74533c12092c29c57f760809d8 (diff) | |
parent | a2aad7eb8d84d40c13122c6d0a297ff3061baa6c (diff) | |
download | CMake-97713da65024c784cc759278e5a4ebc79a74f111.zip CMake-97713da65024c784cc759278e5a4ebc79a74f111.tar.gz CMake-97713da65024c784cc759278e5a4ebc79a74f111.tar.bz2 |
Merge topic 'swift-implib'
a2aad7eb8d Swift: fix Windows DLL import library support for CMP0157 NEW
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Jeremy Day <jadaytime@gmail.com>
Merge-request: !9140
-rw-r--r-- | Modules/CMakeSwiftInformation.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/ImportLibraryFlags-check-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/ImportLibraryFlags.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/RunCMakeTest.cmake | 8 |
4 files changed, 16 insertions, 1 deletions
diff --git a/Modules/CMakeSwiftInformation.cmake b/Modules/CMakeSwiftInformation.cmake index 7a1c64a..f8b6748 100644 --- a/Modules/CMakeSwiftInformation.cmake +++ b/Modules/CMakeSwiftInformation.cmake @@ -132,7 +132,7 @@ if(CMAKE_Swift_COMPILATION_MODE_DEFAULT) endif() if(NOT CMAKE_Swift_CREATE_SHARED_LIBRARY) - set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> ${CMAKE_Swift_PARALLEL_FLAGS} -emit-library <CMAKE_SHARED_LIBRARY_Swift_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <SONAME_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>") + set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> ${CMAKE_Swift_PARALLEL_FLAGS} -emit-library <CMAKE_SHARED_LIBRARY_Swift_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <SONAME_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>") endif() if(NOT CMAKE_Swift_CREATE_SHARED_MODULE) diff --git a/Tests/RunCMake/Swift/ImportLibraryFlags-check-stdout.txt b/Tests/RunCMake/Swift/ImportLibraryFlags-check-stdout.txt new file mode 100644 index 0000000..9b53820 --- /dev/null +++ b/Tests/RunCMake/Swift/ImportLibraryFlags-check-stdout.txt @@ -0,0 +1 @@ +.*-implib:lib\\L.lib diff --git a/Tests/RunCMake/Swift/ImportLibraryFlags.cmake b/Tests/RunCMake/Swift/ImportLibraryFlags.cmake new file mode 100644 index 0000000..4c76b40 --- /dev/null +++ b/Tests/RunCMake/Swift/ImportLibraryFlags.cmake @@ -0,0 +1,6 @@ +cmake_policy(SET CMP0157 NEW) +enable_language(Swift) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +add_library(L SHARED L.swift) diff --git a/Tests/RunCMake/Swift/RunCMakeTest.cmake b/Tests/RunCMake/Swift/RunCMakeTest.cmake index b5210c9..56158e3 100644 --- a/Tests/RunCMake/Swift/RunCMakeTest.cmake +++ b/Tests/RunCMake/Swift/RunCMakeTest.cmake @@ -78,6 +78,14 @@ elseif(RunCMake_GENERATOR STREQUAL Ninja) endblock() block() + if(CMAKE_SYSTEM_NAME MATCHES Windows) + set(ImportLibraryFlags_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SwiftLibraryModuleCommand-build) + run_cmake(ImportLibraryFlags) + run_cmake_command(ImportLibraryFlags-check ${CMAKE_COMMAND} --build ${SwiftLibraryModuleCommand_TEST_BINARY_DIR} -- -n -v) + endif() + endblock() + + block() set(SwiftLibraryModuleCommand_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SwiftLibraryModuleCommand-build) run_cmake(SwiftLibraryModuleCommand) run_cmake_command(SwiftLibraryModuleCommand-check ${CMAKE_COMMAND} --build ${SwiftLibraryModuleCommand_TEST_BINARY_DIR} -- -n -v) |