blob: 1b09c048178f334bb73c82f0f6f99f6a52816420 [file] [log] [blame]
add_swift_target_library(swiftSwiftOnoneSupport ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
# This file should be listed the first. Module name is inferred from the
# filename.
SwiftOnoneSupport.swift
"${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c"
# We have to disable validation of TBD files, because this module is
# _explicitly_ special-cased to result in extra symbols generated by the
# optimizer, meaning TBDGen can't (and shouldn't: it has to run
# pre-optimization for performance) list them.
SWIFT_COMPILE_FLAGS "-parse-stdlib" "-Xllvm" "-sil-inline-generics=false" "-Xfrontend" "-validate-tbd-against-ir=none" "-Xfrontend" "-check-onone-completeness" "-Xfrontend" "-disable-access-control" "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" "${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
INSTALL_IN_COMPONENT stdlib)
if(WINDOWS IN_LIST SWIFT_SDKS)
# When building in Debug mode, the standard library provides the symbols that
# we need and as such SwiftOnoneSupport does not need to provide any exported
# interfaces. This results in the import library beinging elided. However,
# we explicitly link against the SwiftOnoneSupport library when building
# programs in Debug mode, and need the import library to be generated even if
# nothing is exported. Because we will still generate the DLL, create an
# empty import library.
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/swiftSwiftOnoneSupport.def
"LIBRARY swiftSwiftOnoneSupport\n"
"EXPORTS\n")
foreach(architecture ${SWIFT_SDK_WINDOWS_ARCHITECTURES})
target_sources(swiftSwiftOnoneSupport-windows-${architecture} PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/swiftSwiftOnoneSupport.def)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/swiftSwiftOnoneSupport.def
PROPERTIES HEADER_FILE_ONLY TRUE)
endforeach()
endif()