diff --git a/CMakeLists.txt b/CMakeLists.txt index 98561eb81098d..ea2a63f21796d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1274,10 +1274,10 @@ else() if(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT) add_subdirectory(stdlib/toolchain) - endif() - if(SWIFT_BUILD_STDLIB_CXX_MODULE) - add_subdirectory(stdlib/public/Cxx) + if(SWIFT_BUILD_STDLIB_CXX_MODULE) + add_subdirectory(stdlib/public/Cxx) + endif() endif() if (BUILD_SWIFT_CONCURRENCY_BACK_DEPLOYMENT_LIBRARIES) @@ -1287,7 +1287,7 @@ else() # Some tools (e.g. swift-reflection-dump) rely on a host swiftRemoteInspection, # so ensure we build that when building tools. - if(SWIFT_INCLUDE_TOOLS) + if(SWIFT_INCLUDE_TOOLS OR SWIFT_BUILD_STDLIB_CXX_MODULE) add_subdirectory(stdlib/public/SwiftShims/swift/shims) endif() diff --git a/stdlib/public/Cxx/CMakeLists.txt b/stdlib/public/Cxx/CMakeLists.txt index 87026aadc4e78..2ebf6d1d302b9 100644 --- a/stdlib/public/Cxx/CMakeLists.txt +++ b/stdlib/public/Cxx/CMakeLists.txt @@ -1,8 +1,16 @@ +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../cmake/modules) +include(StdlibOptions) + set(SWIFT_CXX_LIBRARY_KIND STATIC) if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WINDOWS") set(SWIFT_CXX_LIBRARY_KIND SHARED) endif() +set(SWIFT_CXX_DEPS symlink_clang_headers) +if(SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT) + list(APPEND SWIFT_CXX_DEPS copy-legacy-layouts) +endif() + add_swift_target_library(swiftCxx ${SWIFT_CXX_LIBRARY_KIND} NO_LINK_NAME IS_STDLIB IS_SWIFT_ONLY CxxConvertibleToCollection.swift CxxDictionary.swift @@ -20,6 +28,7 @@ add_swift_target_library(swiftCxx ${SWIFT_CXX_LIBRARY_KIND} NO_LINK_NAME IS_STDL -Xcc -nostdinc++ LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" + DEPENDS ${SWIFT_CXX_DEPS} INSTALL_IN_COMPONENT compiler INSTALL_WITH_SHARED)