Skip to content

Commit 049d77e

Browse files
committed
Export CMake targets for use by SwiftPM
1 parent 4b503cd commit 049d77e

File tree

27 files changed

+132
-1
lines changed

27 files changed

+132
-1
lines changed

CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,4 @@ find_package(Threads)
5050
find_package(SQLite3)
5151

5252
add_subdirectory(Sources)
53+
add_subdirectory(cmake/modules)

Sources/SWBAndroidPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ target_link_libraries(SWBAndroidPlatform PUBLIC
3737
SWBUtil)
3838
target_sources(SWBAndroidPlatform PRIVATE
3939
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
40+
41+
target_include_directories(SWBAndroidPlatform PUBLIC
42+
${CMAKE_CURRENT_BINARY_DIR})
43+
44+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBAndroidPlatform)

Sources/SWBApplePlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,8 @@ target_link_libraries(SWBApplePlatform PUBLIC
7575
SWBTaskConstruction)
7676
target_sources(SWBApplePlatform PRIVATE
7777
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
78+
79+
target_include_directories(SWBApplePlatform PUBLIC
80+
${CMAKE_CURRENT_BINARY_DIR})
81+
82+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBApplePlatform)

Sources/SWBBuildService/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ target_link_libraries(SWBBuildService PUBLIC
3737
SWBWebAssemblyPlatform
3838
SWBWindowsPlatform
3939
$<$<NOT:$<PLATFORM_ID:Darwin>>:SwiftSystem::SystemPackage>)
40+
41+
target_include_directories(SWBBuildService PUBLIC
42+
${CMAKE_CURRENT_BINARY_DIR})
43+
44+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBBuildService)

Sources/SWBBuildServiceBundle/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@ target_link_libraries(SWBBuildServiceBundle PRIVATE
2020
SWBCore)
2121

2222
install(TARGETS SWBBuildServiceBundle)
23+
24+
target_include_directories(SWBBuildServiceBundle PUBLIC
25+
${CMAKE_CURRENT_BINARY_DIR})
26+
27+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBBuildServiceBundle)

Sources/SWBBuildSystem/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,8 @@ target_link_libraries(SWBBuildSystem PUBLIC
2222
SWBCore
2323
SWBTaskConstruction
2424
SWBTaskExecution)
25+
26+
target_include_directories(SWBBuildSystem PUBLIC
27+
${CMAKE_CURRENT_BINARY_DIR})
28+
29+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBBuildSystem)

Sources/SWBCAS/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ set_target_properties(SWBCAS PROPERTIES
1919
target_link_libraries(SWBCAS PUBLIC
2020
SWBUtil
2121
SWBCSupport)
22+
23+
target_include_directories(SWBCAS PUBLIC
24+
${CMAKE_CURRENT_BINARY_DIR})
25+
26+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBCAS)

Sources/SWBCLibc/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@ add_library(SWBCLibc
1212
libc.c)
1313
target_include_directories(SWBCLibc INTERFACE
1414
include)
15+
16+
target_include_directories(SWBCLibc PUBLIC
17+
${CMAKE_CURRENT_BINARY_DIR})
18+
19+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBCLibc)

Sources/SWBCSupport/CMakeLists.txt

+7
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,15 @@ target_compile_definitions(SWBCSupport PRIVATE
1616
$<$<PLATFORM_ID:Windows>:_CRT_NONSTDC_NO_WARNINGS>)
1717
target_compile_options(SWBCSupport PRIVATE
1818
-fblocks)
19+
target_link_options(SWBCSupport PUBLIC
20+
-lc++)
1921
target_include_directories(SWBCSupport PUBLIC
2022
${CMAKE_CURRENT_SOURCE_DIR})
2123
# TODO(compnerd) wire this up with `find_package`
2224
target_link_libraries(SWBCSupport PRIVATE
2325
$<$<NOT:$<PLATFORM_ID:Darwin>>:BlocksRuntime>)
26+
27+
target_include_directories(SWBCSupport PUBLIC
28+
${CMAKE_CURRENT_BINARY_DIR})
29+
30+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBCSupport)

