CMakeLists.txt 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #[[
  2. This source file is part of the Swift System open source project
  3. Copyright (c) 2020 Apple Inc. and the Swift System project authors
  4. Licensed under Apache License v2.0 with Runtime Library Exception
  5. See https://swift.org/LICENSE.txt for license information
  6. #]]
  7. add_library(SystemPackage
  8. Errno.swift
  9. ErrnoWindows.swift
  10. FileDescriptor.swift
  11. FileHelpers.swift
  12. FileOperations.swift
  13. FilePermissions.swift
  14. MachPort.swift
  15. PlatformString.swift
  16. SystemString.swift
  17. Util.swift
  18. Util+StringArray.swift
  19. UtilConsumers.swift
  20. WinSDK+Overlay.swift)
  21. set_target_properties(SystemPackage PROPERTIES
  22. INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
  23. # Availability macro definitions.
  24. # Should stay in sync with the `availability` array in Package.swift,
  25. # matching `sourceAvailability`, which is the minimum Swift availability.
  26. # Availability support for Darwin platforms is omitted.
  27. set(SWIFT_SYSTEM_AVAILABILITY_VERSIONS
  28. 0.0.1 0.0.2 0.0.3
  29. 1.1.0 1.1.1 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.4.0
  30. 1.7.0
  31. 199)
  32. set(SWIFT_SYSTEM_SOURCE_AVAILABILITY
  33. "macOS 10.10, iOS 8.0, watchOS 2.0, tvOS 9.0, visionOS 1.0")
  34. set(SWIFT_SYSTEM_AVAILABILITY_MACRO)
  35. foreach(version IN LISTS SWIFT_SYSTEM_AVAILABILITY_VERSIONS)
  36. list(APPEND SWIFT_SYSTEM_AVAILABILITY_MACRO
  37. "SHELL:-enable-experimental-feature \"AvailabilityMacro=System ${version}:${SWIFT_SYSTEM_SOURCE_AVAILABILITY}\"")
  38. endforeach()
  39. target_compile_options(SystemPackage PRIVATE
  40. -enable-experimental-feature Lifetimes
  41. ${SWIFT_SYSTEM_AVAILABILITY_MACRO}
  42. "SHELL:-package-name swift-system")
  43. target_sources(SystemPackage PRIVATE
  44. FilePath/FilePath.swift
  45. FilePath/FilePathComponents.swift
  46. FilePath/FilePathComponentView.swift
  47. FilePath/FilePathParsing.swift
  48. FilePath/FilePathString.swift
  49. FilePath/FilePathSyntax.swift
  50. FilePath/FilePathTemp.swift
  51. FilePath/FilePathTempPosix.swift
  52. FilePath/FilePathTempWindows.swift
  53. FilePath/FilePathWindows.swift)
  54. target_sources(SystemPackage PRIVATE
  55. FileSystem/FileFlags.swift
  56. FileSystem/FileMode.swift
  57. FileSystem/FileType.swift
  58. FileSystem/Identifiers.swift
  59. FileSystem/Stat.swift)
  60. if(CMAKE_SYSTEM_NAME STREQUAL Linux)
  61. target_sources(SystemPackage PRIVATE
  62. IORing/IOCompletion.swift
  63. IORing/IORequest.swift
  64. IORing/IORing.swift
  65. IORing/IORing+Util.swift
  66. IORing/RawIORequest.swift)
  67. endif()
  68. target_sources(SystemPackage PRIVATE
  69. Internals/Backcompat.swift
  70. Internals/CInterop.swift
  71. Internals/Constants.swift
  72. Internals/Exports.swift
  73. Internals/Mocking.swift
  74. Internals/RawBuffer.swift
  75. Internals/Syscalls.swift
  76. Internals/WindowsSyscallAdapters.swift)
  77. target_link_libraries(SystemPackage PUBLIC
  78. CSystem)
  79. set(SWIFT_SYSTEM_APPLE_PLATFORMS "Darwin" "iOS" "watchOS" "tvOS" "visionOS")
  80. if(CMAKE_SYSTEM_NAME IN_LIST SWIFT_SYSTEM_APPLE_PLATFORMS)
  81. target_compile_definitions(SystemPackage PRIVATE SYSTEM_PACKAGE_DARWIN)
  82. endif()
  83. _install_target(SystemPackage)
  84. set_property(GLOBAL APPEND PROPERTY SWIFT_SYSTEM_EXPORTS SystemPackage)