mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-03 03:41:53 +08:00
55 lines
2.1 KiB
CMake
55 lines
2.1 KiB
CMake
function(swift_get_linker_search_paths var)
|
|
if(APPLE)
|
|
set(SDK_FLAGS "-sdk" "${CMAKE_OSX_SYSROOT}")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${CMAKE_Swift_COMPILER} ${SDK_FLAGS} -print-target-info
|
|
OUTPUT_VARIABLE SWIFT_TARGET_INFO
|
|
)
|
|
|
|
string(JSON SWIFT_TARGET_PATHS GET ${SWIFT_TARGET_INFO} "paths")
|
|
|
|
string(JSON SWIFT_TARGET_LIBRARY_PATHS GET ${SWIFT_TARGET_PATHS} "runtimeLibraryPaths")
|
|
string(JSON SWIFT_TARGET_LIBRARY_PATHS_LENGTH LENGTH ${SWIFT_TARGET_LIBRARY_PATHS})
|
|
math(EXPR SWIFT_TARGET_LIBRARY_PATHS_LENGTH "${SWIFT_TARGET_LIBRARY_PATHS_LENGTH} - 1 ")
|
|
|
|
string(JSON SWIFT_TARGET_LIBRARY_IMPORT_PATHS GET ${SWIFT_TARGET_PATHS} "runtimeLibraryImportPaths")
|
|
string(JSON SWIFT_TARGET_LIBRARY_IMPORT_PATHS_LENGTH LENGTH ${SWIFT_TARGET_LIBRARY_IMPORT_PATHS})
|
|
math(EXPR SWIFT_TARGET_LIBRARY_IMPORT_PATHS_LENGTH "${SWIFT_TARGET_LIBRARY_IMPORT_PATHS_LENGTH} - 1 ")
|
|
|
|
string(JSON SWIFT_SDK_IMPORT_PATH ERROR_VARIABLE errno GET ${SWIFT_TARGET_PATHS} "sdkPath")
|
|
|
|
foreach(JSON_ARG_IDX RANGE ${SWIFT_TARGET_LIBRARY_PATHS_LENGTH})
|
|
string(JSON SWIFT_LIB GET ${SWIFT_TARGET_LIBRARY_PATHS} ${JSON_ARG_IDX})
|
|
list(APPEND SWIFT_LIBRARY_SEARCH_PATHS ${SWIFT_LIB})
|
|
endforeach()
|
|
|
|
foreach(JSON_ARG_IDX RANGE ${SWIFT_TARGET_LIBRARY_IMPORT_PATHS_LENGTH})
|
|
string(JSON SWIFT_LIB GET ${SWIFT_TARGET_LIBRARY_IMPORT_PATHS} ${JSON_ARG_IDX})
|
|
list(APPEND SWIFT_LIBRARY_SEARCH_PATHS ${SWIFT_LIB})
|
|
endforeach()
|
|
|
|
if(SWIFT_SDK_IMPORT_PATH)
|
|
list(APPEND SWIFT_LIBRARY_SEARCH_PATHS ${SWIFT_SDK_IMPORT_PATH})
|
|
endif()
|
|
|
|
set(${var} ${SWIFT_LIBRARY_SEARCH_PATHS} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# FIXME: share code with the function above
|
|
function(swift_get_resource_path var)
|
|
if(APPLE)
|
|
set(SDK_FLAGS "-sdk" "${CMAKE_OSX_SYSROOT}")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${CMAKE_Swift_COMPILER} ${SDK_FLAGS} -print-target-info
|
|
OUTPUT_VARIABLE SWIFT_TARGET_INFO
|
|
)
|
|
|
|
string(JSON SWIFT_TARGET_PATHS GET ${SWIFT_TARGET_INFO} "paths")
|
|
string(JSON SWIFT_RUNTIME_RESOURCE_PATH GET ${SWIFT_TARGET_PATHS} "runtimeResourcePath")
|
|
set(${var} ${SWIFT_RUNTIME_RESOURCE_PATH} PARENT_SCOPE)
|
|
endfunction()
|