Sources/SWBCore/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -207,3 +207,8 @@ target_link_libraries(SWBCore PUBLIC
207207
SwiftDriver)
208208
target_sources(SWBCore PRIVATE
209209
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
210+
211+
target_include_directories(SWBCore PUBLIC
212+
${CMAKE_CURRENT_BINARY_DIR})
213+
214+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBCore)

Sources/SWBGenericUnixPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,8 @@ target_link_libraries(SWBGenericUnixPlatform PUBLIC
3535
SWBUtil)
3636
target_sources(SWBGenericUnixPlatform PRIVATE
3737
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
38+
39+
target_include_directories(SWBGenericUnixPlatform PUBLIC
40+
${CMAKE_CURRENT_BINARY_DIR})
41+
42+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBGenericUnixPlatform)

Sources/SWBLLBuild/CMakeLists.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,9 @@ set_target_properties(SWBLLBuild PROPERTIES
1414
Swift_LANGUAGE_VERSION 6)
1515
target_link_libraries(SWBLLBuild PUBLIC
1616
SWBUtil
17-
$<$<NOT:$<BOOL:${SwiftBuild_USE_LLBUILD_FRAMEWORK}>>:libllbuild>
1817
$<$<NOT:$<BOOL:${SwiftBuild_USE_LLBUILD_FRAMEWORK}>>:llbuildSwift>)
18+
19+
target_include_directories(SWBLLBuild PUBLIC
20+
${CMAKE_CURRENT_BINARY_DIR})
21+
22+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBLLBuild)

Sources/SWBLibc/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ target_link_libraries(SWBLibc PUBLIC
1919
# without this explicit configuration.
2020
target_include_directories(SWBLibc PUBLIC
2121
${CMAKE_CURRENT_BINARY_DIR})
22+
23+
target_include_directories(SWBLibc PUBLIC
24+
${CMAKE_CURRENT_BINARY_DIR})
25+
26+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBLibc)

Sources/SWBMacro/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,5 @@ target_link_libraries(SWBMacro PUBLIC
3333

3434
target_include_directories(SWBMacro PUBLIC
3535
${CMAKE_CURRENT_BINARY_DIR})
36+
37+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBMacro)

Sources/SWBProjectModel/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@ set_target_properties(SWBProjectModel PROPERTIES
2020
Swift_LANGUAGE_VERSION 6)
2121
target_link_libraries(SWBProjectModel PUBLIC
2222
SWBProtocol)
23+
24+
target_include_directories(SWBProjectModel PUBLIC
25+
${CMAKE_CURRENT_BINARY_DIR})
26+
27+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBProjectModel)

Sources/SWBProtocol/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,8 @@ set_target_properties(SWBProtocol PROPERTIES
4848
Swift_LANGUAGE_VERSION 6)
4949
target_link_libraries(SWBProtocol PUBLIC
5050
SWBUtil)
51+
52+
target_include_directories(SWBProtocol PUBLIC
53+
${CMAKE_CURRENT_BINARY_DIR})
54+
55+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBProtocol)

Sources/SWBQNXPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ target_link_libraries(SWBQNXPlatform PUBLIC
3737
SWBUtil)
3838
target_sources(SWBQNXPlatform PRIVATE
3939
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
40+
41+
target_include_directories(SWBQNXPlatform PUBLIC
42+
${CMAKE_CURRENT_BINARY_DIR})
43+
44+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBQNXPlatform)

Sources/SWBServiceCore/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,8 @@ set_target_properties(SWBServiceCore PROPERTIES
1818
Swift_LANGUAGE_VERSION 6)
1919
target_link_libraries(SWBServiceCore PUBLIC
2020
SWBProtocol)
21+
22+
target_include_directories(SWBServiceCore PUBLIC
23+
${CMAKE_CURRENT_BINARY_DIR})
24+
25+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBServiceCore)

