@@ -47,14 +47,17 @@ set(swift_optimization_flags)
47
47
if (CMAKE_BUILD_TYPE MATCHES Release )
48
48
set (swift_optimization_flags -O )
49
49
endif ()
50
+ if (ENABLE_TESTING )
51
+ set (swift_enable_testing -enable-testing )
52
+ endif ()
50
53
51
54
set (deployment_enable_libdispatch )
52
55
set (libdispatch_cflags )
53
56
set (libdispatch_ldflags )
54
57
if (FOUNDATION_ENABLE_LIBDISPATCH )
55
58
set (deployment_enable_libdispatch -DDEPLOYMENT_ENABLE_LIBDISPATCH )
56
59
set (libdispatch_cflags -I;${FOUNDATION_PATH_TO_LIBDISPATCH_SOURCE};-I;${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src/swift;-Xcc;-fblocks )
57
- set (libdispatch_ldflags -L;${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src;-ldispatch )
60
+ set (libdispatch_ldflags -L;${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD};-L;${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD} /src;-ldispatch )
58
61
endif ()
59
62
60
63
add_swift_library (Foundation
@@ -90,6 +93,7 @@ add_swift_library(Foundation
90
93
Foundation/ExtraStringAPIs.swift
91
94
Foundation/FileHandle.swift
92
95
Foundation/FileManager.swift
96
+ Foundation/FileManager_XDG.swift
93
97
Foundation/Formatter.swift
94
98
Foundation/FoundationErrors.swift
95
99
Foundation/Host.swift
@@ -196,16 +200,14 @@ add_swift_library(Foundation
196
200
Foundation/URLProtocol.swift
197
201
Foundation/URLRequest.swift
198
202
Foundation/URLResponse.swift
199
- # NOTE: must precede HTTPMessage.swift
203
+ Foundation/URLSession/BodySource.swift
204
+ Foundation/URLSession/Configuration.swift
200
205
Foundation/URLSession/Message.swift
201
206
Foundation/URLSession/http/HTTPMessage.swift
202
207
Foundation/URLSession/http/HTTPURLProtocol.swift
203
208
Foundation/URLSession/libcurl/EasyHandle.swift
204
209
Foundation/URLSession/libcurl/libcurlHelpers.swift
205
210
Foundation/URLSession/libcurl/MultiHandle.swift
206
- Foundation/URLSession/BodySource.swift
207
- Foundation/URLSession/Configuration.swift
208
- # Foundation/URLSession/Message.swift
209
211
Foundation/URLSession/NativeProtocol.swift
210
212
Foundation/URLSession/TaskRegistry.swift
211
213
Foundation/URLSession/TransferState.swift
@@ -239,6 +241,7 @@ add_swift_library(Foundation
239
241
${deployment_enable_libdispatch}
240
242
-Fsystem;${install_dir}/System/Library/Frameworks
241
243
${libdispatch_cflags}
244
+ ${swift_enable_testing}
242
245
${swift_optimization_flags} )
243
246
add_dependencies (Foundation CoreFoundation )
244
247
@@ -249,29 +252,48 @@ add_swift_executable(plutil
249
252
${deployment_enable_libdispatch}
250
253
LINK_FLAGS
251
254
-L${CMAKE_CURRENT_BINARY_DIR}
255
+ ${libdispatch_ldflags}
252
256
-lFoundation
253
257
SWIFT_FLAGS
254
258
-DDEPLOYMENT_RUNTIME_SWIFT
255
259
${deployment_enable_libdispatch}
256
260
-Fsystem;${install_dir}/System/Library/Frameworks
257
261
-I;${CMAKE_CURRENT_BINARY_DIR}/swift
258
262
${libdispatch_cflags}
263
+ ${swift_enable_testing}
259
264
${swift_optimization_flags} )
260
265
add_dependencies (plutil Foundation CoreFoundation )
261
266
262
267
if (ENABLE_TESTING )
268
+ add_swift_executable (xdgTestHelper
269
+ CFLAGS
270
+ ${deployment_enable_libdispatch}
271
+ LINK_FLAGS
272
+ ${libdispatch_ldflags}
273
+ -L${CMAKE_CURRENT_BINARY_DIR}
274
+ -lFoundation
275
+ SOURCES
276
+ TestFoundation/xdgTestHelper/main.swift
277
+ SWIFT_FLAGS
278
+ -Fsystem;${install_dir}/System/Library/Frameworks
279
+ -I;${CMAKE_CURRENT_BINARY_DIR}/swift
280
+ ${libdispatch_cflags} )
281
+ add_dependencies (xdgTestHelper Foundation CoreFoundation )
282
+
263
283
add_swift_executable (TestFoundation
264
284
SOURCES
265
285
TestFoundation/main.swift
266
286
TestFoundation/HTTPServer.swift
267
287
Foundation/ProgressFraction.swift
288
+ TestFoundation/Utilities.swift
268
289
# Test Cases
269
290
TestFoundation/TestAffineTransform.swift
270
291
TestFoundation/TestBundle.swift
271
292
TestFoundation/TestByteCountFormatter.swift
272
293
TestFoundation/TestCalendar.swift
273
294
TestFoundation/TestCharacterSet.swift
274
295
TestFoundation/TestCodable.swift
296
+ TestFoundation/TestDateComponents.swift
275
297
TestFoundation/TestDateFormatter.swift
276
298
TestFoundation/TestDate.swift
277
299
TestFoundation/TestDecimal.swift
@@ -336,6 +358,7 @@ if(ENABLE_TESTING)
336
358
TestFoundation/TestUnitConverter.swift
337
359
TestFoundation/TestUnit.swift
338
360
TestFoundation/TestURLCredential.swift
361
+ TestFoundation/TestURLProtectionSpace.swift
339
362
TestFoundation/TestURLProtocol.swift
340
363
TestFoundation/TestURLRequest.swift
341
364
TestFoundation/TestURLResponse.swift
@@ -352,6 +375,7 @@ if(ENABLE_TESTING)
352
375
-L${CMAKE_CURRENT_BINARY_DIR}
353
376
-lFoundation
354
377
-L${FOUNDATION_PATH_TO_XCTEST_BUILD}
378
+ -lXCTest
355
379
RESOURCES
356
380
${CMAKE_SOURCE_DIR} /TestFoundation/Resources/Info.plist
357
381
${CMAKE_SOURCE_DIR} /TestFoundation/Resources/NSURLTestData.plist
@@ -375,29 +399,25 @@ if(ENABLE_TESTING)
375
399
${CMAKE_SOURCE_DIR} /TestFoundation/Resources/NSKeyedUnarchiver-URLTest.plist
376
400
${CMAKE_SOURCE_DIR} /TestFoundation/Resources/NSKeyedUnarchiver-UUIDTest.plist
377
401
${CMAKE_SOURCE_DIR} /TestFoundation/Resources/NSKeyedUnarchiver-OrderedSetTest.plist
402
+ ${CMAKE_SOURCE_DIR} /TestFoundation/Resources/TestFileWithZeros.txt
378
403
SWIFT_FLAGS
379
404
${deployment_enable_libdispatch}
380
405
-Fsystem;${install_dir}/System/Library/Frameworks
381
406
-I;${CMAKE_CURRENT_BINARY_DIR}/swift
382
407
-I;${FOUNDATION_PATH_TO_XCTEST_BUILD}/swift
383
408
${libdispatch_cflags}
384
409
${swift_optimization_flags} )
385
- add_dependencies (TestFoundation Foundation CoreFoundation )
386
-
387
- add_swift_executable (xdgTestHelper
388
- SOURCES
389
- TestFoundation/xdgTestHelper/main.swift
390
- CFLAGS
391
- ${deployment_enable_libdispatch}
392
- LINK_FLAGS
393
- -L${CMAKE_CURRENT_BINARY_DIR}
394
- -lFoundation
395
- SWIFT_FLAGS
396
- -Fsystem;${install_dir}/System/Library/Frameworks
397
- -I;${CMAKE_CURRENT_BINARY_DIR}/swift
398
- ${libdispatch_cflags} )
399
- add_dependencies (xdgTestHelper Foundation CoreFoundation )
410
+ add_dependencies (TestFoundation Foundation CoreFoundation xdgTestHelper )
400
411
412
+ add_custom_command (TARGET TestFoundation
413
+ POST_BUILD
414
+ BYPRODUCTS
415
+ ${CMAKE_CURRENT_BINARY_DIR} /TestFoundation/xdgTestHelper${CMAKE_EXECUTABLE_SUFFIX}
416
+ COMMAND
417
+ ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR} /xdgTestHelper${CMAKE_EXECUTABLE_SUFFIX} ${CMAKE_CURRENT_BINARY_DIR} /TestFoundation
418
+ DEPENDS
419
+ TestFoundation
420
+ xdgTestHelper )
401
421
add_test (NAME
402
422
TestFoundation
403
423
COMMAND
@@ -407,25 +427,39 @@ if(ENABLE_TESTING)
407
427
set_tests_properties (TestFoundation
408
428
PROPERTIES
409
429
ENVIRONMENT
410
- LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}:${FOUNDATION_PATH_TO_XCTEST_BUILD}:${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src )
430
+ LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}:${FOUNDATION_PATH_TO_XCTEST_BUILD}:${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}:${FOUNDATION_PATH_TO_LIBDISPATCH_BUILD}/src
431
+ DEPENDS
432
+ ${CMAKE_CURRENT_BINARY_DIR} /TestFoundation/xdgTestHelper${CMAKE_EXECUTABLE_SUFFIX} )
411
433
endif ()
412
434
413
- get_swift_host_arch (SWIFT_HOST_ARCH )
435
+ string (TOLOWER ${CMAKE_SYSTEM_NAME} swift_os )
436
+ get_swift_host_arch (swift_arch )
414
437
438
+ # TODO(compnerd) honour lib vs lib64
415
439
install (FILES
416
440
${CMAKE_CURRENT_BINARY_DIR} /swift/Foundation.swiftdoc
417
441
${CMAKE_CURRENT_BINARY_DIR} /swift/Foundation.swiftmodule
418
442
DESTINATION
419
- ${CMAKE_INSTALL_FULL_LIBDIR} /swift/${CMAKE_SYSTEM_NAME }/${SWIFT_HOST_ARCH } )
443
+ lib /swift/${swift_os }/${swift_arch } )
420
444
install (FILES
421
445
${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_SHARED_LIBRARY_PREFIX}Foundation${CMAKE_SHARED_LIBRARY_SUFFIX}
422
446
DESTINATION
423
- ${CMAKE_INSTALL_FULL_LIBDIR} )
447
+ lib/swift/${swift_os} )
448
+ # TODO(compnerd) install as a Framework as that is how swift actually is built
449
+ install (DIRECTORY
450
+ ${install_dir} /System/Library/Frameworks/CoreFoundation.framework/Headers/
451
+ DESTINATION
452
+ lib/swift/CoreFoundation
453
+ FILES_MATCHING PATTERN "*.h" )
454
+ install (FILES
455
+ CoreFoundation/Base.subproj/module.map
456
+ DESTINATION
457
+ lib/swift/CoreFoundation )
424
458
if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin )
425
459
install (FILES
426
460
${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_SHARED_LIBRARY_PREFIX}Foundation${CMAKE_SHARED_LIBRARY_SUFFIX}
427
461
DESTINATION
428
- ${CMAKE_INSTALL_FULL_LIBDIR} /swift/${CMAKE_SYSTEM_NAME }/${SWIFT_HOST_ARCH } )
462
+ lib /swift/${swift_os }/${swift_arch } )
429
463
endif ()
430
464
install (FILES
431
465
${CMAKE_CURRENT_BINARY_DIR} /plutil
0 commit comments