Skip to content

Commit 170ac41

Browse files
compnerdjpsim
authored andcommitted
build: simplify Foundation handling
Enable building against an uninstalled copy of Foundation but do not require it. This allows for a simpler build system. If the user wishes to build against an out-of-tree Foundation, they can simply specify `Foundation_DIR` and `dispatch_DIR` when configuring and CMake will handle the rest.
1 parent 7fa1c3c commit 170ac41

File tree

2 files changed

+4
-13
lines changed

2 files changed

+4
-13
lines changed

CMakeLists.txt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,8 @@ project(Yams
88

99
option(BUILD_SHARED_LIBS "build shared libraries" ON)
1010

11-
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
12-
set(USE_CORELIBS_FOUNDATION FALSE)
13-
else()
14-
set(USE_CORELIBS_FOUNDATION TRUE)
15-
endif()
16-
17-
if(USE_CORELIBS_FOUNDATION)
18-
find_package(Foundation CONFIG REQUIRED)
19-
set(CORELIBS_FOUNDATION "Foundation")
20-
else()
21-
set(CORELIBS_FOUNDATION "")
22-
endif()
11+
find_package(dispatch CONFIG QUIET)
12+
find_package(Foundation CONFIG QUIET)
2313

2414
if(CMAKE_VERSION VERSION_LESS 3.16 AND CMAKE_SYSTEM_NAME STREQUAL Windows)
2515
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

Sources/Yams/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ target_compile_definitions(Yams PRIVATE
2020

2121
target_link_libraries(Yams PRIVATE
2222
CYaml
23-
${CORELIBS_FOUNDATION})
23+
$<$<NOT:$<PLATFORM_ID:Darwin>>:dispatch>
24+
$<$<NOT:$<PLATFORM_ID:Darwin>>:Foundation>)
2425
set_target_properties(Yams PROPERTIES
2526
INTERFACE_COMPILE_OPTIONS "SHELL:-Xcc -I$<TARGET_PROPERTY:CYaml,INCLUDE_DIRECTORIES>"
2627
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})

0 commit comments

Comments
 (0)