Files
swift-mirror/Runtimes/Supplemental/CMakeLists.txt
Eric Miotto 58a782b98b [Runtimes][CMake] use config mode first in Supplemental build in CI
In this configuration we want to pull dependencies from the current
build, not from the underlying SDK.

Addresses rdar://151784135
2025-05-21 12:20:13 -07:00

63 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.29)
project(SwiftRuntime LANGUAGES Swift C CXX)
include(ExternalProject)
include(GNUInstallDirs)
set(SwiftRuntime_SWIFTC_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../")
foreach(lib ${Swift_ENABLE_RUNTIMES})
string(TOLOWER ${lib} name)
set(SwiftRuntime_ENABLE_${name} YES)
endforeach()
if(SwiftCore_DIR)
set(SwiftCore_DIR_FLAG "-DSwiftCore_DIR=${SwiftCore_DIR}")
endif()
if(CMAKE_MAKE_PROGRAM)
set(MAKE_PROGRAM_FLAG "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}")
endif()
set(COMMON_OPTIONS
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
-DSwift_SDKROOT=${Swift_SDKROOT}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_NAME_DIR=${CMAKE_INSTALL_NAME_DIR}
-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=${CMAKE_BUILD_WITH_INSTALL_NAME_DIR}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_COLOR_DIAGNOSTICS=${CMAKE_COLOR_DIAGNOSTICS}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_Swift_COMPILER=${CMAKE_Swift_COMPILER}
-DCMAKE_C_COMPILER_TARGET=${CMAKE_C_COMPILER_TARGET}
-DCMAKE_CXX_COMPILER_TARGET=${CMAKE_CXX_COMPILER_TARGET}
-DCMAKE_Swift_COMPILER_TARGET=${CMAKE_Swift_COMPILER_TARGET}
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=${CMAKE_FIND_PACKAGE_PREFER_CONFIG}
${SwiftCore_DIR_FLAG}
${MAKE_PROGRAM_FLAG})
# StringProcessing
if(SwiftRuntime_ENABLE_stringprocessing)
ExternalProject_Add(StringProcessing
PREFIX "StringProcessing"
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/StringProcessing"
INSTALL_DIR "${CMAKE_INSTALL_PREFIX}"
INSTALL_COMMAND ""
CMAKE_ARGS
${COMMON_OPTIONS})
endif()
# Synchronization
if(SwiftRuntime_ENABLE_synchronization)
ExternalProject_Add(Synchronization
PREFIX "Synchronization"
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Synchronization"
INSTALL_DIR "${CMAKE_INSTALL_PREFIX}"
INSTALL_COMMAND ""
CMAKE_ARGS
${COMMON_OPTIONS})
endif()