|
| 1 | + |
| 2 | +# FIXME(compnerd) workaround linker flag munging |
| 3 | +set(CMAKE_SHARED_LINKER_FLAGS "") |
| 4 | +set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "") |
| 5 | +# FIXME(compnerd) workaround the library search path flag |
| 6 | +set(CMAKE_LIBRARY_PATH_FLAG -L) |
| 7 | +set(CMAKE_LINK_LIBRARY_FLAG "-l") |
| 8 | + |
| 9 | +add_library(Foundation |
| 10 | + AffineTransform.swift |
| 11 | + Array.swift |
| 12 | + Boxing.swift |
| 13 | + Bridging.swift |
| 14 | + Bundle.swift |
| 15 | + ByteCountFormatter.swift |
| 16 | + Calendar.swift |
| 17 | + CGFloat.swift |
| 18 | + CharacterSet.swift |
| 19 | + Codable.swift |
| 20 | + Collections+DataProtocol.swift |
| 21 | + ContiguousBytes.swift |
| 22 | + Data.swift |
| 23 | + DataProtocol.swift |
| 24 | + Date.swift |
| 25 | + DateComponents.swift |
| 26 | + DateComponentsFormatter.swift |
| 27 | + DateFormatter.swift |
| 28 | + DateInterval.swift |
| 29 | + DateIntervalFormatter.swift |
| 30 | + Decimal.swift |
| 31 | + Dictionary.swift |
| 32 | + DispatchData+DataProtocol.swift |
| 33 | + EnergyFormatter.swift |
| 34 | + ExtraStringAPIs.swift |
| 35 | + FileHandle.swift |
| 36 | + FileManager.swift |
| 37 | + FileManager+POSIX.swift |
| 38 | + FileManager+Win32.swift |
| 39 | + FileManager_XDG.swift |
| 40 | + Formatter.swift |
| 41 | + FoundationErrors.swift |
| 42 | + Host.swift |
| 43 | + IndexPath.swift |
| 44 | + IndexSet.swift |
| 45 | + ISO8601DateFormatter.swift |
| 46 | + JSONEncoder.swift |
| 47 | + JSONSerialization.swift |
| 48 | + LengthFormatter.swift |
| 49 | + Locale.swift |
| 50 | + MassFormatter.swift |
| 51 | + Measurement.swift |
| 52 | + MeasurementFormatter.swift |
| 53 | + Notification.swift |
| 54 | + NotificationQueue.swift |
| 55 | + NSArray.swift |
| 56 | + NSAttributedString.swift |
| 57 | + NSCache.swift |
| 58 | + NSCalendar.swift |
| 59 | + NSCFArray.swift |
| 60 | + NSCFBoolean.swift |
| 61 | + NSCFCharacterSet.swift |
| 62 | + NSCFDictionary.swift |
| 63 | + NSCFSet.swift |
| 64 | + NSCFString.swift |
| 65 | + NSCharacterSet.swift |
| 66 | + NSCoder.swift |
| 67 | + NSComparisonPredicate.swift |
| 68 | + NSCompoundPredicate.swift |
| 69 | + NSConcreteValue.swift |
| 70 | + NSData+DataProtocol.swift |
| 71 | + NSData.swift |
| 72 | + NSDate.swift |
| 73 | + NSDecimalNumber.swift |
| 74 | + NSDictionary.swift |
| 75 | + NSEnumerator.swift |
| 76 | + NSError.swift |
| 77 | + NSExpression.swift |
| 78 | + NSGeometry.swift |
| 79 | + NSIndexPath.swift |
| 80 | + NSIndexSet.swift |
| 81 | + NSKeyedArchiver.swift |
| 82 | + NSKeyedArchiverHelpers.swift |
| 83 | + NSKeyedCoderOldStyleArray.swift |
| 84 | + NSKeyedUnarchiver.swift |
| 85 | + NSLocale.swift |
| 86 | + NSLock.swift |
| 87 | + NSLog.swift |
| 88 | + NSMeasurement.swift |
| 89 | + NSNotification.swift |
| 90 | + NSNull.swift |
| 91 | + NSNumber.swift |
| 92 | + NSObjCRuntime.swift |
| 93 | + NSObject.swift |
| 94 | + NSOrderedSet.swift |
| 95 | + NSPathUtilities.swift |
| 96 | + NSPersonNameComponents.swift |
| 97 | + NSPlatform.swift |
| 98 | + NSPredicate.swift |
| 99 | + NSRange.swift |
| 100 | + NSRegularExpression.swift |
| 101 | + NSSet.swift |
| 102 | + NSSortDescriptor.swift |
| 103 | + NSSpecialValue.swift |
| 104 | + NSString.swift |
| 105 | + NSStringAPI.swift |
| 106 | + NSSwiftRuntime.swift |
| 107 | + NSTextCheckingResult.swift |
| 108 | + NSTimeZone.swift |
| 109 | + NSURL.swift |
| 110 | + NSURLError.swift |
| 111 | + NSUUID.swift |
| 112 | + NSValue.swift |
| 113 | + NumberFormatter.swift |
| 114 | + Operation.swift |
| 115 | + PersonNameComponents.swift |
| 116 | + PersonNameComponentsFormatter.swift |
| 117 | + Pointers+DataProtocol.swift |
| 118 | + Port.swift |
| 119 | + PortMessage.swift |
| 120 | + Process.swift |
| 121 | + ProcessInfo.swift |
| 122 | + Progress.swift |
| 123 | + ProgressFraction.swift |
| 124 | + PropertyListEncoder.swift |
| 125 | + PropertyListSerialization.swift |
| 126 | + ReferenceConvertible.swift |
| 127 | + RunLoop.swift |
| 128 | + Scanner.swift |
| 129 | + ScannerAPI.swift |
| 130 | + Set.swift |
| 131 | + Stream.swift |
| 132 | + String.swift |
| 133 | + StringEncodings.swift |
| 134 | + Thread.swift |
| 135 | + Timer.swift |
| 136 | + TimeZone.swift |
| 137 | + Unit.swift |
| 138 | + URL.swift |
| 139 | + URLComponents.swift |
| 140 | + UserDefaults.swift |
| 141 | + UUID.swift |
| 142 | + XMLDocument.swift |
| 143 | + XMLDTD.swift |
| 144 | + XMLDTDNode.swift |
| 145 | + XMLElement.swift |
| 146 | + XMLNode.swift |
| 147 | + XMLParser.swift) |
| 148 | + |
| 149 | +target_compile_definitions(Foundation PRIVATE |
| 150 | + DEPLOYMENT_RUNTIME_SWIFT) |
| 151 | + |
| 152 | +target_compile_options(Foundation PRIVATE |
| 153 | + $<$<BOOL:ENABLE_TESTING>:-enable-testing>) |
| 154 | +target_compile_options(Foundation PUBLIC |
| 155 | + "SHELL:-Xcc -F${CMAKE_BINARY_DIR}") |
| 156 | + |
| 157 | +set_target_properties(Foundation PROPERTIES |
| 158 | + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY} |
| 159 | + INTERFACE_LINK_DIRECTORIES $<TARGET_LINKER_FILE_DIR:Foundation>) |
| 160 | + |
| 161 | +if(FOUNDATION_ENABLE_LIBDISPATCH) |
| 162 | + target_compile_definitions(Foundation PRIVATE |
| 163 | + DEPLOYMENT_ENABLE_LIBDISPATCH) |
| 164 | + |
| 165 | + # FIXME(compnerd) these three can go away with export targets |
| 166 | + target_compile_options(Foundation PUBLIC |
| 167 | + "SHELL:-Xcc -fblocks" |
| 168 | + "SHELL:-Xcc -I${FOUNDATION_PATH_TO_LIBDISPATCH_SOURCE}") |
| 169 | + target_include_directories(Foundation PUBLIC |
| 170 | + ${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/swift) |
| 171 | + target_link_directories(Foundation PUBLIC |
| 172 | + ${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src |
| 173 | + ${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src/BlocksRuntime |
| 174 | + ${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src/swift) |
| 175 | + |
| 176 | + target_link_libraries(Foundation PRIVATE |
| 177 | + swiftDispatch) |
| 178 | +endif() |
| 179 | + |
| 180 | +target_link_libraries(Foundation PRIVATE |
| 181 | + uuid CoreFoundation) |
| 182 | +target_link_libraries(Foundation PRIVATE |
| 183 | + ${ICU_UC_LIBRARY} ${ICU_I18N_LIBRARY}) |
| 184 | +target_link_libraries(Foundation PRIVATE |
| 185 | + ${LIBXML2_LIBRARIES}) |
| 186 | +if(CMAKE_SYSTEM_NAME STREQUAL Windows) |
| 187 | + target_link_libraries(Foundation PRIVATE |
| 188 | + DbgHelp Ole32 ShLwApi Shell32 WS2_32 iphlpapi pathcch) |
| 189 | + target_link_libraries(Foundation PRIVATE |
| 190 | + CoreFoundationResources) |
| 191 | + |
| 192 | + # FIXME(compnerd) SR-9138 |
| 193 | + target_link_options(Foundation PRIVATE |
| 194 | + "LINKER:-ignore:4217") |
| 195 | +endif() |
| 196 | + |
| 197 | +add_library(FoundationNetworking |
| 198 | + Boxing.swift |
| 199 | + NSURLRequest.swift |
| 200 | + HTTPCookie.swift |
| 201 | + HTTPCookieStorage.swift |
| 202 | + URLAuthenticationChallenge.swift |
| 203 | + URLCache.swift |
| 204 | + URLCredential.swift |
| 205 | + URLCredentialStorage.swift |
| 206 | + URLProtectionSpace.swift |
| 207 | + URLProtocol.swift |
| 208 | + URLRequest.swift |
| 209 | + URLResponse.swift |
| 210 | + URLSession/BodySource.swift |
| 211 | + URLSession/Configuration.swift |
| 212 | + URLSession/http/HTTPMessage.swift |
| 213 | + URLSession/http/HTTPURLProtocol.swift |
| 214 | + URLSession/libcurl/EasyHandle.swift |
| 215 | + URLSession/libcurl/libcurlHelpers.swift |
| 216 | + URLSession/libcurl/MultiHandle.swift |
| 217 | + URLSession/Message.swift |
| 218 | + URLSession/NativeProtocol.swift |
| 219 | + URLSession/NetworkingSpecific.swift |
| 220 | + URLSession/ftp/FTPURLProtocol.swift |
| 221 | + URLSession/TaskRegistry.swift |
| 222 | + URLSession/TransferState.swift |
| 223 | + URLSession/URLSession.swift |
| 224 | + URLSession/URLSessionConfiguration.swift |
| 225 | + URLSession/URLSessionDelegate.swift |
| 226 | + URLSession/URLSessionTask.swift) |
| 227 | + |
| 228 | +target_compile_definitions(FoundationNetworking PRIVATE |
| 229 | + DEPLOYMENT_RUNTIME_SWIFT |
| 230 | + NS_BUILDING_FOUNDATION_NETWORKING) |
| 231 | + |
| 232 | +target_compile_options(FoundationNetworking PRIVATE |
| 233 | + $<$<BOOL:ENABLE_TESTING>:-enable-testing>) |
| 234 | + |
| 235 | +target_link_libraries(FoundationNetworking PRIVATE |
| 236 | + Foundation |
| 237 | + CFURLSessionInterface) |
| 238 | + |
| 239 | +if(CMAKE_SYSTEM_NAME STREQUAL Windows) |
| 240 | + # FIXME(compnerd) SR-9138 |
| 241 | + target_link_options(FoundationNetworking PRIVATE |
| 242 | + "LINKER:-ignore:4217") |
| 243 | +endif() |
| 244 | + |
| 245 | +set_target_properties(FoundationNetworking PROPERTIES |
| 246 | + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY} |
| 247 | + INTERFACE_LINK_DIRECTORIES $<TARGET_LINKER_FILE_DIR:FoundationNetworking>) |
| 248 | + |
| 249 | + |
| 250 | +install(FILES |
| 251 | + ${CMAKE_Swift_MODULE_DIRECTORY}/Foundation.swiftdoc |
| 252 | + ${CMAKE_Swift_MODULE_DIRECTORY}/Foundation.swiftmodule |
| 253 | + ${CMAKE_Swift_MODULE_DIRECTORY}/FoundationNetworking.swiftdoc |
| 254 | + ${CMAKE_Swift_MODULE_DIRECTORY}/FoundationNetworking.swiftmodule |
| 255 | + DESTINATION |
| 256 | + lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch}) |
| 257 | +install(TARGETS |
| 258 | + Foundation |
| 259 | + FoundationNetworking |
| 260 | + ARCHIVE DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch} |
| 261 | + LIBRARY DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch} |
| 262 | + RUNTIME DESTINATION bin) |
| 263 | + |
0 commit comments