diff --git a/CMakeLists.txt b/CMakeLists.txt index 25df18647c7..80ff9ccff69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,10 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/${SWIFT_HOST_LIBRARI set(CMAKE_MACOSX_RPATH YES) +option(SWIFT_SYNTAX_ENABLE_WMO_PRE_3_26 + "Enable Whole Module Optimization (WMO) - requires swift-driver" + $>,$>,YES,NO>) + include(AddSwiftHostLibrary) # Ensure that we do not link the _StringProcessing module. But we can diff --git a/cmake/modules/AddSwiftHostLibrary.cmake b/cmake/modules/AddSwiftHostLibrary.cmake index 4ec93305bf1..e6d3d4db4b6 100644 --- a/cmake/modules/AddSwiftHostLibrary.cmake +++ b/cmake/modules/AddSwiftHostLibrary.cmake @@ -56,11 +56,9 @@ function(add_swift_host_library name) -emit-module-interface-path;${module_interface_file} >) - if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") + if(CMAKE_VERSION VERSION_LESS 3.26.0 AND SWIFT_SYNTAX_ENABLE_WMO_PRE_3_26) target_compile_options(${name} PRIVATE - $<$: - -wmo - >) + $<$:-wmo>) endif() # NOTE: workaround for CMake not setting up include flags yet