mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
swift_supports_implicit_module invokes /path/to/toolchain/usr/bin/swiftc directly without using `xcrun`. That fails to set necessary environmental variables to make swiftc infer the SDK path. Because of that swift_supports_implicit_module used to fail because the test compilation fails to load the stdlib. This PR workaround it by passing `-parse-stdlib` to avoid implicit stdlib loading.
22 lines
679 B
CMake
22 lines
679 B
CMake
# Test if the Swift compiler supports -disable-implicit-<module>-module-import
|
|
function(swift_supports_implicit_module module_name out_var)
|
|
file(WRITE "${CMAKE_BINARY_DIR}/tmp/empty-check-${module_name}.swift" "")
|
|
execute_process(
|
|
COMMAND
|
|
"${CMAKE_Swift_COMPILER}"
|
|
-Xfrontend -disable-implicit-${module_name}-module-import
|
|
-Xfrontend -parse-stdlib
|
|
-c - -o /dev/null
|
|
INPUT_FILE
|
|
"${CMAKE_BINARY_DIR}/tmp/empty-check-${module_name}.swift"
|
|
OUTPUT_QUIET ERROR_QUIET
|
|
RESULT_VARIABLE
|
|
result
|
|
)
|
|
if(NOT result)
|
|
set("${out_var}" "TRUE" PARENT_SCOPE)
|
|
else()
|
|
set("${out_var}" "FALSE" PARENT_SCOPE)
|
|
endif()
|
|
endfunction()
|