Skip to content

Commit 458e689

Browse files
committed
[Platform] Simplify glibc.modulemap generation
Get rid of cmake configure_file and gyb combination.
1 parent 65bd53c commit 458e689

File tree

2 files changed

+92
-109
lines changed

2 files changed

+92
-109
lines changed

stdlib/public/Platform/CMakeLists.txt

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,42 +55,25 @@ foreach(sdk ${SWIFT_SDKS})
5555
endif()
5656
endif()
5757

58+
set(glibc_modulemap_source "glibc.modulemap.gyb")
59+
set(glibc_modulemap_out "${module_dir}/glibc.modulemap")
60+
5861
# Configure the module map based on the target. Each platform needs to
5962
# reference different headers, based on what's available in their glibc.
60-
set(glibc_modulemap_gyb_source "glibc.modulemap.in.gyb")
61-
set(glibc_modulemap_gyb_configured
62-
"${CMAKE_CURRENT_BINARY_DIR}/${arch_subdir}/glibc.modulemap.gyb")
63-
configure_file(
64-
${glibc_modulemap_gyb_source}
65-
${glibc_modulemap_gyb_configured}
66-
@ONLY)
67-
68-
set(gyb_tool "${SWIFT_SOURCE_DIR}/utils/gyb")
69-
set(glibc_modulemap_configured
70-
"${CMAKE_CURRENT_BINARY_DIR}/${arch_subdir}/glibc.modulemap")
71-
add_custom_command_target(glibc_modulemap_target
72-
# We can't use handle_gyb_sources() here because we need to ensure
73-
# gyb is invoked before we copy glibc.modulemap into the module dir.
74-
# FIXME: Instead of using a combination of configure_file() and gyb,
75-
# we should use just gyb--it'd be simpler.
76-
COMMAND
77-
${gyb_tool} "-DCMAKE_SDK=${sdk}" -o ${glibc_modulemap_configured} ${glibc_modulemap_gyb_configured}
78-
COMMAND
79-
${CMAKE_COMMAND} -E make_directory ${module_dir}
80-
COMMAND
81-
${CMAKE_COMMAND} -E copy_if_different
82-
${glibc_modulemap_configured}
83-
"${module_dir}/glibc.modulemap"
84-
OUTPUT "${module_dir}/glibc.modulemap"
85-
DEPENDS ${glibc_modulemap_configured}
86-
COMMENT "Copying Glibc module to ${module_dir}")
63+
handle_gyb_source_single(glibc_modulemap_target
64+
SOURCE "${glibc_modulemap_source}"
65+
OUTPUT "${glibc_modulemap_out}"
66+
FLAGS
67+
"-DCMAKE_SDK=${sdk}"
68+
"-DGLIBC_INCLUDE_PATH=${GLIBC_INCLUDE_PATH}"
69+
"-DGLIBC_ARCH_INCLUDE_PATH=${GLIBC_ARCH_INCLUDE_PATH}")
8770

88-
swift_install_in_component(stdlib
89-
FILES "${module_dir}/glibc.modulemap"
71+
swift_install_in_component(sdk-overlay
72+
FILES "${glibc_modulemap_out}"
9073
DESTINATION "lib/swift/${arch_subdir}")
9174

9275
list(APPEND glibc_modulemap_target_list ${glibc_modulemap_target})
9376
endforeach()
9477
endif()
9578
endforeach()
96-
add_custom_target(glibc_modulemap ALL DEPENDS ${glibc_modulemap_target_list})
79+
add_custom_target(glibc_modulemap DEPENDS ${glibc_modulemap_target_list})

0 commit comments

Comments
 (0)