@@ -1321,8 +1321,6 @@ endfunction()
1321
1321
1322
1322
# Add a new Swift host library.
1323
1323
#
1324
- # NOTE: This has not had the parts of add_swift_library for targets excised yet.
1325
- #
1326
1324
# Usage:
1327
1325
# add_swift_host_library(name
1328
1326
# [SHARED]
@@ -1331,26 +1329,12 @@ endfunction()
1331
1329
# [LINK_LIBRARIES dep1 ...]
1332
1330
# [INTERFACE_LINK_LIBRARIES dep1 ...]
1333
1331
# [SWIFT_MODULE_DEPENDS dep1 ...]
1334
- # [FRAMEWORK_DEPENDS dep1 ...]
1335
- # [FRAMEWORK_DEPENDS_WEAK dep1 ...]
1336
1332
# [LLVM_COMPONENT_DEPENDS comp1 ...]
1337
1333
# [FILE_DEPENDS target1 ...]
1338
- # [TARGET_SDKS sdk1...]
1339
1334
# [C_COMPILE_FLAGS flag1...]
1340
- # [SWIFT_COMPILE_FLAGS flag1...]
1341
1335
# [LINK_FLAGS flag1...]
1342
- # [DONT_EMBED_BITCODE]
1343
- # [API_NOTES_NON_OVERLAY]
1344
1336
# [INSTALL]
1345
- # [IS_STDLIB]
1346
- # [IS_STDLIB_CORE]
1347
- # [TARGET_LIBRARY]
1348
- # [FORCE_BUILD_FOR_HOST_SDK]
1349
1337
# INSTALL_IN_COMPONENT comp
1350
- # DEPLOYMENT_VERSION_OSX version
1351
- # DEPLOYMENT_VERSION_IOS version
1352
- # DEPLOYMENT_VERSION_TVOS version
1353
- # DEPLOYMENT_VERSION_WATCHOS version
1354
1338
# source1 [source2 source3 ...])
1355
1339
#
1356
1340
# name
@@ -1368,281 +1352,76 @@ endfunction()
1368
1352
# LINK_LIBRARIES
1369
1353
# Libraries this library depends on.
1370
1354
#
1371
- # SWIFT_MODULE_DEPENDS
1372
- # Swift modules this library depends on.
1373
- #
1374
- # SWIFT_MODULE_DEPENDS_OSX
1375
- # Swift modules this library depends on when built for OS X.
1376
- #
1377
- # SWIFT_MODULE_DEPENDS_IOS
1378
- # Swift modules this library depends on when built for iOS.
1379
- #
1380
- # SWIFT_MODULE_DEPENDS_TVOS
1381
- # Swift modules this library depends on when built for tvOS.
1382
- #
1383
- # SWIFT_MODULE_DEPENDS_WATCHOS
1384
- # Swift modules this library depends on when built for watchOS.
1385
- #
1386
- # SWIFT_MODULE_DEPENDS_FREEBSD
1387
- # Swift modules this library depends on when built for FreeBSD.
1388
- #
1389
- # SWIFT_MODULE_DEPENDS_LINUX
1390
- # Swift modules this library depends on when built for Linux.
1391
- #
1392
- # SWIFT_MODULE_DEPENDS_CYGWIN
1393
- # Swift modules this library depends on when built for Cygwin.
1394
- #
1395
- # SWIFT_MODULE_DEPENDS_HAIKU
1396
- # Swift modules this library depends on when built for Haiku.
1397
- #
1398
- # FRAMEWORK_DEPENDS
1399
- # System frameworks this library depends on.
1400
- #
1401
- # FRAMEWORK_DEPENDS_WEAK
1402
- # System frameworks this library depends on that should be weak-linked
1403
- #
1404
1355
# LLVM_COMPONENT_DEPENDS
1405
1356
# LLVM components this library depends on.
1406
1357
#
1407
1358
# FILE_DEPENDS
1408
1359
# Additional files this library depends on.
1409
1360
#
1410
- # TARGET_SDKS
1411
- # The set of SDKs in which this library is included. If empty, the library
1412
- # is included in all SDKs.
1413
- #
1414
1361
# C_COMPILE_FLAGS
1415
1362
# Extra compiler flags (C, C++, ObjC).
1416
1363
#
1417
- # SWIFT_COMPILE_FLAGS
1418
- # Extra compiler flags (Swift).
1419
- #
1420
1364
# LINK_FLAGS
1421
1365
# Extra linker flags.
1422
1366
#
1423
- # API_NOTES_NON_OVERLAY
1424
- # Generate API notes for non-overlayed modules with this target.
1425
- #
1426
- # DONT_EMBED_BITCODE
1427
- # Don't embed LLVM bitcode in this target, even if it is enabled globally.
1428
- #
1429
- # IS_STDLIB
1430
- # Treat the library as a part of the Swift standard library.
1431
- # IS_STDLIB implies TARGET_LIBRARY.
1432
- #
1433
- # IS_STDLIB_CORE
1434
- # Compile as the Swift standard library core.
1435
- #
1436
- # IS_SDK_OVERLAY
1437
- # Treat the library as a part of the Swift SDK overlay.
1438
- # IS_SDK_OVERLAY implies TARGET_LIBRARY and IS_STDLIB.
1439
- #
1440
- # TARGET_LIBRARY
1441
- # Build library for the target SDKs.
1442
- #
1443
1367
# INSTALL_IN_COMPONENT comp
1444
1368
# The Swift installation component that this library belongs to.
1445
1369
#
1446
- # DEPLOYMENT_VERSION_OSX
1447
- # The minimum deployment version to build for if this is an OSX library.
1448
- #
1449
- # DEPLOYMENT_VERSION_IOS
1450
- # The minimum deployment version to build for if this is an iOS library.
1451
- #
1452
- # DEPLOYMENT_VERSION_TVOS
1453
- # The minimum deployment version to build for if this is an TVOS library.
1454
- #
1455
- # DEPLOYMENT_VERSION_WATCHOS
1456
- # The minimum deployment version to build for if this is an WATCHOS library.
1457
- #
1458
- # FORCE_BUILD_FOR_HOST_SDK
1459
- # Regardless of the defaults, also build this library for the host SDK.
1460
- #
1461
1370
# source1 ...
1462
1371
# Sources to add into this library.
1463
1372
function (add_swift_host_library name )
1464
- set (SWIFTLIB_options
1465
- API_NOTES_NON_OVERLAY
1466
- DONT_EMBED_BITCODE
1467
- FORCE_BUILD_FOR_HOST_SDK
1373
+ set (options
1468
1374
FORCE_BUILD_OPTIMIZED
1469
- HAS_SWIFT_CONTENT
1470
- IS_SDK_OVERLAY
1471
- IS_STDLIB
1472
- IS_STDLIB_CORE
1473
- NOSWIFTRT
1474
- OBJECT_LIBRARY
1475
1375
SHARED
1476
- STATIC
1477
- TARGET_LIBRARY )
1478
- set (SWIFTLIB_single_parameter_options
1479
- DEPLOYMENT_VERSION_IOS
1480
- DEPLOYMENT_VERSION_OSX
1481
- DEPLOYMENT_VERSION_TVOS
1482
- DEPLOYMENT_VERSION_WATCHOS
1483
- INSTALL_IN_COMPONENT )
1484
- set (SWIFTLIB_multiple_parameter_options
1376
+ STATIC )
1377
+ set (single_parameter_options )
1378
+ set (multiple_parameter_options
1485
1379
C_COMPILE_FLAGS
1486
1380
DEPENDS
1487
1381
FILE_DEPENDS
1488
- FRAMEWORK_DEPENDS
1489
- FRAMEWORK_DEPENDS_IOS_TVOS
1490
- FRAMEWORK_DEPENDS_OSX
1491
- FRAMEWORK_DEPENDS_WEAK
1492
- INCORPORATE_OBJECT_LIBRARIES
1493
- INCORPORATE_OBJECT_LIBRARIES_SHARED_ONLY
1494
1382
INTERFACE_LINK_LIBRARIES
1495
1383
LINK_FLAGS
1496
1384
LINK_LIBRARIES
1497
- LLVM_COMPONENT_DEPENDS
1498
- PRIVATE_LINK_LIBRARIES
1499
- SWIFT_COMPILE_FLAGS
1500
- SWIFT_COMPILE_FLAGS_IOS
1501
- SWIFT_COMPILE_FLAGS_OSX
1502
- SWIFT_COMPILE_FLAGS_TVOS
1503
- SWIFT_COMPILE_FLAGS_WATCHOS
1504
- SWIFT_MODULE_DEPENDS
1505
- SWIFT_MODULE_DEPENDS_CYGWIN
1506
- SWIFT_MODULE_DEPENDS_FREEBSD
1507
- SWIFT_MODULE_DEPENDS_HAIKU
1508
- SWIFT_MODULE_DEPENDS_IOS
1509
- SWIFT_MODULE_DEPENDS_LINUX
1510
- SWIFT_MODULE_DEPENDS_OSX
1511
- SWIFT_MODULE_DEPENDS_TVOS
1512
- SWIFT_MODULE_DEPENDS_WATCHOS
1513
- TARGET_SDKS )
1385
+ LLVM_COMPONENT_DEPENDS )
1514
1386
1515
- cmake_parse_arguments (SWIFTLIB
1516
- "${SWIFTLIB_options } "
1517
- "${SWIFTLIB_single_parameter_options } "
1518
- "${SWIFTLIB_multiple_parameter_options } "
1387
+ cmake_parse_arguments (ASHL
1388
+ "${options } "
1389
+ "${single_parameter_options } "
1390
+ "${multiple_parameter_options } "
1519
1391
${ARGN} )
1520
- set (SWIFTLIB_SOURCES ${SWIFTLIB_UNPARSED_ARGUMENTS} )
1521
-
1522
- # Infer arguments.
1523
-
1524
- if (SWIFTLIB_IS_SDK_OVERLAY )
1525
- set (SWIFTLIB_HAS_SWIFT_CONTENT TRUE )
1526
- set (SWIFTLIB_IS_STDLIB TRUE )
1527
- set (SWIFTLIB_TARGET_LIBRARY TRUE )
1528
-
1529
- # Install to sdk-overlay by default, but don't hardcode it
1530
- if (NOT SWIFTLIB_INSTALL_IN_COMPONENT )
1531
- set (SWIFTLIB_INSTALL_IN_COMPONENT sdk-overlay )
1532
- endif ()
1533
- endif ()
1534
-
1535
- # Standard library is always a target library.
1536
- if (SWIFTLIB_IS_STDLIB )
1537
- set (SWIFTLIB_HAS_SWIFT_CONTENT TRUE )
1538
- set (SWIFTLIB_TARGET_LIBRARY TRUE )
1539
- endif ()
1540
-
1541
- if (NOT SWIFTLIB_TARGET_LIBRARY )
1542
- set (SWIFTLIB_INSTALL_IN_COMPONENT dev )
1543
- endif ()
1544
-
1545
- # If target SDKs are not specified, build for all known SDKs.
1546
- if ("${SWIFTLIB_TARGET_SDKS} " STREQUAL "" )
1547
- set (SWIFTLIB_TARGET_SDKS ${SWIFT_SDKS} )
1548
- endif ()
1549
- list_replace (SWIFTLIB_TARGET_SDKS ALL_POSIX_PLATFORMS "ALL_APPLE_PLATFORMS;ANDROID;CYGWIN;FREEBSD;LINUX;HAIKU" )
1550
- list_replace (SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_APPLE_PLATFORMS} " )
1392
+ set (ASHL_SOURCES ${ASHL_UNPARSED_ARGUMENTS} )
1551
1393
1552
- # All Swift code depends on the standard library, except for the standard
1553
- # library itself.
1554
- if (SWIFTLIB_HAS_SWIFT_CONTENT AND NOT SWIFTLIB_IS_STDLIB_CORE )
1555
- list (APPEND SWIFTLIB_SWIFT_MODULE_DEPENDS Core )
1394
+ translate_flags (ASHL "${options} " )
1556
1395
1557
- # swiftSwiftOnoneSupport does not depend on itself, obviously.
1558
- if (NOT ${name} STREQUAL swiftSwiftOnoneSupport )
1559
- # All Swift code depends on the SwiftOnoneSupport in non-optimized mode,
1560
- # except for the standard library itself.
1561
- is_build_type_optimized ("${SWIFT_STDLIB_BUILD_TYPE} " optimized )
1562
- if (NOT optimized )
1563
- list (APPEND SWIFTLIB_SWIFT_MODULE_DEPENDS SwiftOnoneSupport )
1564
- endif ()
1565
- endif ()
1566
- endif ()
1567
-
1568
- if ((NOT "${SWIFT_BUILD_STDLIB} " ) AND
1569
- (NOT "${SWIFTLIB_SWIFT_MODULE_DEPENDS} " STREQUAL "" ))
1570
- list (REMOVE_ITEM SWIFTLIB_SWIFT_MODULE_DEPENDS Core SwiftOnoneSupport )
1571
- endif ()
1572
-
1573
- translate_flags (SWIFTLIB "${SWIFTLIB_options} " )
1574
- precondition (SWIFTLIB_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required" )
1575
-
1576
- if (NOT SWIFTLIB_SHARED AND
1577
- NOT SWIFTLIB_STATIC AND
1578
- NOT SWIFTLIB_OBJECT_LIBRARY )
1579
- message (FATAL_ERROR
1580
- "Either SHARED, STATIC, or OBJECT_LIBRARY must be specified" )
1581
- endif ()
1582
-
1583
- precondition (SWIFTLIB_TARGET_LIBRARY NEGATE
1584
- MESSAGE "TARGET_LIBRARY inferred in add_swift_host_library?!" )
1585
-
1586
- set (sdk "${SWIFT_HOST_VARIANT_SDK} " )
1587
- set (arch "${SWIFT_HOST_VARIANT_ARCH} " )
1588
-
1589
- # Collect compiler flags
1590
- set (swiftlib_swift_compile_flags_all ${SWIFTLIB_SWIFT_COMPILE_FLAGS} )
1591
- if ("${sdk} " STREQUAL "OSX" )
1592
- list (APPEND swiftlib_swift_compile_flags_all
1593
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_OSX} )
1594
- elseif ("${sdk} " STREQUAL "IOS" OR "${sdk} " STREQUAL "IOS_SIMULATOR" )
1595
- list (APPEND swiftlib_swift_compile_flags_all
1596
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_IOS} )
1597
- elseif ("${sdk} " STREQUAL "TVOS" OR "${sdk} " STREQUAL "TVOS_SIMULATOR" )
1598
- list (APPEND swiftlib_swift_compile_flags_all
1599
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_TVOS} )
1600
- elseif ("${sdk} " STREQUAL "WATCHOS" OR "${sdk} " STREQUAL "WATCHOS_SIMULATOR" )
1601
- list (APPEND swiftlib_swift_compile_flags_all
1602
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_WATCHOS} )
1396
+ if (NOT ASHL_SHARED AND NOT ASHL_STATIC )
1397
+ message (FATAL_ERROR "Either SHARED or STATIC must be specified" )
1603
1398
endif ()
1604
1399
1605
1400
_add_swift_library_single (
1606
1401
${name}
1607
1402
${name}
1608
- ${SWIFTLIB_SHARED_keyword}
1609
- ${SWIFTLIB_STATIC_keyword}
1610
- ${SWIFTLIB_OBJECT_LIBRARY_keyword}
1611
- ${SWIFTLIB_SOURCES}
1612
- SDK ${sdk}
1613
- ARCHITECTURE ${arch}
1614
- DEPENDS ${SWIFTLIB_DEPENDS}
1615
- LINK_LIBRARIES ${SWIFTLIB_LINK_LIBRARIES}
1616
- FRAMEWORK_DEPENDS ${SWIFTLIB_FRAMEWORK_DEPENDS}
1617
- FRAMEWORK_DEPENDS_WEAK ${SWIFTLIB_FRAMEWORK_DEPENDS_WEAK}
1618
- LLVM_COMPONENT_DEPENDS ${SWIFTLIB_LLVM_COMPONENT_DEPENDS}
1619
- FILE_DEPENDS ${SWIFTLIB_FILE_DEPENDS}
1620
- C_COMPILE_FLAGS ${SWIFTLIB_C_COMPILE_FLAGS}
1621
- SWIFT_COMPILE_FLAGS ${swiftlib_swift_compile_flags_all}
1622
- LINK_FLAGS ${SWIFTLIB_LINK_FLAGS}
1623
- PRIVATE_LINK_LIBRARIES ${SWIFTLIB_PRIVATE_LINK_LIBRARIES}
1624
- INTERFACE_LINK_LIBRARIES ${SWIFTLIB_INTERFACE_LINK_LIBRARIES}
1625
- INCORPORATE_OBJECT_LIBRARIES ${SWIFTLIB_INCORPORATE_OBJECT_LIBRARIES}
1626
- INCORPORATE_OBJECT_LIBRARIES_SHARED_ONLY ${SWIFTLIB_INCORPORATE_OBJECT_LIBRARIES_SHARED_ONLY}
1627
- ${SWIFTLIB_DONT_EMBED_BITCODE_keyword}
1628
- ${SWIFTLIB_API_NOTES_NON_OVERLAY_keyword}
1629
- ${SWIFTLIB_IS_STDLIB_keyword}
1630
- ${SWIFTLIB_IS_STDLIB_CORE_keyword}
1631
- ${SWIFTLIB_IS_SDK_OVERLAY_keyword}
1632
- INSTALL_IN_COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT} "
1633
- DEPLOYMENT_VERSION_OSX "${SWIFTLIB_DEPLOYMENT_VERSION_OSX} "
1634
- DEPLOYMENT_VERSION_IOS "${SWIFTLIB_DEPLOYMENT_VERSION_IOS} "
1635
- DEPLOYMENT_VERSION_TVOS "${SWIFTLIB_DEPLOYMENT_VERSION_TVOS} "
1636
- DEPLOYMENT_VERSION_WATCHOS "${SWIFTLIB_DEPLOYMENT_VERSION_WATCHOS} "
1403
+ ${ASHL_SHARED_keyword}
1404
+ ${ASHL_STATIC_keyword}
1405
+ ${ASHL_SOURCES}
1406
+ SDK ${SWIFT_HOST_VARIANT_SDK}
1407
+ ARCHITECTURE ${SWIFT_HOST_VARIANT_ARCH}
1408
+ DEPENDS ${ASHL_DEPENDS}
1409
+ LINK_LIBRARIES ${ASHL_LINK_LIBRARIES}
1410
+ LLVM_COMPONENT_DEPENDS ${ASHL_LLVM_COMPONENT_DEPENDS}
1411
+ FILE_DEPENDS ${ASHL_FILE_DEPENDS}
1412
+ C_COMPILE_FLAGS ${ASHL_C_COMPILE_FLAGS}
1413
+ LINK_FLAGS ${ASHL_LINK_FLAGS}
1414
+ INTERFACE_LINK_LIBRARIES ${ASHL_INTERFACE_LINK_LIBRARIES}
1415
+ INSTALL_IN_COMPONENT "dev"
1637
1416
)
1638
1417
1639
1418
swift_install_in_component (dev
1640
1419
TARGETS ${name}
1641
1420
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
1642
1421
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
1643
1422
RUNTIME DESTINATION bin )
1644
- swift_is_installing_component (dev is_installing )
1645
1423
1424
+ swift_is_installing_component (dev is_installing )
1646
1425
if (NOT is_installing )
1647
1426
set_property (GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${name} )
1648
1427
else ()
0 commit comments