@@ -4,6 +4,27 @@ include(SwiftXcodeSupport)
44include (SwiftWindowsSupport)
55include (SwiftAndroidSupport)
66
7+ function (_swift_gyb_target_sources target scope)
8+ foreach (source ${ARGN} )
9+ get_filename_component (generated ${source} NAME_WLE)
10+ get_filename_component (absolute ${source} REALPATH)
11+
12+ add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${generated}
13+ COMMAND
14+ $<TARGET_FILE:Python2::Interpreter> ${SWIFT_SOURCE_DIR} /utils/gyb -D CMAKE_SIZEOF_VOID_P =${CMAKE_SIZEOF_VOID_P} ${SWIFT_GYB_FLAGS} -o ${CMAKE_CURRENT_BINARY_DIR} /${generated} .tmp ${absolute}
15+ COMMAND
16+ ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR} /${generated} .tmp ${CMAKE_CURRENT_BINARY_DIR} /${generated}
17+ COMMAND
18+ ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BINARY_DIR} /${generated} .tmp
19+ DEPENDS
20+ ${absolute} )
21+ set_source_files_properties (${CMAKE_CURRENT_BINARY_DIR} /${generated} PROPERTIES
22+ GENERATED TRUE )
23+ target_sources (${target} ${scope}
24+ ${CMAKE_CURRENT_BINARY_DIR} /${generated} )
25+ endforeach ()
26+ endfunction ()
27+
728# SWIFTLIB_DIR is the directory in the build tree where Swift resource files
829# should be placed. Note that $CMAKE_CFG_INTDIR expands to "." for
930# single-configuration builds.
@@ -446,7 +467,6 @@ function(_add_swift_host_library_single target)
446467 STATIC )
447468 set (single_parameter_options)
448469 set (multiple_parameter_options
449- GYB_SOURCES
450470 LLVM_LINK_COMPONENTS)
451471
452472 cmake_parse_arguments (ASHLS
@@ -496,14 +516,6 @@ function(_add_swift_host_library_single target)
496516 set (libkind STATIC )
497517 endif ()
498518
499- if (ASHLS_GYB_SOURCES)
500- handle_gyb_sources(
501- gyb_dependency_targets
502- ASHLS_GYB_SOURCES
503- "${SWIFT_HOST_VARIANT_ARCH} " )
504- set (ASHLS_SOURCES ${ASHLS_SOURCES} ${ASHLS_GYB_SOURCES} )
505- endif ()
506-
507519 add_library ("${target} " ${libkind} ${ASHLS_SOURCES} )
508520 _set_target_prefix_and_suffix("${target} " "${libkind} " "${SWIFT_HOST_VARIANT_SDK} " )
509521 add_dependencies (${target} ${LLVM_COMMON_DEPENDS} )
0 commit comments