Skip to content

Commit 6db5769

Browse files
committed
Restructure FoundationXML into Sources/FoundationXML
This splits out the `FoundationXML` sources from `Foundation` into `Sources/FoundationXML`. This makes it easier to identify the target that the sources are associated with and to grep for something in a particular target. Restructure the build to follow best practices for CMake and split out the monolithic CMakeLists.txt into a target specific one.
1 parent 2b2691b commit 6db5769

File tree

10 files changed

+34
-29
lines changed

10 files changed

+34
-29
lines changed

Foundation/CMakeLists.txt

+2-29
Original file line numberDiff line numberDiff line change
@@ -222,35 +222,10 @@ set_target_properties(FoundationNetworking PROPERTIES
222222
Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift
223223
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/swift)
224224

225-
226-
add_library(FoundationXML
227-
XMLDocument.swift
228-
XMLDTD.swift
229-
XMLDTDNode.swift
230-
XMLElement.swift
231-
XMLNode.swift
232-
XMLParser.swift)
233-
target_compile_definitions(FoundationXML PRIVATE
234-
DEPLOYMENT_RUNTIME_SWIFT)
235-
target_compile_options(FoundationXML PUBLIC
236-
"SHELL:-Xcc -F${CMAKE_BINARY_DIR}")
237-
if(ENABLE_TESTING)
238-
target_compile_options(FoundationXML PRIVATE
239-
-enable-testing)
240-
endif()
241-
target_link_libraries(FoundationXML PRIVATE
242-
Foundation
243-
CFXMLInterface)
244-
set_target_properties(FoundationXML PROPERTIES
245-
INSTALL_RPATH "$ORIGIN"
246-
Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift
247-
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/swift)
248-
249-
250225
set_property(GLOBAL APPEND PROPERTY Foundation_EXPORTS
251-
Foundation FoundationNetworking FoundationXML)
226+
Foundation FoundationNetworking)
252227
get_swift_host_arch(swift_arch)
253-
install(TARGETS Foundation FoundationNetworking FoundationXML
228+
install(TARGETS Foundation FoundationNetworking
254229
ARCHIVE DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
255230
LIBRARY DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
256231
RUNTIME DESTINATION bin)
@@ -259,6 +234,4 @@ install(FILES
259234
${CMAKE_BINARY_DIR}/swift/Foundation.swiftmodule
260235
${CMAKE_BINARY_DIR}/swift/FoundationNetworking.swiftdoc
261236
${CMAKE_BINARY_DIR}/swift/FoundationNetworking.swiftmodule
262-
${CMAKE_BINARY_DIR}/swift/FoundationXML.swiftdoc
263-
${CMAKE_BINARY_DIR}/swift/FoundationXML.swiftmodule
264237
DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch})

Sources/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
add_subdirectory(UUID)
2+
add_subdirectory(FoundationXML)

Sources/FoundationXML/CMakeLists.txt

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
add_library(FoundationXML
2+
XMLDocument.swift
3+
XMLDTD.swift
4+
XMLDTDNode.swift
5+
XMLElement.swift
6+
XMLNode.swift
7+
XMLParser.swift)
8+
target_compile_definitions(FoundationXML PRIVATE
9+
DEPLOYMENT_RUNTIME_SWIFT)
10+
target_compile_options(FoundationXML PUBLIC
11+
$<$<BOOL:${ENABLE_TESTING}>:-enable-testing>
12+
"SHELL:-Xcc -F${CMAKE_BINARY_DIR}")
13+
target_link_libraries(FoundationXML PRIVATE
14+
Foundation
15+
CFXMLInterface)
16+
set_target_properties(FoundationXML PROPERTIES
17+
INSTALL_RPATH "$ORIGIN"
18+
Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift
19+
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/swift)
20+
21+
22+
set_property(GLOBAL APPEND PROPERTY Foundation_EXPORTS FoundationXML)
23+
install(TARGETS FoundationXML
24+
ARCHIVE DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
25+
LIBRARY DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
26+
RUNTIME DESTINATION bin)
27+
get_swift_host_arch(swift_arch)
28+
install(FILES
29+
${CMAKE_BINARY_DIR}/swift/FoundationXML.swiftdoc
30+
${CMAKE_BINARY_DIR}/swift/FoundationXML.swiftmodule
31+
DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch})
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)