Skip to content

Commit ee996da

Browse files
committed
stdlib: enable cxxshim for Windows
This is used by the test suite and needs to be enabled for Windows to enable parts of the test suite.
1 parent 75156b1 commit ee996da

File tree

1 file changed

+34
-76
lines changed

1 file changed

+34
-76
lines changed
Lines changed: 34 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,52 @@
1-
is_sdk_requested(WINDOWS swift_build_windows)
21
set(libcxxshim_modulemap_target_list)
32
foreach(sdk ${SWIFT_SDKS})
4-
if(swift_build_windows)
5-
continue()
6-
endif()
7-
83
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
94
set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
105
set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}")
116

127
set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
138
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
149

15-
set(libcxxshim_header "libcxxshim.h")
16-
set(libcxxshim_header_out "${module_dir}/libcxxshim.h")
17-
set(libcxxshim_header_out_static "${module_dir_static}/libcxxshim.h")
18-
set(libcxxshim_modulemap "libcxxshim.modulemap")
19-
set(libcxxshim_modulemap_out "${module_dir}/libcxxshim.modulemap")
20-
set(libcxxshim_modulemap_out_static "${module_dir_static}/libcxxshim.modulemap")
21-
22-
add_custom_command_target(
23-
copy_libcxxshim_modulemap
24-
COMMAND
25-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir}
26-
COMMAND
27-
"${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_modulemap}" "${libcxxshim_modulemap_out}"
28-
OUTPUT ${libcxxshim_modulemap_out}
29-
DEPENDS ${libcxxshim_modulemap}
30-
COMMENT "Copying libcxxshim modulemap to resources")
31-
list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap})
32-
add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap})
33-
34-
add_custom_command_target(
35-
copy_libcxxshim_header
36-
COMMAND
37-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir}
38-
COMMAND
39-
"${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_header}" "${libcxxshim_header_out}"
40-
OUTPUT ${libcxxshim_header_out}
41-
DEPENDS ${libcxxshim_header}
42-
COMMENT "Copying libcxxshim header to resources")
43-
list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header})
44-
add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header})
45-
10+
add_custom_command(OUTPUT ${module_dir}
11+
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir}")
4612
if(SWIFT_BUILD_STATIC_STDLIB)
47-
add_custom_command_target(
48-
copy_libcxxshim_modulemap_static
49-
COMMAND
50-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static}
51-
COMMAND
52-
"${CMAKE_COMMAND}" "-E" "copy_if_different"
53-
"${libcxxshim_modulemap_out}" "${libcxxshim_modulemap_out_static}"
54-
OUTPUT ${libcxxshim_modulemap_out_static}
55-
DEPENDS ${copy_libcxxshim_modulemap}
56-
COMMENT "Copying libcxxshim modulemap to static resources")
57-
list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap_static})
58-
add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap_static})
13+
add_custom_command(OUTPUT ${module_dir_static}
14+
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir_static}")
15+
endif()
5916

60-
add_custom_command_target(
61-
copy_libcxxshim_header_static
62-
COMMAND
63-
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static}
64-
COMMAND
65-
"${CMAKE_COMMAND}" "-E" "copy_if_different"
66-
"${libcxxshim_header_out}" "${libcxxshim_header_out_static}"
67-
OUTPUT ${libcxxshim_header_out_static}
68-
DEPENDS ${copy_libcxxshim_header}
69-
COMMENT "Copying libcxxshim header to static resources")
70-
list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header_static})
71-
add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header_static})
17+
set(outputs)
18+
foreach(source libcxxshim.modulemap libcxxshim.h)
19+
add_custom_command(OUTPUT ${module_dir}/${source}
20+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source}
21+
COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir}/${source}"
22+
COMMENT "Copying ${source} to ${module_dir}")
23+
list(APPEND outputs "${module_dir}/${source}")
24+
25+
if(SWIFT_BUILD_STATIC_STDLIB)
26+
add_custom_command(OUTPUT ${module_dir_static}/${source}
27+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source}
28+
COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir_static}/${source}"
29+
COMMENT "Copying ${source} to ${module_dir_static}")
30+
list(APPEND outputs "${module_dir_static}/${source}")
31+
endif()
32+
endforeach()
33+
list(APPEND outputs ${module_dir})
34+
if(SWIFT_BUILD_STATIC_STDLIB)
35+
list(APPEND outputs ${module_dir_static})
7236
endif()
7337

74-
swift_install_in_component(FILES "${libcxxshim_modulemap_out}"
75-
DESTINATION "lib/swift/${arch_subdir}"
76-
COMPONENT sdk-overlay)
77-
swift_install_in_component(FILES "${libcxxshim_header_out}"
78-
DESTINATION "lib/swift/${arch_subdir}"
79-
COMPONENT sdk-overlay)
38+
add_custom_target(cxxshim-${sdk}-${arch} ALL
39+
DEPENDS ${outputs}
40+
COMMENT "Copying cxxshims to ${module_dir}")
8041

42+
43+
swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h
44+
DESTINATION "lib/swift/${arch_subdir}"
45+
COMPONENT sdk-overlay)
8146
if(SWIFT_BUILD_STATIC_STDLIB)
82-
swift_install_in_component(FILES "${libcxxshim_modulemap_out_static}"
83-
DESTINATION "lib/swift_static/${arch_subdir}"
84-
COMPONENT sdk-overlay)
85-
swift_install_in_component(FILES "${libcxxshim_header_out_static}"
86-
DESTINATION "lib/swift_static/${arch_subdir}"
87-
COMPONENT sdk-overlay)
47+
swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h
48+
DESTINATION "lib/swift_static/${arch_subdir}"
49+
COMPONENT sdk-overlay)
8850
endif()
8951
endforeach()
9052
endforeach()
91-
92-
add_custom_target(libcxxshim-modulemap DEPENDS ${libcxxshim_modulemap_target_list})
93-
set_property(TARGET libcxxshim-modulemap PROPERTY FOLDER "Miscellaneous")
94-
add_dependencies(sdk-overlay libcxxshim-modulemap)

0 commit comments

Comments
 (0)