Skip to content

Commit 2e77e6a

Browse files
committed
build: tweak gyb line directives
Make the quoted parameters more portable. This is needed in order to support building swift on Windows. Simplify the declaration of the flags and do a small formatting clean up. This ensures that the ninja generation gets the command line invocation correct.
1 parent 34e77c0 commit 2e77e6a

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

cmake/modules/SwiftHandleGybSources.cmake

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ function(handle_gyb_source_single dependency_out_var_name)
3737
GYB_SINGLE # prefix
3838
"${options}" "${single_value_args}" "${multi_value_args}" ${ARGN})
3939

40-
set(gyb_flags
41-
${SWIFT_GYB_FLAGS}
42-
${GYB_SINGLE_FLAGS})
43-
4440
set(gyb_tool "${SWIFT_SOURCE_DIR}/utils/gyb")
4541
set(gyb_tool_source "${gyb_tool}" "${gyb_tool}.py")
4642

@@ -62,11 +58,9 @@ function(handle_gyb_source_single dependency_out_var_name)
6258
COMMAND
6359
"${CMAKE_COMMAND}" -E make_directory "${dir}"
6460
COMMAND
65-
"${PYTHON_EXECUTABLE}" "${gyb_tool}" "${gyb_flags}"
66-
-o "${GYB_SINGLE_OUTPUT}.tmp" "${GYB_SINGLE_SOURCE}"
61+
"${PYTHON_EXECUTABLE}" "${gyb_tool}" ${SWIFT_GYB_FLAGS} ${GYB_SINGLE_FLAGS} -o "${GYB_SINGLE_OUTPUT}.tmp" "${GYB_SINGLE_SOURCE}"
6762
COMMAND
68-
"${CMAKE_COMMAND}" -E copy_if_different
69-
"${GYB_SINGLE_OUTPUT}.tmp" "${GYB_SINGLE_OUTPUT}"
63+
"${CMAKE_COMMAND}" -E copy_if_different "${GYB_SINGLE_OUTPUT}.tmp" "${GYB_SINGLE_OUTPUT}"
7064
COMMAND
7165
"${CMAKE_COMMAND}" -E remove "${GYB_SINGLE_OUTPUT}.tmp"
7266
OUTPUT "${GYB_SINGLE_OUTPUT}"

include/swift/Syntax/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
set(line_directive "#line" "%(line)d" "\"%(file)s\"")
2-
set(SWIFT_GYB_FLAGS
3-
--line-directive "'${line_directive}'")
1+
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
2+
set(SWIFT_GYB_FLAGS --line-directive "^\"#line %(line)d \\\"%(file)s\\\"^\"")
3+
else()
4+
set(SWIFT_GYB_FLAGS --line-directive "\'#line" "%(line)d" "\"%(file)s\"\'")
5+
endif()
46

57
set(generated_include_sources
68
SyntaxKind.h.gyb

lib/Syntax/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
set(line_directive "#line" "%(line)d" "\"%(file)s\"")
2-
set(SWIFT_GYB_FLAGS
3-
--line-directive "'${line_directive}'")
1+
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
2+
set(SWIFT_GYB_FLAGS --line-directive "^\"#line %(line)d \\\"%(file)s\\\"^\"")
3+
else()
4+
set(SWIFT_GYB_FLAGS --line-directive "\'#line" "%(line)d" "\"%(file)s\"\'")
5+
endif()
46

57
add_swift_library(swiftSyntax STATIC
68
SyntaxNodes.cpp.gyb

0 commit comments

Comments
 (0)