Skip to content

Commit 35f0744

Browse files
committed
[CMake] Declare the precise dependencies of the gyb custom command invocations
1 parent 88e090b commit 35f0744

File tree

5 files changed

+26
-18
lines changed

5 files changed

+26
-18
lines changed

cmake/modules/AddSwift.cmake

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ include(SwiftAndroidSupport)
77
function(_swift_gyb_target_sources target scope)
88
file(GLOB GYB_UNICODE_DATA ${SWIFT_SOURCE_DIR}/utils/UnicodeData/*)
99
file(GLOB GYB_STDLIB_SUPPORT ${SWIFT_SOURCE_DIR}/utils/gyb_stdlib_support.py)
10-
file(GLOB GYB_SYNTAX_SUPPORT ${SWIFT_SOURCE_DIR}/utils/gyb_syntax_support/*)
11-
file(GLOB GYB_SOURCEKIT_SUPPORT ${SWIFT_SOURCE_DIR}/utils/gyb_sourcekit_support/*)
10+
file(GLOB GYB_SYNTAX_SUPPORT ${SWIFT_SOURCE_DIR}/utils/gyb_syntax_support/*.py)
11+
file(GLOB GYB_SOURCEKIT_SUPPORT ${SWIFT_SOURCE_DIR}/utils/gyb_sourcekit_support/*.py)
1212
set(GYB_SOURCES
13+
${SWIFT_SOURCE_DIR}/utils/gyb
14+
${SWIFT_SOURCE_DIR}/utils/gyb.py
1315
${SWIFT_SOURCE_DIR}/utils/GYBUnicodeDataUtils.py
1416
${SWIFT_SOURCE_DIR}/utils/SwiftIntTypes.py
1517
${GYB_UNICODE_DATA}

cmake/modules/SwiftHandleGybSources.cmake

+18-13
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ endfunction()
7777
# handle_gyb_sources(
7878
# dependency_out_var_name
7979
# sources_var_name
80-
# arch)
80+
# [ARCH arch]
81+
# [DEPENDS [depends ...]])
8182
#
8283
# Replace, in ${sources_var_name}, the given .gyb-suffixed sources with
8384
# their un-suffixed intermediate files, which will be generated by processing
@@ -93,11 +94,21 @@ endfunction()
9394
# false, the files are architecture-independent and will be emitted
9495
# into ${CMAKE_CURRENT_BINARY_DIR} instead of an architecture-specific
9596
# destination; this is useful for generated include files.
96-
function(handle_gyb_sources dependency_out_var_name sources_var_name arch)
97+
#
98+
# depends
99+
# Additional file dependencies beyond the standard dependencies that all gyb
100+
# invocations get.
101+
function(handle_gyb_sources dependency_out_var_name sources_var_name)
102+
set(options)
103+
set(single_value_args ARCH)
104+
set(multi_value_args DEPENDS)
105+
cmake_parse_arguments(GYB
106+
"${options}" "${single_value_args}" "${multi_value_args}" ${ARGN})
107+
97108
set(extra_gyb_flags "")
98-
if (arch)
109+
if (GYB_ARCH)
99110
set_if_arch_bitness(ptr_size
100-
ARCH "${arch}"
111+
ARCH "${GYB_ARCH}"
101112
CASE_32_BIT "4"
102113
CASE_64_BIT "8")
103114
set(extra_gyb_flags "-DCMAKE_SIZEOF_VOID_P=${ptr_size}")
@@ -141,7 +152,7 @@ function(handle_gyb_sources dependency_out_var_name sources_var_name arch)
141152
set(dir_root ${CMAKE_CURRENT_BINARY_DIR})
142153
endif()
143154

144-
if (arch)
155+
if (GYB_ARCH)
145156
set(dir "${dir_root}/${ptr_size}")
146157
else()
147158
set(dir "${dir_root}")
@@ -154,7 +165,7 @@ function(handle_gyb_sources dependency_out_var_name sources_var_name arch)
154165
SOURCE "${src}"
155166
OUTPUT "${output_file_name}"
156167
FLAGS ${extra_gyb_flags}
157-
DEPENDS "${gyb_extra_sources}"
168+
DEPENDS "${GYB_DEPENDS}" "${gyb_extra_sources}"
158169
COMMENT "with ptr size = ${ptr_size}")
159170
list(APPEND dependency_targets "${dependency_target}")
160171
endforeach()
@@ -163,13 +174,7 @@ function(handle_gyb_sources dependency_out_var_name sources_var_name arch)
163174
endfunction()
164175

165176
function(add_gyb_target target sources)
166-
set(options)
167-
set(single_value_args ARCH)
168-
set(multi_value_args)
169-
cmake_parse_arguments(GYB
170-
"${options}" "${single_value_args}" "${multi_value_args}" ${ARGN})
171-
172-
handle_gyb_sources(gyb_sources_depends sources "${GYB_ARCH}")
177+
handle_gyb_sources(gyb_sources_depends sources ${ARGN})
173178

174179
add_custom_target(${target}
175180
DEPENDS "${gyb_sources_depends}")

lib/ClangImporter/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ set(SWIFT_GYB_FLAGS
22
"-DCFDatabaseFile=${SWIFT_SOURCE_DIR}/lib/ClangImporter/CFDatabase.def")
33

44
add_gyb_target(generated_sorted_cf_database
5-
SortedCFDatabase.def.gyb)
5+
SortedCFDatabase.def.gyb
6+
DEPENDS "${SWIFT_SOURCE_DIR}/lib/ClangImporter/CFDatabase.def")
67

78
add_swift_host_library(swiftClangImporter STATIC
89
CFTypeInfo.cpp

stdlib/cmake/modules/AddSwiftStdlib.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ function(_add_swift_target_library_single target name)
729729
handle_gyb_sources(
730730
gyb_dependency_targets
731731
SWIFTLIB_SINGLE_GYB_SOURCES
732-
"${SWIFTLIB_SINGLE_ARCHITECTURE}")
732+
ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE}")
733733
set(SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_SOURCES}
734734
${SWIFTLIB_SINGLE_GYB_SOURCES})
735735
endif()

unittests/Basic/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set(generated_tests UnicodeGraphemeBreakTest.cpp.gyb)
33
handle_gyb_sources(
44
gyb_dependency_targets
55
generated_tests
6-
${SWIFT_HOST_VARIANT_ARCH})
6+
ARCH ${SWIFT_HOST_VARIANT_ARCH})
77

88
add_swift_unittest(SwiftBasicTests
99
BlotMapVectorTest.cpp

0 commit comments

Comments
 (0)