Files
cmake/Tests/RunCMake/Swift/EmitModuleSeparatelyLinkDepCustomPath.cmake
T
Roman Lavrov b8fedb5979 Swift/Ninja: Add link edge dependency on emit-module output
Since commit b6367f723b (Swift/Ninja: Emit modules separately from
compilation, 2026-04-10) the .swiftmodule output moved from the
compile edge to a separate emit-module edge.  The link edge does not
depend on the emit-module output, so ninja never runs the emit-module
edge when no other target in the build imports the module (e.g.
install-only targets).

Store the declared .swiftmodule output path during Swift object
statement generation and add it as an implicit dependency of the link
edge.

Issue: #27748
2026-04-29 09:58:09 -04:00

16 lines
532 B
CMake

cmake_policy(SET CMP0157 NEW)
cmake_policy(SET CMP0215 NEW)
if(NOT CMAKE_GENERATOR MATCHES "Ninja")
message(SEND_ERROR "this test must use a Ninja generator, found ${CMAKE_GENERATOR}")
endif()
enable_language(Swift)
# A standalone library with a custom module output path (like swiftCore
# in the Swift stdlib). The link edge must depend on the actual
# emit-module output, not GetSwiftModulePath().
add_library(L STATIC L.swift)
set_target_properties(L PROPERTIES
Swift_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/custom)