Sources/SWBTaskConstruction/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,8 @@ set_target_properties(SWBTaskConstruction PROPERTIES
6363
target_link_libraries(SWBTaskConstruction PUBLIC
6464
SWBCore
6565
SWBUtil)
66+
67+
target_include_directories(SWBTaskConstruction PUBLIC
68+
${CMAKE_CURRENT_BINARY_DIR})
69+
70+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBTaskConstruction)

Sources/SWBTaskExecution/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,8 @@ target_link_libraries(SWBTaskExecution PUBLIC
8282
SWBLLBuild
8383
SWBTaskConstruction
8484
SWBUtil)
85+
86+
target_include_directories(SWBTaskExecution PUBLIC
87+
${CMAKE_CURRENT_BINARY_DIR})
88+
89+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBTaskExecution)

Sources/SWBUniversalPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,8 @@ target_link_libraries(SWBUniversalPlatform PUBLIC
4242
SWBUtil)
4343
target_sources(SWBUniversalPlatform PRIVATE
4444
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
45+
46+
target_include_directories(SWBUniversalPlatform PUBLIC
47+
${CMAKE_CURRENT_BINARY_DIR})
48+
49+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBUniversalPlatform)

Sources/SWBUtil/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,8 @@ target_link_libraries(SWBUtil PUBLIC
110110
ArgumentParser
111111
$<$<AND:$<NOT:$<PLATFORM_ID:Windows>>,$<NOT:$<PLATFORM_ID:Darwin>>>:Crypto::Crypto>
112112
$<$<NOT:$<PLATFORM_ID:Darwin>>:SwiftSystem::SystemPackage>)
113+
114+
target_include_directories(SWBUtil PUBLIC
115+
${CMAKE_CURRENT_BINARY_DIR})
116+
117+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBUtil)

Sources/SWBWebAssemblyPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ target_link_libraries(SWBWebAssemblyPlatform PUBLIC
3636
SWBUtil)
3737
target_sources(SWBWebAssemblyPlatform PRIVATE
3838
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
39+
40+
target_include_directories(SWBWebAssemblyPlatform PUBLIC
41+
${CMAKE_CURRENT_BINARY_DIR})
42+
43+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBWebAssemblyPlatform)

Sources/SWBWindowsPlatform/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@ target_link_libraries(SWBWindowsPlatform PUBLIC
3838
SWBUtil)
3939
target_sources(SWBWindowsPlatform PRIVATE
4040
"${CMAKE_CURRENT_BINARY_DIR}/resource_bundle_accessor.swift")
41+
42+
target_include_directories(SWBWindowsPlatform PUBLIC
43+
${CMAKE_CURRENT_BINARY_DIR})
44+
45+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SWBWindowsPlatform)

Sources/SwiftBuild/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,8 @@ target_link_libraries(SwiftBuild PUBLIC
6666
SWBProtocol
6767
SWBUtil
6868
SWBProjectModel)
69+
70+
target_include_directories(SwiftBuild PUBLIC
71+
${CMAKE_CURRENT_BINARY_DIR})
72+
73+
set_property(GLOBAL APPEND PROPERTY SWIFTBUILD_EXPORTS SwiftBuild)

cmake/modules/CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(SWIFTBUILD_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/SwiftBuildExports.cmake)
2+
3+
configure_file(SwiftBuildConfig.cmake.in
4+
${CMAKE_CURRENT_BINARY_DIR}/SwiftBuildConfig.cmake)
5+
6+
get_property(SWIFTBUILD_EXPORTS GLOBAL PROPERTY SWIFTBUILD_EXPORTS)
7+
export(TARGETS ${SWIFTBUILD_EXPORTS}
8+
NAMESPACE SwiftBuild::
9+
FILE ${SWIFTBUILD_EXPORTS_FILE})
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
if(NOT TARGET SwiftBuild)
2+
include(@SWIFTBUILD_EXPORTS_FILE@)
3+
endif()

0 commit comments

Comments
 (0)