-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Cmake] Add Synchronization #80841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Cmake] Add Synchronization #80841
Changes from all commits
9298735
ebb7f20
9e08c4b
151c1c6
d44fc80
1ec4c76
0296d73
9ed99a1
d6a2892
87f24d0
9853b66
a738963
ba3fdf2
8b4a3df
7c1a382
3db6223
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
|
||
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} | ||
-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} | ||
${SwiftCore_DIR_FLAG} | ||
${MAKE_PROGRAM_FLAG}) | ||
|
||
# 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() |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,121 @@ | ||||||
cmake_minimum_required(VERSION 3.29) | ||||||
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE YES) | ||||||
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules") | ||||||
|
||||||
if($ENV{BUILD_NUMBER}) | ||||||
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535") | ||||||
set(BUILD_NUMBER ".${BUILD_NUMBER}") | ||||||
endif() | ||||||
project(SwiftSynchronization | ||||||
LANGUAGES Swift | ||||||
VERSION 6.1.0${BUILD_NUMBER}) | ||||||
|
||||||
set(CMAKE_Swift_LANGUAGE_VERSION 5) | ||||||
|
||||||
include(GNUInstallDirs) | ||||||
|
||||||
if(NOT PROJECT_IS_TOP_LEVEL) | ||||||
message(SEND_ERROR "Swift Synchronization must build as a standalone project") | ||||||
endif() | ||||||
|
||||||
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR | ||||||
"${PROJECT_SOURCE_DIR}/../../../" | ||||||
CACHE FILEPATH "Path to the root source directory of the Swift compiler") | ||||||
|
||||||
set(${PROJECT_NAME}_VENDOR_MODULE_DIR "${CMAKE_SOURCE_DIR}/../cmake/modules/vendor" | ||||||
CACHE FILEPATH "Location for private build system extension") | ||||||
|
||||||
find_package(SwiftCore) | ||||||
include(gyb) | ||||||
include(ResourceEmbedding) | ||||||
include(AvailabilityMacros) | ||||||
include(PlatformInfo) | ||||||
|
||||||
include("${${PROJECT_NAME}_VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL) | ||||||
|
||||||
option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime libraries" | ||||||
${SwiftCore_ENABLE_LIBRARY_EVOLUTION}) | ||||||
|
||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization" | ||||||
${SwiftCore_ENABLE_PRESPECIALIZATION}) | ||||||
|
||||||
option(${PROJECT_NAME}_ARCH_SUBDIR "Architecture used for setting the architecture subdirectory" | ||||||
${SwiftCore_ARCH_SUBDIR}) | ||||||
|
||||||
option(${PROJECT_NAME}_INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" | ||||||
${SwiftCore_INSTALL_NESTED_SUBDIR}) | ||||||
|
||||||
option(${PROJECT_NAME}_PLATFORM_SUBDIR "Platform name used for installed swift{doc,module,interface} files" | ||||||
${SwiftCore_PLATFORM_SUBDIR}) | ||||||
|
||||||
option(${PROJECT_NAME}_COMPILER_VARIANT_TARGET "Compiler variant target to use when emiting modules" | ||||||
${SwiftCore_COMPILER_VARIANT_TARGET}) | ||||||
|
||||||
include(CatalystSupport) | ||||||
include(EmitSwiftInterface) | ||||||
|
||||||
add_compile_options( | ||||||
"$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>" | ||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>" | ||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>" | ||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build> | ||||||
$<$<COMPILE_LANGUAGE:Swift>:-enable-builtin-module> | ||||||
$<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety> | ||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature RawLayout>" | ||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature StaticExclusiveOnly>" | ||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Extern>") | ||||||
|
||||||
gyb_expand(Atomics/AtomicIntegers.swift.gyb Atomics/AtomicIntegers.swift) | ||||||
gyb_expand(Atomics/AtomicStorage.swift.gyb Atomics/AtomicStorage.swift) | ||||||
|
||||||
add_library(swiftSynchronization | ||||||
Atomics/Atomic.swift | ||||||
Atomics/AtomicBool.swift | ||||||
Atomics/AtomicFloats.swift | ||||||
Atomics/AtomicLazyReference.swift | ||||||
Atomics/AtomicMemoryOrderings.swift | ||||||
Atomics/AtomicOptional.swift | ||||||
Atomics/AtomicPointers.swift | ||||||
Atomics/AtomicRepresentable.swift | ||||||
Atomics/WordPair.swift | ||||||
Atomics/AtomicStorage.swift | ||||||
Atomics/AtomicIntegers.swift | ||||||
Cell.swift | ||||||
Mutex/Mutex.swift | ||||||
$<$<PLATFORM_ID:Darwin>:Mutex/DarwinImpl.swift> | ||||||
$<$<PLATFORM_ID:Linux>:Mutex/LinuxImpl.swift> | ||||||
$<$<PLATFORM_ID:WASI>:Mutex/SpinLoopHint.swift> | ||||||
$<$<PLATFORM_ID:WINDOWS>:Mutex/WindowsImpl.swift>) | ||||||
|
||||||
set_target_properties(swiftSynchronization PROPERTIES | ||||||
Swift_MODULE_NAME Synchronization | ||||||
Swift_COMPILATION_MODE wholemodule) | ||||||
|
||||||
if(APPLE AND BUILD_SHARED_LIBS) | ||||||
target_link_options(swiftSynchronization PRIVATE "SHELL:-Xlinker -headerpad_max_install_names") | ||||||
endif() | ||||||
|
||||||
target_link_libraries(swiftSynchronization | ||||||
PRIVATE | ||||||
swiftCore | ||||||
$<$<PLATFORM_ID:Darwin>:swiftDarwin>) | ||||||
|
||||||
set(${PROJECT_NAME}_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${Supplemental_INSTALL_NESTED_SUBDIR}>:/${Supplemental_PLATFORM_SUBDIR}/${Supplemental_ARCH_SUBDIR}>" CACHE STRING "") | ||||||
set(${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${Supplemental_INSTALL_NESTED_SUBDIR}>:/${Supplemental_PLATFORM_SUBDIR}>" CACHE STRING "") | ||||||
|
||||||
install(TARGETS swiftSynchronization | ||||||
EXPORT SwiftSupplementalTargets | ||||||
COMPONENT SwiftCore_runtime | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This seems a remnant from the reference code in SwiftCore -- maybe we can use the project name directly
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Namespacing the component with the project name is good. Let's keep the |
||||||
ARCHIVE DESTINATION "${${PROJECT_NAME}_INSTALL_LIBDIR}" | ||||||
LIBRARY DESTINATION "${${PROJECT_NAME}_INSTALL_LIBDIR}" | ||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") | ||||||
emit_swift_interface(swiftSynchronization) | ||||||
install_swift_interface(swiftSynchronization) | ||||||
|
||||||
# Configure plist creation for Darwin platforms. | ||||||
generate_plist("${CMAKE_PROJECT_NAME}" "${CMAKE_PROJECT_VERSION}" swiftSynchronization) | ||||||
embed_manifest(swiftSynchronization) | ||||||
|
||||||
include("${${PROJECT_NAME}_VENDOR_MODULE_DIR}/swiftSynchronization.cmake" OPTIONAL) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Add flags for generating the zippered target variant in the build | ||
|
||
# Initialize `${PROJECT_NAME}_VARIANT_MODULE_TRIPLE` if the driver is able to emit | ||
# modules for the target variant. | ||
|
||
if(${PROJECT_NAME}_COMPILER_VARIANT_TARGET) | ||
add_compile_options( | ||
"$<$<COMPILE_LANGUAGE:C,CXX>:SHELL:-darwin-target-variant ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>" | ||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-target-variant ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>" | ||
|
||
# TODO: Remove me once we have a driver with | ||
# https://github.com/swiftlang/swift-driver/pull/1803 | ||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xclang-linker -darwin-target-variant -Xclang-linker ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>") | ||
|
||
add_link_options( | ||
"$<$<LINK_LANGUAGE:C,CXX>:SHELL:-darwin-target-variant ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>" | ||
"$<$<LINK_LANGUAGE:Swift>:SHELL:-target-variant ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>" | ||
|
||
# TODO: Remove me once we have a driver with | ||
# https://github.com/swiftlang/swift-driver/pull/1803 | ||
"$<$<LINK_LANGUAGE:Swift>:SHELL:-Xclang-linker -darwin-target-variant -Xclang-linker ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}>") | ||
|
||
# TODO: Once we are guaranteed to have a driver with the variant module path | ||
# support everywhere, we should integrate this into PlatformInfo.cmake | ||
check_compiler_flag(Swift "-emit-variant-module-path ${CMAKE_CURRENT_BINARY_DIR}/CompilerID/variant.swiftmodule" HAVE_Swift_VARIANT_MODULE_PATH_FLAG) | ||
if(HAVE_Swift_VARIANT_MODULE_PATH_FLAG) | ||
# Get variant module triple | ||
set(module_triple_command "${CMAKE_Swift_COMPILER}" -print-target-info -target ${${PROJECT_NAME}_COMPILER_VARIANT_TARGET}) | ||
execute_process(COMMAND ${module_triple_command} OUTPUT_VARIABLE target_info_json) | ||
message(CONFIGURE_LOG "Swift target variant info: ${target_info_json}") | ||
|
||
|
||
string(JSON module_triple GET "${target_info_json}" "target" "moduleTriple") | ||
set(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE "${module_triple}" CACHE STRING "Triple used for installed swift{module,interface} files for the target variant") | ||
mark_as_advanced(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE) | ||
message(CONFIGURE_LOG "Swift target variant module triple: ${module_triple}") | ||
endif() | ||
endif() |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# Generate and install swift interface files | ||
|
||
# TODO: CMake should learn how to model library evolution and generate this | ||
# stuff automatically. | ||
|
||
|
||
# Generate a swift interface file for the target if library evolution is enabled | ||
function(emit_swift_interface target) | ||
# Generate the target-variant binary swift module when performing zippered | ||
# build | ||
if(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE) | ||
set(variant_module_tmp_dir "${CMAKE_CURRENT_BINARY_DIR}/${target}-${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}") | ||
file(MAKE_DIRECTORY "${variant_module_tmp_dir}") | ||
target_compile_options(${target} PRIVATE | ||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${variant_module_tmp_dir}/${target}.swiftmodule>") | ||
endif() | ||
|
||
# Generate textual swift interfaces is library-evolution is enabled | ||
if(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION) | ||
target_compile_options(${target} PRIVATE | ||
$<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface-path$<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface> | ||
$<$<COMPILE_LANGUAGE:Swift>:-emit-private-module-interface-path$<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.private.swiftinterface> | ||
$<$<COMPILE_LANGUAGE:Swift>:-library-level$<SEMICOLON>api> | ||
$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend$<SEMICOLON>-require-explicit-availability=ignore>) | ||
|
||
# Emit catalyst swiftmodules and interfaces | ||
if(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE) | ||
target_compile_options(${target} PRIVATE | ||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${variant_module_tmp_dir}/${target}.swiftinterface>" | ||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${variant_module_tmp_dir}/${target}.private.swiftinterface>") | ||
endif() | ||
endif() | ||
endfunction() | ||
|
||
# Install the generated swift interface file for the target if library evolution | ||
# is enabled. | ||
function(install_swift_interface target) | ||
# Install binary swift modules | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
RENAME "${${PROJECT_NAME}_MODULE_TRIPLE}.swiftmodule" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
if(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}/${target}.swiftmodule" | ||
RENAME "${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}.swiftmodule" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
endif() | ||
|
||
# Install Swift interfaces if library-evolution is enabled | ||
if(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface" | ||
RENAME "${${PROJECT_NAME}_MODULE_TRIPLE}.swiftinterface" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.private.swiftinterface" | ||
RENAME "${${PROJECT_NAME}_MODULE_TRIPLE}.private.swiftinterface" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
|
||
# Install catalyst interface files | ||
if(${PROJECT_NAME}_VARIANT_MODULE_TRIPLE) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}/${target}.swiftinterface" | ||
RENAME "${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}.swiftinterface" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}/${target}.private.swiftinterface" | ||
RENAME "${${PROJECT_NAME}_VARIANT_MODULE_TRIPLE}.private.swiftinterface" | ||
DESTINATION "${${PROJECT_NAME}_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule" | ||
COMPONENT ${PROJECT_NAME}_development) | ||
endif() | ||
endif() | ||
endfunction() |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
if(NOT ${PROJECT_NAME}_SIZEOF_POINTER) | ||
set(${PROJECT_NAME}_SIZEOF_POINTER "${CMAKE_SIZEOF_VOID_P}" CACHE STRING "Size of a pointer in bytes") | ||
message(CONFIGURE_LOG "Stdlib Pointer size: ${CMAKE_SIZEOF_VOID_P}") | ||
mark_as_advanced(${PROJECT_NAME}_SIZEOF_POINTER) | ||
endif() | ||
|
||
# TODO: This logic should migrate to CMake once CMake supports installing swiftmodules | ||
set(module_triple_command "${CMAKE_Swift_COMPILER}" -print-target-info) | ||
if(CMAKE_Swift_COMPILER_TARGET) | ||
list(APPEND module_triple_command -target ${CMAKE_Swift_COMPILER_TARGET}) | ||
endif() | ||
execute_process(COMMAND ${module_triple_command} OUTPUT_VARIABLE target_info_json) | ||
message(CONFIGURE_LOG "Swift target info: ${module_triple_command}\n" | ||
"${target_info_json}") | ||
|
||
if(NOT ${PROJECT_NAME}_MODULE_TRIPLE) | ||
string(JSON module_triple GET "${target_info_json}" "target" "moduleTriple") | ||
set(${PROJECT_NAME}_MODULE_TRIPLE "${module_triple}" CACHE STRING "Triple used for installed swift{doc,module,interface} files") | ||
mark_as_advanced(${PROJECT_NAME}_MODULE_TRIPLE) | ||
|
||
message(CONFIGURE_LOG "Swift module triple: ${module_triple}") | ||
endif() | ||
|
||
if(NOT ${PROJECT_NAME}_PLATFORM_SUBDIR) | ||
string(JSON platform GET "${target_info_json}" "target" "platform") | ||
set(${PROJECT_NAME}_PLATFORM_SUBDIR "${platform}" CACHE STRING "Platform name used for installed swift{doc,module,interface} files") | ||
mark_as_advanced(${PROJECT_NAME}_PLATFORM_SUBDIR) | ||
|
||
message(CONFIGURE_LOG "Swift platform: ${platform}") | ||
endif() | ||
|
||
if(NOT ${PROJECT_NAME}_ARCH_SUBDIR) | ||
string(JSON arch GET "${target_info_json}" "target" "arch") | ||
set(${PROJECT_NAME}_ARCH_SUBDIR "${arch}" CACHE STRING "Architecture used for setting the architecture subdirectory") | ||
mark_as_advanced(${PROJECT_NAME}_ARCH_SUBDIR) | ||
|
||
message(CONFIGURE_LOG "Swift Arch: ${arch}") | ||
endif() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you reference anything from there? I think that we should just drop this if possible. The supplemental libraries don't tend to reach into the sources of the core libraries AFAIK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
*gyb enters chat*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Though, for the purposes of the supplemental libraries, the gyb module should probably reach up into the compiler bits so that each of the supplemental projects don't need to explicitly.