| set(swift_runtime_compile_flags ${SWIFT_RUNTIME_CORE_CXX_FLAGS}) |
| set(swift_runtime_linker_flags ${SWIFT_RUNTIME_CORE_LINK_FLAGS}) |
| |
| if(SWIFT_RUNTIME_CLOBBER_FREED_OBJECTS) |
| list(APPEND swift_runtime_compile_flags |
| "-DSWIFT_RUNTIME_CLOBBER_FREED_OBJECTS=1") |
| endif() |
| |
| if(SWIFT_RUNTIME_CRASH_REPORTER_CLIENT) |
| list(APPEND swift_runtime_compile_flags |
| "-DSWIFT_HAVE_CRASHREPORTERCLIENT=1") |
| endif() |
| |
| set(swift_runtime_leaks_sources) |
| if(SWIFT_RUNTIME_ENABLE_LEAK_CHECKER) |
| list(APPEND swift_runtime_compile_flags |
| "-DSWIFT_RUNTIME_ENABLE_LEAK_CHECKER=1") |
| set(swift_runtime_leaks_sources Leaks.mm) |
| endif() |
| |
| list(APPEND swift_runtime_compile_flags |
| "-D__SWIFT_CURRENT_DYLIB=swiftCore") |
| |
| set(swift_runtime_objc_sources |
| ErrorObject.mm |
| SwiftObject.mm |
| SwiftValue.mm |
| Reflection.mm |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/OldRemangler.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/Remangler.cpp") |
| |
| set(swift_runtime_sources |
| AnyHashableSupport.cpp |
| Array.cpp |
| Casting.cpp |
| CygwinPort.cpp |
| Demangle.cpp |
| Enum.cpp |
| ErrorObjectConstants.cpp |
| ErrorObjectNative.cpp |
| Errors.cpp |
| ErrorDefaultImpls.cpp |
| Exclusivity.cpp |
| Heap.cpp |
| HeapObject.cpp |
| ImageInspectionMachO.cpp |
| ImageInspectionELF.cpp |
| ImageInspectionWin32.cpp |
| KnownMetadata.cpp |
| Metadata.cpp |
| MetadataLookup.cpp |
| MutexPThread.cpp |
| MutexWin32.cpp |
| Once.cpp |
| Portability.cpp |
| ProtocolConformance.cpp |
| RefCount.cpp |
| RuntimeEntrySymbols.cpp |
| RuntimeInvocationsTracking.cpp |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/OldDemangler.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/Demangler.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/NodePrinter.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/Context.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/ManglingUtils.cpp" |
| "${SWIFT_SOURCE_DIR}/lib/Demangling/Punycode.cpp") |
| |
| # Acknowledge that the following sources are known. |
| set(LLVM_OPTIONAL_SOURCES |
| MutexPThread.cpp |
| MutexWin32.cpp |
| CygwinPort.cpp |
| ImageInspectionELF.cpp |
| StaticBinaryELF.cpp |
| SwiftRT-ELF.cpp |
| ${swift_runtime_sources} |
| ${swift_runtime_objc_sources} |
| ${swift_runtime_leaks_sources}) |
| |
| set(swift_runtime_library_compile_flags ${swift_runtime_compile_flags}) |
| list(APPEND swift_runtime_library_compile_flags -DswiftCore_EXPORTS) |
| list(APPEND swift_runtime_library_compile_flags -I${SWIFT_SOURCE_DIR}/include) |
| |
| if(SWIFT_BUILD_STATIC_STDLIB) |
| set(static_binary_lnk_file_list) |
| foreach(sdk ${SWIFT_SDKS}) |
| if(NOT "${sdk}" STREQUAL "LINUX" AND |
| NOT "${sdk}" STREQUAL "FREEBSD" AND |
| NOT "${sdk}" STREQUAL "ANDROID") |
| continue() |
| endif() |
| |
| string(TOLOWER "${sdk}" lowercase_sdk) |
| # Generate the static-executable-args.lnk file used for ELF systems (eg linux) |
| set(linkfile "${lowercase_sdk}/static-executable-args.lnk") |
| add_custom_command_target(swift_static_binary_${sdk}_args |
| COMMAND |
| "${CMAKE_COMMAND}" -E copy |
| "${SWIFT_SOURCE_DIR}/utils/static-executable-args.lnk" |
| "${SWIFTSTATICLIB_DIR}/${linkfile}" |
| OUTPUT |
| "${SWIFTSTATICLIB_DIR}/${linkfile}" |
| DEPENDS |
| "${SWIFT_SOURCE_DIR}/utils/static-executable-args.lnk") |
| |
| list(APPEND static_binary_lnk_file_list ${swift_static_binary_${sdk}_args}) |
| swift_install_in_component(stdlib |
| FILES "${SWIFTSTATICLIB_DIR}/${linkfile}" |
| DESTINATION "lib/swift_static/${lowercase_sdk}") |
| endforeach() |
| add_custom_target(static_binary_magic ALL DEPENDS ${static_binary_lnk_file_list}) |
| endif() |
| |
| add_swift_library(swiftRuntime OBJECT_LIBRARY TARGET_LIBRARY |
| ${swift_runtime_sources} |
| ${swift_runtime_objc_sources} |
| ${swift_runtime_leaks_sources} |
| C_COMPILE_FLAGS ${swift_runtime_library_compile_flags} |
| LINK_FLAGS ${swift_runtime_linker_flags} |
| INSTALL_IN_COMPONENT never_install) |
| |
| set(ELFISH_SDKS) |
| foreach(sdk ${SWIFT_CONFIGURED_SDKS}) |
| if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF") |
| list(APPEND ELFISH_SDKS ${sdk}) |
| endif() |
| endforeach() |
| |
| add_swift_library(swiftImageRegistrationObject |
| OBJECT_LIBRARY IS_STDLIB IS_STDLIB_CORE |
| SwiftRT-ELF.cpp |
| C_COMPILE_FLAGS ${SWIFT_RUNTIME_CORE_CXX_FLAGS} |
| LINK_FLAGS ${SWIFT_RUNTIME_CORE_LINK_FLAGS} |
| TARGET_SDKS ${ELFISH_SDKS} |
| INSTALL_IN_COMPONENT none) |
| |
| foreach(sdk ${SWIFT_CONFIGURED_SDKS}) |
| foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) |
| set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}") |
| set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") |
| |
| if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF") |
| # TODO(compnerd) switch to the generator expression when cmake is upgraded |
| # to a version which supports it. |
| # set(swiftrtObject "$<TARGET_OBJECTS:swiftImageRegistrationObject-${arch_suffix}>") |
| set(swiftrtObject ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/swiftImageRegistrationObject-${arch_suffix}.dir/SwiftRT-ELF.cpp${CMAKE_C_OUTPUT_EXTENSION}) |
| set(swiftrtPath "${SWIFTLIB_DIR}/${arch_subdir}/swiftrt${CMAKE_C_OUTPUT_EXTENSION}") |
| |
| add_custom_command_target(swiftImageRegistration-${arch_suffix} |
| COMMAND |
| "${CMAKE_COMMAND}" -E copy "${swiftrtObject}" "${swiftrtPath}" |
| OUTPUT |
| "${swiftrtPath}" |
| DEPENDS |
| "${swiftrtObject}") |
| swift_install_in_component(stdlib |
| FILES |
| "${swiftrtPath}" |
| DESTINATION |
| "lib/swift/${arch_subdir}") |
| add_dependencies(swift-stdlib-${arch_suffix} ${swiftImageRegistration-${arch_suffix}}) |
| |
| add_custom_target(swiftImageRegistration-${arch_suffix} |
| ALL DEPENDS |
| ${swiftImageRegistration-${arch_suffix}}) |
| endif() |
| endforeach() |
| endforeach() |
| |