Skip to content

Commit 1319fbd

Browse files
authored
Revert "[CMake] Fix up and fill out swift exports."
1 parent 77ba60f commit 1319fbd

File tree

3 files changed

+27
-92
lines changed

3 files changed

+27
-92
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1506,22 +1506,19 @@ function(add_swift_host_library name)
15061506
INSTALL_IN_COMPONENT "dev"
15071507
)
15081508

1509-
swift_is_installing_component(dev is_installing)
1510-
if(NOT is_installing)
1511-
set_property(GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${name})
1512-
elseif(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
1513-
set(export_to_swiftexports EXPORT SwiftExports)
1514-
set_property(GLOBAL PROPERTY SWIFT_HAS_EXPORTS True)
1515-
set_property(GLOBAL APPEND PROPERTY SWIFT_EXPORTS ${name})
1516-
endif()
1517-
15181509
if(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
1519-
swift_install_in_component(TARGETS ${name} ${export_to_swiftexports}
1510+
swift_install_in_component(TARGETS ${name}
15201511
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT dev
15211512
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT dev
15221513
RUNTIME DESTINATION bin COMPONENT dev)
15231514
endif()
15241515

1516+
swift_is_installing_component(dev is_installing)
1517+
if(NOT is_installing)
1518+
set_property(GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${name})
1519+
else()
1520+
set_property(GLOBAL APPEND PROPERTY SWIFT_EXPORTS ${name})
1521+
endif()
15251522
endfunction()
15261523

15271524
# Add a new Swift target library.
@@ -2120,16 +2117,7 @@ function(add_swift_target_library name)
21202117
endif()
21212118

21222119
if(sdk STREQUAL WINDOWS AND CMAKE_SYSTEM_NAME STREQUAL Windows)
2123-
set(target_name ${name}-windows-${SWIFT_PRIMARY_VARIANT_ARCH})
2124-
swift_is_installing_component("${SWIFTLIB_INSTALL_IN_COMPONENT}" is_installing)
2125-
if(NOT is_installing)
2126-
set_property(GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${target_name})
2127-
else(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
2128-
set(export_to_swiftexports EXPORT SwiftExports)
2129-
set_property(GLOBAL PROPERTY SWIFT_HAS_EXPORTS True)
2130-
set_property(GLOBAL APPEND PROPERTY SWIFT_EXPORTS ${target_name})
2131-
endif()
2132-
swift_install_in_component(TARGETS ${target_name} ${export_to_swiftexports}
2120+
swift_install_in_component(TARGETS ${name}-windows-${SWIFT_PRIMARY_VARIANT_ARCH}
21332121
RUNTIME
21342122
DESTINATION "bin"
21352123
COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}"
@@ -2171,7 +2159,6 @@ function(add_swift_target_library name)
21712159
endif()
21722160

21732161
if(is_installing)
2174-
set_property(GLOBAL PROPERTY SWIFT_HAS_EXPORTS True)
21752162
set_property(GLOBAL APPEND
21762163
PROPERTY SWIFT_EXPORTS ${_variant_name})
21772164
else()
@@ -2419,22 +2406,18 @@ function(add_swift_host_tool executable)
24192406
ARCHITECTURE ${SWIFT_HOST_VARIANT_ARCH}
24202407
${ASHT_UNPARSED_ARGUMENTS})
24212408

2409+
swift_install_in_component(TARGETS ${executable}
2410+
RUNTIME
2411+
DESTINATION bin
2412+
COMPONENT ${ASHT_SWIFT_COMPONENT})
2413+
24222414
swift_is_installing_component(${ASHT_SWIFT_COMPONENT} is_installing)
24232415

24242416
if(NOT is_installing)
24252417
set_property(GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${executable})
24262418
else()
2427-
set(export_to_swiftexports EXPORT SwiftExports)
2428-
set_property(GLOBAL PROPERTY SWIFT_HAS_EXPORTS True)
24292419
set_property(GLOBAL APPEND PROPERTY SWIFT_EXPORTS ${executable})
24302420
endif()
2431-
2432-
swift_install_in_component(TARGETS ${executable} ${export_to_swiftexports}
2433-
RUNTIME
2434-
DESTINATION bin
2435-
COMPONENT ${ASHT_SWIFT_COMPONENT})
2436-
2437-
24382421
endfunction()
24392422

24402423
# This declares a swift host tool that links with libfuzzer.

cmake/modules/CMakeLists.txt

Lines changed: 9 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,19 @@
11
set(SWIFT_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/swift)
22
set(swift_cmake_builddir "${SWIFT_BINARY_DIR}/${SWIFT_INSTALL_PACKAGE_DIR}")
33

4-
# Exports for those who want to build against an installed Swift
5-
set(SWIFT_EXPORTS_FILE "${swift_cmake_builddir}/SwiftExports.cmake")
4+
# Generate build-tree exports list only
5+
set(SWIFT_EXPORTS_FILE ${swift_cmake_builddir}/SwiftExports.cmake)
66
get_property(SWIFT_EXPORTS GLOBAL PROPERTY SWIFT_EXPORTS)
7-
export(TARGETS ${SWIFT_EXPORTS} FILE ${SWIFT_EXPORTS_FILE})
8-
9-
# Export targets that are only available when building against a Swift build
10-
# tree
11-
set(SWIFT_BUILDTREE_EXPORTS_FILE "${swift_cmake_builddir}/SwiftBuildTreeExports.cmake")
127
get_property(SWIFT_BUILDTREE_EXPORTS GLOBAL PROPERTY SWIFT_BUILDTREE_EXPORTS)
13-
export(TARGETS ${SWIFT_BUILDTREE_EXPORTS} FILE ${SWIFT_BUILDTREE_EXPORTS_FILE})
148

15-
# Generate SwiftConfig.cmake for the build tree
16-
set(SWIFT_CONFIG_EXPORTS "${SWIFT_EXPORTS};${SWIFT_BUILDTREE_EXPORTS}")
17-
set(SWIFT_CONFIG_EXPORTS_FILE "${SWIFT_EXPORTS_FILE}")
18-
set(SWIFT_CONFIG_BINARY_DIR "${SWIFT_BINARY_DIR}")
19-
set(SWIFT_CONFIG_INCLUDE_DIRS
20-
"${SWIFT_INCLUDE_DIR}"
21-
"${SWIFT_MAIN_INCLUDE_DIR}"
22-
)
23-
set(SWIFT_CONFIG_INCLUDE_DIR "${SWIFT_INCLUDE_DIR}")
24-
set(SWIFT_CONFIG_LIBRARY_DIRS "${SWIFT_LIBRARY_OUTPUT_INTDIR}")
25-
set(SWIFT_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
26-
set(swift_config_include_buildtree_exports
27-
"include(\"${SWIFT_BUILDTREE_EXPORTS_FILE}\")")
9+
set(SWIFT_CONFIG_EXPORTS ${SWIFT_EXPORTS} ${SWIFT_BUILDTREE_EXPORTS})
10+
export(TARGETS ${SWIFT_CONFIG_EXPORTS} FILE ${SWIFT_EXPORTS_FILE})
2811

29-
configure_file(
30-
SwiftConfig.cmake.in
31-
${swift_cmake_builddir}/SwiftConfig.cmake
32-
@ONLY)
33-
set(swift_config_include_buildtree_exports)
3412

35-
# Generate SwiftConfig.cmake for the install tree
36-
set(SWIFT_CONFIG_CODE
37-
"# Compute the installation prefix from this SwiftConfig.cmake location.
38-
get_filename_component(SWIFT_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
39-
# Construct the proper number of get_filename_component(... PATH)
40-
# calls to compute the installation prefix.
41-
file(TO_CMAKE_PATH "${SWIFT_INSTALL_PACKAGE_DIR}" SWIFT_INSTALL_PACKAGE_DIR)
42-
string(REGEX REPLACE "/" ";" _count "${SWIFT_INSTALL_PACKAGE_DIR}")
43-
foreach(p ${_count})
44-
set(SWIFT_CONFIG_CODE "${SWIFT_CONFIG_CODE}
45-
get_filename_component(SWIFT_INSTALL_PREFIX \"\${SWIFT_INSTALL_PREFIX}\" PATH)")
46-
endforeach(p)
47-
set(SWIFT_CONFIG_BINARY_DIR "\${SWIFT_INSTALL_PREFIX}")
48-
set(SWIFT_CONFIG_CMAKE_DIR "\${SWIFT_INSTALL_PREFIX}/${SWIFT_INSTALL_PACKAGE_DIR}")
49-
set(SWIFT_CONFIG_EXPORTS "${SWIFT_EXPORTS}")
50-
set(SWIFT_CONFIG_EXPORTS_FILE "\${SWIFT_CMAKE_DIR}/SwiftExports.cmake")
51-
set(SWIFT_CONFIG_INCLUDE_DIRS "\${SWIFT_INSTALL_PREFIX}/include")
52-
set(SWIFT_CONFIG_LIBRARY_DIRS "\${SWIFT_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
13+
set(SWIFT_INCLUDE_DIRS ${SWIFT_INCLUDE_DIR} ${SWIFT_MAIN_INCLUDE_DIR})
14+
set(SWIFT_LIBRARY_DIRS ${SWIFT_LIBRARY_OUTPUT_INTDIR})
15+
5316
configure_file(
5417
SwiftConfig.cmake.in
55-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/SwiftConfig.cmake
56-
@ONLY)
57-
58-
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
59-
get_property(swift_has_exports GLOBAL PROPERTY SWIFT_HAS_EXPORTS)
60-
if(swift_has_exports)
61-
install(EXPORT SwiftExports DESTINATION ${SWIFT_INSTALL_PACKAGE_DIR})
62-
endif()
63-
install(FILES
64-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/SwiftConfig.cmake
65-
DESTINATION ${SWIFT_INSTALL_PACKAGE_DIR})
66-
endif()
18+
${swift_cmake_builddir}/SwiftConfig.cmake
19+
@ONLY)

cmake/modules/SwiftConfig.cmake.in

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
set(SWIFT_VERSION @SWIFT_VERSION@)
66
set(SWIFT_MAIN_SRC_DIR @SWIFT_SOURCE_DIR@)
77

8-
set(SWIFT_INCLUDE_DIRS "@SWIFT_CONFIG_INCLUDE_DIRS@")
8+
set(SWIFT_INCLUDE_DIRS "@SWIFT_INCLUDE_DIRS@")
99
set(SWIFT_LIBRARY_DIRS "@SWIFT_CONFIG_LIBRARY_DIRS@")
1010

1111
# These variables are duplicated, but they must match the LLVM variables of the
1212
# same name. The variables ending in "S" could some day become lists, and are
1313
# preserved for convention and compatibility.
14-
set(SWIFT_INCLUDE_DIR "@SWIFT_CONFIG_INCLUDE_DIRS@")
14+
set(SWIFT_INCLUDE_DIR "@SWIFT_INCLUDE_DIRS@")
1515
set(SWIFT_LIBRARY_DIR "@SWIFT_CONFIG_LIBRARY_DIRS@")
1616

17-
set(SWIFT_CMAKE_DIR "@SWIFT_CONFIG_CMAKE_DIR@")
18-
set(SWIFT_BINARY_DIR "@SWIFT_CONFIG_BINARY_DIR@")
17+
set(SWIFT_CMAKE_DIR "@SWIFT_CMAKE_DIR@")
18+
set(SWIFT_BINARY_DIR "@SWIFT_BINARY_DIR@")
1919

2020
set(CMARK_TARGETS_FILE @SWIFT_PATH_TO_CMARK_BUILD@/src/CMarkExports.cmake)
2121
if(NOT TARGET libcmark_static AND EXISTS ${CMARK_TARGETS_FILE})
@@ -24,6 +24,5 @@ endif()
2424

2525
if(NOT TARGET swift)
2626
set(SWIFT_EXPORTED_TARGETS "@SWIFT_CONFIG_EXPORTS@")
27-
include("@SWIFT_CONFIG_EXPORTS_FILE@")
28-
@swift_config_include_buildtree_exports@
27+
include("@SWIFT_EXPORTS_FILE@")
2928
endif()

0 commit comments

Comments
 (0)