Skip to content

Commit bcd7fc4

Browse files
committed
[CMake] Improve target_link_swift_syntax_libraries
The argument list handling was a hack and confusing.
1 parent b369ac0 commit bcd7fc4

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

cmake/modules/AddSwiftHostLibrary.cmake

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,17 @@
1717
#
1818
# Remove once rdar://102202478 is fixed.
1919
function(target_link_swift_syntax_libraries TARGET)
20-
cmake_parse_arguments(ARGS "" "" "PUBLIC" ${ARGN})
20+
target_link_libraries(${TARGET} ${ARGN})
2121

22-
target_link_libraries(${TARGET} PUBLIC ${ARGS_PUBLIC})
23-
foreach(DEPENDENCY ${ARGS_PUBLIC})
24-
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/forced-${DEPENDENCY}-dep.swift
25-
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/forced-${DEPENDENCY}-dep.swift
22+
cmake_parse_arguments(ARGS "PUBLIC;PRIVATE;INTERFACE" "" "" ${ARGN})
23+
foreach(DEPENDENCY ${ARGS_UNPARSED_ARGUMENTS})
24+
string(REGEX REPLACE [<>:\"/\\|?*] _ sanitized ${DEPENDENCY})
25+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/forced-${sanitized}-dep.swift
26+
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/forced-${sanitized}-dep.swift
2627
DEPENDS ${DEPENDENCY}
27-
)
28+
)
2829
target_sources(${TARGET} PRIVATE
29-
${CMAKE_CURRENT_BINARY_DIR}/forced-${DEPENDENCY}-dep.swift
30+
${CMAKE_CURRENT_BINARY_DIR}/forced-${sanitized}-dep.swift
3031
)
3132
endforeach()
3233
endfunction()

0 commit comments

Comments
 (0)