Skip to content

Commit 95bd36f

Browse files
authored
Merge pull request #5068 from modocache/add-swift-cmake-refactor-suffix-prefix
2 parents 87329bf + 126aed5 commit 95bd36f

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,22 @@ function(_compute_lto_flag option out_var)
4848
endif()
4949
endfunction()
5050

51+
function(_set_target_prefix_and_suffix target kind sdk)
52+
precondition(target MESSAGE "target is required")
53+
precondition(kind MESSAGE "kind is required")
54+
precondition(sdk MESSAGE "sdk is required")
55+
56+
if("${sdk}" STREQUAL "WINDOWS")
57+
if("${kind}" STREQUAL "STATIC")
58+
set_property(TARGET "${target}" PROPERTY PREFIX "lib")
59+
set_property(TARGET "${target}" PROPERTY SUFFIX ".lib")
60+
elseif("${libkind}" STREQUAL "SHARED")
61+
set_property(TARGET "${target}" PROPERTY PREFIX "")
62+
set_property(TARGET "${target}" PROPERTY SUFFIX ".dll")
63+
endif()
64+
endif()
65+
endfunction()
66+
5167
function(is_darwin_based_sdk sdk_name out_var)
5268
if ("${sdk_name}" STREQUAL "OSX" OR
5369
"${sdk_name}" STREQUAL "IOS" OR
@@ -683,6 +699,7 @@ function(_add_swift_library_single target name)
683699
${SWIFTLIB_INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS}
684700
${SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES}
685701
${SWIFT_SECTIONS_OBJECT_END})
702+
_set_target_prefix_and_suffix("${target}" "${libkind}" "${SWIFTLIB_SINGLE_SDK}")
686703

687704
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
688705
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}" STREQUAL "")
@@ -696,13 +713,7 @@ function(_add_swift_library_single target name)
696713
endif()
697714

698715
if("${SWIFTLIB_SINGLE_SDK}" STREQUAL "WINDOWS")
699-
if("${libkind}" STREQUAL "STATIC")
700-
set_property(TARGET "${target}" PROPERTY PREFIX "lib")
701-
set_property(TARGET "${target}" PROPERTY SUFFIX ".lib")
702-
elseif("${libkind}" STREQUAL "SHARED")
703-
set_property(TARGET "${target}" PROPERTY PREFIX "")
704-
set_property(TARGET "${target}" PROPERTY SUFFIX ".dll")
705-
716+
if("${libkind}" STREQUAL "SHARED")
706717
# Each dll has an associated .lib (import library); since we may be
707718
# building on a non-DLL platform (not windows), create an imported target
708719
# for the library which created implicitly by the dll.

0 commit comments

Comments
 (0)