mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
use platformInfo to set module triple correctly
This commit is contained in:
@@ -31,6 +31,7 @@ find_package(SwiftCore)
|
||||
include(gyb)
|
||||
include(ResourceEmbedding)
|
||||
include(AvailabilityMacros)
|
||||
include(PlatformInfo)
|
||||
|
||||
include("${${PROJECT_NAME}_VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL)
|
||||
|
||||
|
||||
38
Runtimes/Supplemental/cmake/modules/PlatformInfo.cmake
Normal file
38
Runtimes/Supplemental/cmake/modules/PlatformInfo.cmake
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user