@@ -57,6 +57,7 @@ include(ResourceEmbedding)
5757include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL )
5858
5959defaulted_option(SwiftOverlay_ENABLE_REFLECTION "Enable runtime support for mirrors and reflection support" )
60+ defaulted_option(SwiftOverlay_ENABLE_CXX_INTEROP "Enable C++ Interop support overlays" )
6061
6162option (SwiftOverlay_INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON )
6263set (SwiftOverlay_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${SwiftOverlay_INSTALL_NESTED_SUBDIR} >:/${SwiftOverlay_PLATFORM_SUBDIR} /${SwiftOverlay_ARCH_SUBDIR} >" )
@@ -67,16 +68,23 @@ option(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime lib
6768option (SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtime backdeployment"
6869 ${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT} )
6970
71+ add_compile_definitions (
72+ $<$<BOOL :${SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT} >:SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT>)
73+
7074add_compile_options (
7175 $<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build >
7276 $<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
73- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enforce-exclusivity=unchecked>"
74- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
77+ $<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety>
7578 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-lexical-lifetimes=false>"
76- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-ossa-modules>"
77- "$<$<AND:$<BOOL:${SwiftOverlay_ENABLE_LIBRARY_EVOLUTION} >,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
7879 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-concurrency-module-import>"
79- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-string-processing-module-import>" )
80+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-string-processing-module-import>"
81+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enforce-exclusivity=unchecked>"
82+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-ossa-modules>"
83+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
84+ "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
85+ "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>" )
86+
87+ include (ExperimentalFeatures)
8088
8189# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
8290# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
@@ -87,9 +95,6 @@ add_compile_options(
8795# a compromise, treat all linker warnings as errors.
8896add_link_options ($<$<PLATFORM_ID:Windows>:LINKER:/WX>)
8997
90- add_compile_definitions (
91- $<$<BOOL :${SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT} >:SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT>)
92-
9398include (ExperimentalFeatures)
9499
95100add_subdirectory (clang)
@@ -100,6 +105,10 @@ if(WIN32)
100105 add_subdirectory (Windows)
101106endif ()
102107
108+ if (SwiftOverlay_ENABLE_CXX_INTEROP)
109+ add_subdirectory (Cxx)
110+ endif ()
111+
103112# Inter-project install info
104113export (EXPORT SwiftOverlayTargets
105114 FILE "cmake/SwiftOverlay/SwiftOverlayTargets.cmake" )
0 commit comments