|
1 |
| -SUMMARY = "Swift standard library" |
2 |
| -HOMEPAGE = "https://swift.org/" |
| 1 | +SUMMARY = "Swift" |
| 2 | +DESCRIPTION = "The Swift programming language standard library" |
| 3 | +HOMEPAGE = "https://github.com/swiftlang/swift" |
3 | 4 |
|
4 | 5 | LICENSE = "Apache-2.0"
|
5 | 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE.txt;md5=f6c482a0548ea60d6c2e015776534035"
|
6 | 7 |
|
| 8 | +PACKAGES:append = " ${PN}-embedded" |
| 9 | + |
7 | 10 | require swift-version.inc
|
8 |
| -PV = "${SWIFT_VERSION}" |
| 11 | +PV = "${SWIFT_VERSION}+git${SRCPV}" |
| 12 | +SRCREV_FORMAT = "swift_libdispatch_stringproc_syntax" |
| 13 | + |
| 14 | +SRC_URI = "\ |
| 15 | + git://github.com/swiftlang/swift.git;protocol=https;name=swift;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=swift; \ |
| 16 | + git://github.com/swiftlang/swift-corelibs-libdispatch.git;protocol=https;name=libdispatch;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=libdispatch; \ |
| 17 | + git://github.com/swiftlang/swift-experimental-string-processing.git;protocol=https;name=stringproc;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=swift-experimental-string-processing; \ |
| 18 | + git://github.com/swiftlang/swift-syntax.git;protocol=https;name=syntax;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=swift-syntax; \ |
| 19 | + file://llvm-cmake-modules \ |
| 20 | + file://PR75367-buildbot-cross-compile.diff \ |
| 21 | + " |
9 | 22 |
|
10 |
| -SRC_URI = "git://github.com/apple/swift.git;protocol=https;tag=swift-${PV}-RELEASE;nobranch=1 \ |
11 |
| - file://0001-Float16.patch \ |
12 |
| - file://fix_modulemap.sh \ |
13 |
| - file://cmake-configure-swift-stdlib.sh \ |
14 |
| - " |
15 |
| -SRC_URI += "git://github.com/apple/swift-corelibs-libdispatch.git;protocol=https;tag=swift-${PV}-RELEASE;nobranch=1;destsuffix=libdispatch" |
| 23 | +S = "${WORKDIR}/swift" |
16 | 24 |
|
17 |
| -S = "${WORKDIR}/git" |
18 | 25 | SWIFT_BUILDDIR = "${S}/build"
|
19 |
| -DEPENDS = "gcc-runtime python3-native icu ncurses" |
20 |
| -DEPENDS += " swift-native swift-llvm-native libgcc gcc glibc libxml2" |
| 26 | +DEPENDS = "gcc-runtime python3-native icu ncurses swift-native libgcc gcc glibc libxml2 libxml2-native ninja-native" |
21 | 27 |
|
22 | 28 | inherit swift-cmake-base
|
23 | 29 |
|
24 |
| -SWIFT_GGC_VERSION = "9.3.0" |
25 |
| - |
26 |
| -EXTRA_INCLUDE_FLAGS = "\ |
27 |
| - -I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GGC_VERSION}/${TARGET_SYS} \ |
28 |
| - -I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GGC_VERSION} \ |
29 |
| - -I${STAGING_DIR_TARGET}" |
| 30 | +TARGET_LDFLAGS:append = " -w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION}" |
30 | 31 |
|
31 |
| -TARGET_LDFLAGS += "-w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current" |
| 32 | +SWIFT_CMAKE_TOOLCHAIN_FILE = "${WORKDIR}/linux-${SWIFT_TARGET_ARCH}-toolchain.cmake" |
32 | 33 |
|
33 |
| -HOST_SWIFT_SUPPORT_DIR = "/tmp/swift-stdlib-yocto" |
34 |
| -SWIFT_CMAKE_TOOLCHAIN_FILE = "${HOST_SWIFT_SUPPORT_DIR}/linux-${SWIFT_TARGET_ARCH}-toolchain.cmake" |
35 |
| -SWIFT_CONFIGURE_CMAKE_SCRIPT="${WORKDIR}/cmake-configure-swift-stdlib.sh" |
36 |
| -SWIFT_C_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -I${STAGING_DIR_TARGET}/usr/include ${EXTRA_INCLUDE_FLAGS}" |
| 34 | +SWIFT_C_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION} -I${STAGING_DIR_TARGET}/usr/include ${EXTRA_INCLUDE_FLAGS}" |
37 | 35 | SWIFT_C_LINK_FLAGS = "-target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} ${EXTRA_INCLUDE_FLAGS}"
|
38 |
| -SWIFT_CXX_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -I${STAGING_DIR_TARGET}/usr/include -B${STAGING_DIR_TARGET}/usr/lib ${EXTRA_INCLUDE_FLAGS}" |
| 36 | + |
| 37 | +SWIFT_CXX_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION} -I${STAGING_DIR_TARGET}/usr/include -B${STAGING_DIR_TARGET}/usr/lib ${EXTRA_INCLUDE_FLAGS}" |
39 | 38 | SWIFT_CXX_LINK_FLAGS = "-target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} ${EXTRA_INCLUDE_FLAGS}"
|
40 | 39 |
|
41 |
| -SWIFT_CMAKE_TOOLCHAIN = "set(CMAKE_SYSTEM_NAME Linux) \ |
42 |
| -\nset(CMAKE_C_COMPILER ${STAGING_DIR_NATIVE}/opt/usr/bin/clang) \ |
43 |
| -\nset(CMAKE_CXX_COMPILER ${STAGING_DIR_NATIVE}/opt/usr/bin/clang++) \ |
44 |
| -\nset(CMAKE_C_FLAGS \"${SWIFT_C_FLAGS}\") \ |
45 |
| -\nset(CMAKE_C_LINK_FLAGS \"${SWIFT_C_LINK_FLAGS}\") \ |
46 |
| -\nset(CMAKE_CXX_FLAGS \"${SWIFT_CXX_FLAGS}\") \ |
47 |
| -\nset(CMAKE_CXX_LINK_FLAGS \"${SWIFT_CXX_LINK_FLAGS}\") \ |
48 |
| -\nset(SWIFT_USE_LINKER lld) \ |
49 |
| -\nset(LLVM_USE_LINKER lld) \ |
50 |
| -\nset(LLVM_DIR ${HOST_LLVM_PATH}/lib/cmake/llvm) \ |
51 |
| -\nset(LLVM_BUILD_LIBRARY_DIR ${HOST_LLVM_PATH}) \ |
52 |
| -\nset(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON) \ |
53 |
| -\nset(SWIFT_INCLUDE_TOOLS OFF) \ |
54 |
| -\nset(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER ON) \ |
55 |
| -\nset(SWIFT_PREBUILT_CLANG ON) \ |
56 |
| -\nset(SWIFT_NATIVE_CLANG_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \ |
57 |
| -\nset(SWIFT_NATIVE_LLVM_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \ |
58 |
| -\nset(SWIFT_NATIVE_SWIFT_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \ |
59 |
| -\nset(SWIFT_BUILD_AST_ANALYZER OFF) \ |
60 |
| -\nset(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY ON) \ |
61 |
| -\nset(SWIFT_BUILD_DYNAMIC_STDLIB ON) \ |
62 |
| -\nset(SWIFT_BUILD_REMOTE_MIRROR OFF) \ |
63 |
| -\nset(SWIFT_BUILD_SOURCEKIT OFF) \ |
64 |
| -\nset(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT OFF) \ |
65 |
| -\nset(SWIFT_BUILD_SYNTAXPARSERLIB OFF) \ |
66 |
| -\nset(SWIFT_BUILD_REMOTE_MIRROR OFF) \ |
67 |
| -\nset(SWIFT_ENABLE_SOURCEKIT_TESTS OFF) \ |
68 |
| -\nset(SWIFT_INCLUDE_DOCS OFF) \ |
69 |
| -\nset(SWIFT_INCLUDE_TOOLS OFF) \ |
70 |
| -\nset(SWIFT_INCLUDE_TESTS OFF) \ |
71 |
| -\nset(SWIFT_LIBRARY_EVOLUTION 0) \ |
72 |
| -\nset(SWIFT_RUNTIME_OS_VERSIONING OFF) \ |
73 |
| -\nset(SWIFT_HOST_VARIANT_ARCH ${SWIFT_TARGET_ARCH}) \ |
74 |
| -\nset(SWIFT_SDKS LINUX) \ |
75 |
| -\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH ${STAGING_DIR_TARGET} ) \ |
76 |
| -\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include ) \ |
77 |
| -\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include) \ |
78 |
| -\nset(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_I18N ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) \ |
79 |
| -\nset(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_UC ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) \ |
80 |
| -\nset(ZLIB_LIBRARY ${STAGING_DIR_TARGET}/usr/lib/libz.so) \ |
81 |
| -\nset(ICU_I18N_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) \ |
82 |
| -\nset(ICU_UC_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) \ |
83 |
| -\nset(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${WORKDIR}/libdispatch) \ |
84 |
| -\nset(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON) \ |
85 |
| -" |
| 40 | +do_fix_gcc_install_dir() { |
| 41 | + # symbolic links do not work, will not be found by Swift clang driver |
| 42 | + # this is necessary to make the libstdc++ location heuristic work, necessary for C++ interop |
| 43 | + (cd ${STAGING_DIR_TARGET}/usr/lib && rm -rf gcc && mkdir -p gcc && cp -rp ${SWIFT_TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS} gcc) |
| 44 | +} |
| 45 | + |
| 46 | +addtask fix_gcc_install_dir before do_configure after do_prepare_recipe_sysroot |
86 | 47 |
|
87 | 48 | do_configure() {
|
88 |
| - export LDFLAGS="" |
89 |
| - export STAGING_DIR=${STAGING_DIR_TARGET} |
| 49 | + export SDKROOT=${STAGING_DIR_TARGET} |
90 | 50 | export SWIFT_SRCDIR=${S}
|
91 |
| - export LIBDISPATCH_SRCDIR=${WORKDIR}/libdispatch |
92 |
| - export SWIFT_BUILDDIR="${SWIFT_BUILDDIR}" |
93 |
| - export SWIFT_CMAKE_TOOLCHAIN_FILE=${SWIFT_CMAKE_TOOLCHAIN_FILE} |
94 |
| - export SWIFT_NATIVE_PATH=${STAGING_DIR_NATIVE}/opt/usr/bin |
95 |
| - export SWIFT_C_FLAGS="${SWIFT_C_FLAGS}" |
96 |
| - export SWIFT_C_LINK_FLAGS="${SWIFT_C_LINK_FLAGS}" |
97 |
| - export SWIFT_CXX_FLAGS="${SWIFT_CXX_FLAGS}" |
98 |
| - export SWIFT_CXX_LINK_FLAGS="${SWIFT_CXX_LINK_FLAGS}" |
99 |
| - export SWIFT_LLVM_DIR=${HOST_LLVM_PATH} |
100 |
| - export CC=${STAGING_DIR_NATIVE}/opt/usr/bin/clang |
| 51 | + export SWIFT_NATIVE_PATH=${STAGING_DIR_NATIVE}/usr/bin |
| 52 | + export CC=${STAGING_DIR_NATIVE}/usr/bin/clang |
101 | 53 | export CFLAGS="${SWIFT_C_FLAGS}"
|
102 | 54 | export CCLD="${SWIFT_C_LINK_FLAGS}"
|
103 |
| - export CXX=${STAGING_DIR_NATIVE}/opt/usr/bin/clang++ |
| 55 | + export CXX=${STAGING_DIR_NATIVE}/usr/bin/clang++ |
104 | 56 | export CXXFLAGS="${SWIFT_CXX_FLAGS}"
|
105 |
| - export SWIFT_TARGET_ARCH=${SWIFT_TARGET_ARCH} |
106 |
| - export SWIFT_TARGET_NAME=${SWIFT_TARGET_NAME} |
107 |
| - |
108 |
| - mkdir -p ${HOST_SWIFT_SUPPORT_DIR} |
109 |
| - rm -rf $SWIFT_BUILDDIR |
110 |
| - mkdir -p $SWIFT_BUILDDIR |
111 |
| - ${SWIFT_CONFIGURE_CMAKE_SCRIPT} |
| 57 | + |
| 58 | + mkdir -p ${HOST_LLVM_PATH}/cmake/llvm |
| 59 | + cp ${WORKDIR}/llvm-cmake-modules/* ${HOST_LLVM_PATH}/cmake/llvm |
| 60 | + |
| 61 | + rm -rf ${SWIFT_BUILDDIR} |
| 62 | + mkdir -p ${SWIFT_BUILDDIR} |
| 63 | + |
| 64 | + cat <<EOF > ${SWIFT_CMAKE_TOOLCHAIN_FILE} |
| 65 | +set(CMAKE_INSTALL_PREFIX /usr) |
| 66 | +set(CMAKE_COLOR_MAKEFILE OFF) |
| 67 | +set(CMAKE_CROSSCOMPILING ON) |
| 68 | +set(CMAKE_BUILD_TYPE Release) |
| 69 | +set(CMAKE_SYSTEM_NAME Linux) |
| 70 | +set(CMAKE_SYSTEM_PROCESSOR ${SWIFT_TARGET_ARCH}) |
| 71 | +set(CMAKE_SYSROOT ${STAGING_DIR_TARGET}) |
| 72 | + |
| 73 | +set(CMAKE_C_COMPILER ${SWIFT_NATIVE_PATH}/clang) |
| 74 | +set(CMAKE_C_COMPILER_TARGET ${TARGET_SYS}) |
| 75 | +set(CMAKE_C_FLAGS "${SWIFT_C_FLAGS}") |
| 76 | +set(CMAKE_C_LINK_FLAGS "${SWIFT_C_LINK_FLAGS}") |
| 77 | + |
| 78 | +set(CMAKE_CXX_COMPILER ${SWIFT_NATIVE_PATH}/clang++) |
| 79 | +set(CMAKE_CXX_COMPILER_TARGET ${TARGET_SYS}) |
| 80 | +set(CMAKE_CXX_FLAGS "${SWIFT_CXX_FLAGS}") |
| 81 | +set(CMAKE_CXX_LINK_FLAGS "${SWIFT_CXX_LINK_FLAGS}") |
| 82 | + |
| 83 | +set(CMAKE_Swift_COMPILER ${SWIFT_NATIVE_PATH}/swiftc) |
| 84 | +set(CMAKE_Swift_COMPILER_TARGET ${TARGET_SYS}) |
| 85 | +set(CMAKE_Swift_COMPILER_WORKS ON) |
| 86 | + |
| 87 | +set(BUILD_DOC OFF) |
| 88 | +set(BUILD_DOCS OFF) |
| 89 | +set(BUILD_EXAMPLE OFF) |
| 90 | +set(BUILD_EXAMPLES OFF) |
| 91 | +set(BUILD_TEST OFF) |
| 92 | +set(BUILD_TESTS OFF) |
| 93 | +set(BUILD_TESTING OFF) |
| 94 | +set(BUILD_SHARED_LIBS ON) |
| 95 | + |
| 96 | +set(LLVM_USE_LINKER lld) |
| 97 | +set(LLVM_DIR ${HOST_LLVM_PATH}/cmake/llvm) |
| 98 | +set(LLVM_BUILD_LIBRARY_DIR ${HOST_LLVM_PATH}) |
| 99 | +set(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON) |
| 100 | + |
| 101 | +set(SWIFT_USE_LINKER lld) |
| 102 | +set(SWIFT_INCLUDE_TOOLS OFF) |
| 103 | +set(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER ON) |
| 104 | +set(SWIFT_PREBUILT_CLANG ON) |
| 105 | +set(SWIFT_NATIVE_CLANG_TOOLS_PATH ${SWIFT_NATIVE_PATH}) |
| 106 | +set(SWIFT_NATIVE_LLVM_TOOLS_PATH ${SWIFT_NATIVE_PATH}) |
| 107 | +set(SWIFT_NATIVE_SWIFT_TOOLS_PATH ${SWIFT_NATIVE_PATH}) |
| 108 | +set(SWIFT_BUILD_AST_ANALYZER OFF) |
| 109 | +set(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY ON) |
| 110 | +set(SWIFT_BUILD_DYNAMIC_STDLIB ON) |
| 111 | +set(SWIFT_BUILD_REMOTE_MIRROR OFF) |
| 112 | +set(SWIFT_BUILD_SOURCEKIT OFF) |
| 113 | +set(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT OFF) |
| 114 | +set(SWIFT_BUILD_SYNTAXPARSERLIB OFF) |
| 115 | +set(SWIFT_ENABLE_SOURCEKIT_TESTS OFF) |
| 116 | +set(SWIFT_INCLUDE_DOCS OFF) |
| 117 | +set(SWIFT_INCLUDE_TOOLS OFF) |
| 118 | +set(SWIFT_INCLUDE_TESTS OFF) |
| 119 | +set(SWIFT_INCLUDE_TEST_BINARIES OFF) |
| 120 | +set(SWIFT_LIBRARY_EVOLUTION 0) |
| 121 | +set(SWIFT_RUNTIME_OS_VERSIONING OFF) |
| 122 | +set(SWIFT_HOST_VARIANT_ARCH ${SWIFT_TARGET_ARCH}) |
| 123 | +set(SWIFT_SDKS LINUX) |
| 124 | +set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH ${STAGING_DIR_TARGET}) |
| 125 | +set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include) |
| 126 | +set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include) |
| 127 | +set(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_I18N ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) |
| 128 | +set(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_UC ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) |
| 129 | +set(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${WORKDIR}/libdispatch) |
| 130 | +set(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON) |
| 131 | +set(SWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP ON) |
| 132 | +set(SWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING ON) |
| 133 | +set(SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING ON) |
| 134 | +set(SWIFT_ENABLE_EXPERIMENTAL_DISTRIBUTED ON) |
| 135 | +set(SWIFT_ENABLE_EXPERIMENTAL_NONESCAPABLE_TYPES ON) |
| 136 | +set(SWIFT_ENABLE_EXPERIMENTAL_OBSERVATION ON) |
| 137 | +set(SWIFT_ENABLE_SYNCHRONIZATION ON) |
| 138 | +set(SWIFT_PATH_TO_STRING_PROCESSING_SOURCE ${WORKDIR}/swift-experimental-string-processing) |
| 139 | +set(SWIFT_SYNTAX_SOURCE_DIR ${WORKDIR}/swift-syntax) |
| 140 | +set(SWIFTSYNTAX_SOURCE_DIR ${WORKDIR}/swift-syntax) |
| 141 | +set(SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS -Xcc --gcc-install-dir=${STAGING_DIR_TARGET}/usr/lib/gcc/${TARGET_SYS}/${SWIFT_GCC_VERSION} -I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GCC_VERSION} -I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GCC_VERSION}/${TARGET_SYS} -no-verify-emitted-module-interface) |
| 142 | +set(SWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS "") |
| 143 | + |
| 144 | +set(ICU_I18N_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) |
| 145 | +set(ICU_I18N_INCLUDE_DIRS ${STAGING_DIR_TARGET}/usr/include) |
| 146 | +set(ICU_UC_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) |
| 147 | +set(ICU_UC_INCLUDE_DIRS ${STAGING_DIR_TARGET}/usr/include) |
| 148 | +set(LibRT_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/librt.a) |
| 149 | +set(ZLIB_LIBRARY ${STAGING_DIR_TARGET}/usr/lib/libz.so) |
| 150 | +EOF |
| 151 | + |
| 152 | + cmake -S ${SWIFT_SRCDIR} -B ${SWIFT_BUILDDIR} -G Ninja \ |
| 153 | + -DSDKROOT=${STAGING_DIR_TARGET} \ |
| 154 | + -DCMAKE_SYSROOT=${STAGING_DIR_TARGET} \ |
| 155 | + -DCMAKE_TOOLCHAIN_FILE=${SWIFT_CMAKE_TOOLCHAIN_FILE} \ |
| 156 | + -DSWIFT_HOST_VARIANT_ARCH=${SWIFT_TARGET_ARCH} \ |
| 157 | + -DSWIFT_NATIVE_CLANG_TOOLS_PATH=${SWIFT_NATIVE_PATH} \ |
| 158 | + -DSWIFT_NATIVE_SWIFT_TOOLS_PATH=${SWIFT_NATIVE_PATH} \ |
| 159 | + -DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH=${STAGING_DIR_TARGET} \ |
| 160 | + -DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY=${STAGING_DIR_TARGET}/usr/include \ |
| 161 | + -DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY=${STAGING_DIR_TARGET}/usr/include |
112 | 162 | }
|
113 | 163 |
|
114 | 164 | do_compile() {
|
115 | 165 | cd ${SWIFT_BUILDDIR} && ninja
|
116 |
| - # remove Swift static libs |
117 |
| - rm -rf ${SWIFT_BUILDDIR}/lib/swift_static |
| 166 | +} |
| 167 | + |
| 168 | +do_install:prepend() { |
118 | 169 | # remove Dispatch (it will be built by another package)
|
119 |
| - rm -rf ${SWIFT_BUILDDIR}/lib/swift/linux/libBlocksRuntime.so |
120 |
| - rm -rf ${SWIFT_BUILDDIR}/lib/swift/linux/libdispatch.so |
121 |
| - rm -rf ${SWIFT_BUILDDIR}/lib/swift/linux/${SWIFT_TARGET_ARCH}/*.so |
122 |
| - # remove some dirs from /usr/lib (we don't include them in any packages) |
123 |
| - rm -rf ${SWIFT_BUILDDIR}/lib//swift/clang |
124 |
| - rm -rf ${SWIFT_BUILDDIR}/lib//swift/FrameworkABIBaseline |
125 |
| - # remove /usr/share (we don't include it in any packages) |
| 170 | + rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/libBlocksRuntime.so |
| 171 | + rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/libdispatch.so |
| 172 | + rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/${SWIFT_TARGET_ARCH}/*.so |
| 173 | + |
| 174 | + # remove some dirs from /lib/swift (we don't include them in any packages) |
| 175 | + rm -rf ${SWIFT_BUILDDIR}/lib/swift/clang |
| 176 | + rm -rf ${SWIFT_BUILDDIR}/lib/swift/FrameworkABIBaseline |
| 177 | + |
| 178 | + # remove /usr/share (we don't include it in any packages) |
126 | 179 | rm -rf ${SWIFT_BUILDDIR}/share
|
| 180 | + |
127 | 181 | # remove /usr/bin (we don't include it in any packages)
|
128 | 182 | rm -rf ${SWIFT_BUILDDIR}/bin
|
129 | 183 | }
|
130 | 184 |
|
131 | 185 | do_install() {
|
| 186 | + # install bridging and custom executor headers |
| 187 | + install -d ${D}${includedir}/swift |
| 188 | + install -m 0644 ${SWIFT_BUILDDIR}/include/swift/*.h ${D}${includedir}/swift |
| 189 | + install -m 0644 ${S}/lib/ClangImporter/SwiftBridging/swift/bridging* ${D}${includedir}/swift |
| 190 | + |
| 191 | + # install libraries |
132 | 192 | install -d ${D}${libdir}
|
133 |
| - cp -rf ${SWIFT_BUILDDIR}/lib/swift ${D}${libdir}/ |
| 193 | + cp -rfd ${SWIFT_BUILDDIR}/lib/swift ${D}${libdir}/ |
134 | 194 | }
|
135 | 195 |
|
136 |
| -FILES_${PN} = "${libdir}/swift/*" |
137 |
| -INSANE_SKIP_${PN} = "file-rdeps" |
| 196 | +FILES:${PN} = "\ |
| 197 | + ${libdir}/swift/linux/libswift_RegexParser.so \ |
| 198 | + ${libdir}/swift/linux/libswiftSwiftPrivateThreadExtras.so \ |
| 199 | + ${libdir}/swift/linux/libswift_Concurrency.so \ |
| 200 | + ${libdir}/swift/linux/libswift_Differentiation.so \ |
| 201 | + ${libdir}/swift/linux/libswiftDifferentiationUnittest.so \ |
| 202 | + ${libdir}/swift/linux/libswiftDistributed.so \ |
| 203 | + ${libdir}/swift/linux/libswiftRegexBuilder.so \ |
| 204 | + ${libdir}/swift/linux/libswiftObservation.so \ |
| 205 | + ${libdir}/swift/linux/libswiftSwiftOnoneSupport.so \ |
| 206 | + ${libdir}/swift/linux/libswiftSwiftPrivateLibcExtras.so \ |
| 207 | + ${libdir}/swift/linux/libswiftRuntimeUnittest.so \ |
| 208 | + ${libdir}/swift/linux/libswift_StringProcessing.so \ |
| 209 | + ${libdir}/swift/linux/libswiftGlibc.so \ |
| 210 | + ${libdir}/swift/linux/libswiftCore.so \ |
| 211 | + ${libdir}/swift/linux/libswift_Builtin_float.so \ |
| 212 | + ${libdir}/swift/linux/libswiftSwiftPrivate.so \ |
| 213 | + ${libdir}/swift/linux/libswiftSynchronization.so \ |
| 214 | + ${libdir}/swift/linux/libswiftStdlibUnittest.so \ |
| 215 | +" |
| 216 | + |
| 217 | +FILES:${PN}-dev = "\ |
| 218 | + ${includedir}/swift \ |
| 219 | + ${libdir}/swift/shims \ |
| 220 | + ${libdir}/swift/apinotes \ |
| 221 | + ${libdir}/swift/linux/libswiftCommandLineSupport.a \ |
| 222 | + ${libdir}/swift/linux/libswiftCxxStdlib.a \ |
| 223 | + ${libdir}/swift/linux/libswiftCxx.a \ |
| 224 | + ${libdir}/swift/linux/libcxxshim.modulemap \ |
| 225 | + ${libdir}/swift/linux/libstdcxx.modulemap \ |
| 226 | + ${libdir}/swift/linux/libstdcxx.h \ |
| 227 | + ${libdir}/swift/linux/libcxxshim.h \ |
| 228 | + ${libdir}/swift/linux/libcxxstdlibshim.h \ |
| 229 | + ${libdir}/swift/linux/${SWIFT_TARGET_ARCH} \ |
| 230 | + ${libdir}/swift/linux/*.swiftmodule/* \ |
| 231 | +" |
| 232 | + |
| 233 | +FILES:${PN}-staticdev = "\ |
| 234 | + ${libdir}/swift_static \ |
| 235 | +" |
| 236 | + |
| 237 | +FILES:${PN}-embedded = "\ |
| 238 | + ${libdir}/swift/embedded \ |
| 239 | +" |
| 240 | + |
| 241 | +INSANE_SKIP:${PN} = "file-rdeps" |
| 242 | + |
138 | 243 | do_package_qa[noexec] = "1"
|
0 commit comments