Skip to content

Commit 985a1f7

Browse files
committed
swift-stdlib: update for Swift 6.1.2 and Scarthgap
1 parent d1fc510 commit 985a1f7

File tree

5 files changed

+217
-308
lines changed

5 files changed

+217
-308
lines changed

recipes-devtools/swift/swift-llvm-native.bb

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 217 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,138 +1,254 @@
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"
34

45
LICENSE = "Apache-2.0"
56
LIC_FILES_CHKSUM = "file://${S}/LICENSE.txt;md5=f6c482a0548ea60d6c2e015776534035"
67

8+
PACKAGES:append = " ${PN}-embedded"
9+
710
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/llvm-project.git;protocol=https;name=llvm-project;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=llvm-project; \
16+
git://github.com/swiftlang/swift.git;protocol=https;name=swift;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=swift; \
17+
git://github.com/swiftlang/swift-corelibs-libdispatch.git;protocol=https;name=libdispatch;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=libdispatch; \
18+
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; \
19+
git://github.com/swiftlang/swift-syntax.git;protocol=https;name=syntax;tag=swift-${SWIFT_VERSION}-RELEASE;nobranch=1;destsuffix=swift-syntax; \
20+
"
921

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"
22+
S = "${WORKDIR}/swift"
1623

17-
S = "${WORKDIR}/git"
1824
SWIFT_BUILDDIR = "${S}/build"
19-
DEPENDS = "gcc-runtime python3-native icu ncurses"
20-
DEPENDS += " swift-native swift-llvm-native libgcc gcc glibc libxml2"
25+
DEPENDS = "gcc-runtime python3-native icu ncurses swift-native libgcc gcc glibc libxml2 libxml2-native ninja-native"
2126

2227
inherit swift-cmake-base
2328

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}"
29+
TARGET_LDFLAGS:append = " -w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GCC_VERSION}"
3030

31-
TARGET_LDFLAGS += "-w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current"
31+
SWIFT_CMAKE_TOOLCHAIN_FILE = "${WORKDIR}/linux-${SWIFT_TARGET_ARCH}-toolchain.cmake"
3232

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}"
33+
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}"
3734
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}"
35+
36+
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}"
3937
SWIFT_CXX_LINK_FLAGS = "-target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} ${EXTRA_INCLUDE_FLAGS}"
4038

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-
"
39+
do_fix_gcc_install_dir() {
40+
# symbolic links do not work, will not be found by Swift clang driver
41+
# this is necessary to make the libstdc++ location heuristic work, necessary for C++ interop
42+
(cd ${STAGING_DIR_TARGET}/usr/lib && rm -rf gcc && mkdir -p gcc && cp -rp ${SWIFT_TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS} gcc)
43+
}
44+
45+
addtask fix_gcc_install_dir before do_configure after do_prepare_recipe_sysroot
8646

8747
do_configure() {
88-
export LDFLAGS=""
89-
export STAGING_DIR=${STAGING_DIR_TARGET}
48+
export SDKROOT=${STAGING_DIR_TARGET}
49+
export LLVM_SRCDIR=${WORKDIR}/llvm-project
50+
export LLVM_BUILDDIR=${LLVM_SRCDIR}/build
9051
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
52+
export SWIFT_NATIVE_PATH=${STAGING_DIR_NATIVE}/usr/bin
53+
export CC=${STAGING_DIR_NATIVE}/usr/bin/clang
10154
export CFLAGS="${SWIFT_C_FLAGS}"
10255
export CCLD="${SWIFT_C_LINK_FLAGS}"
103-
export CXX=${STAGING_DIR_NATIVE}/opt/usr/bin/clang++
56+
export CXX=${STAGING_DIR_NATIVE}/usr/bin/clang++
10457
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}
58+
59+
rm -rf ${LLVM_BUILDDIR}
60+
mkdir -p ${LLVM_BUILDDIR}
61+
62+
# Configure the llvm project to get the cmake files generated, so we can point
63+
# LLVM_DIR to this folder
64+
cmake -S ${LLVM_SRCDIR}/llvm -B ${LLVM_BUILDDIR} -G Ninja \
65+
-DCMAKE_INSTALL_PREFIX=${STAGING_DIR_NATIVE}/usr/lib \
66+
-DCMAKE_C_COMPILER=${SWIFT_NATIVE_PATH}/clang \
67+
-DCMAKE_CXX_COMPILER=${SWIFT_NATIVE_PATH}/clang++ \
68+
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
69+
-DLLVM_ENABLE_PROJECTS="llvm" \
70+
-DCMAKE_BUILD_TYPE=Release
71+
72+
rm -rf ${SWIFT_BUILDDIR}
73+
mkdir -p ${SWIFT_BUILDDIR}
74+
75+
cat <<EOF > ${SWIFT_CMAKE_TOOLCHAIN_FILE}
76+
set(CMAKE_INSTALL_PREFIX /usr)
77+
set(CMAKE_COLOR_MAKEFILE OFF)
78+
set(CMAKE_CROSSCOMPILING ON)
79+
set(CMAKE_BUILD_TYPE Release)
80+
set(CMAKE_SYSTEM_NAME Linux)
81+
set(CMAKE_SYSTEM_PROCESSOR ${SWIFT_TARGET_ARCH})
82+
set(CMAKE_SYSROOT ${STAGING_DIR_TARGET})
83+
84+
set(CMAKE_C_COMPILER ${SWIFT_NATIVE_PATH}/clang)
85+
set(CMAKE_C_COMPILER_TARGET ${TARGET_SYS})
86+
set(CMAKE_C_FLAGS "${SWIFT_C_FLAGS}")
87+
set(CMAKE_C_LINK_FLAGS "${SWIFT_C_LINK_FLAGS}")
88+
89+
set(CMAKE_CXX_COMPILER ${SWIFT_NATIVE_PATH}/clang++)
90+
set(CMAKE_CXX_COMPILER_TARGET ${TARGET_SYS})
91+
set(CMAKE_CXX_FLAGS "${SWIFT_CXX_FLAGS}")
92+
set(CMAKE_CXX_LINK_FLAGS "${SWIFT_CXX_LINK_FLAGS}")
93+
94+
set(CMAKE_Swift_COMPILER ${SWIFT_NATIVE_PATH}/swiftc)
95+
set(CMAKE_Swift_COMPILER_TARGET ${TARGET_SYS})
96+
set(CMAKE_Swift_COMPILER_WORKS ON)
97+
98+
set(BUILD_DOC OFF)
99+
set(BUILD_DOCS OFF)
100+
set(BUILD_EXAMPLE OFF)
101+
set(BUILD_EXAMPLES OFF)
102+
set(BUILD_TEST OFF)
103+
set(BUILD_TESTS OFF)
104+
set(BUILD_TESTING OFF)
105+
set(BUILD_SHARED_LIBS ON)
106+
107+
set(LLVM_USE_LINKER lld)
108+
set(LLVM_DIR ${LLVM_BUILDDIR}/lib/cmake/llvm)
109+
set(LLVM_BUILD_LIBRARY_DIR ${LLVM_BUILDDIR})
110+
set(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON)
111+
112+
set(SWIFT_USE_LINKER lld)
113+
set(SWIFT_INCLUDE_TOOLS OFF)
114+
set(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER ON)
115+
set(SWIFT_PREBUILT_CLANG ON)
116+
set(SWIFT_NATIVE_CLANG_TOOLS_PATH ${SWIFT_NATIVE_PATH})
117+
set(SWIFT_NATIVE_LLVM_TOOLS_PATH ${SWIFT_NATIVE_PATH})
118+
set(SWIFT_NATIVE_SWIFT_TOOLS_PATH ${SWIFT_NATIVE_PATH})
119+
set(SWIFT_BUILD_AST_ANALYZER OFF)
120+
set(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY ON)
121+
set(SWIFT_BUILD_DYNAMIC_STDLIB ON)
122+
set(SWIFT_BUILD_REMOTE_MIRROR OFF)
123+
set(SWIFT_BUILD_SOURCEKIT OFF)
124+
set(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT OFF)
125+
set(SWIFT_BUILD_SYNTAXPARSERLIB OFF)
126+
set(SWIFT_ENABLE_SOURCEKIT_TESTS OFF)
127+
set(SWIFT_INCLUDE_DOCS OFF)
128+
set(SWIFT_INCLUDE_TOOLS OFF)
129+
set(SWIFT_INCLUDE_TESTS OFF)
130+
set(SWIFT_INCLUDE_TEST_BINARIES OFF)
131+
set(SWIFT_LIBRARY_EVOLUTION 0)
132+
set(SWIFT_RUNTIME_OS_VERSIONING OFF)
133+
set(SWIFT_HOST_VARIANT_ARCH ${SWIFT_TARGET_ARCH})
134+
set(SWIFT_SDKS LINUX)
135+
set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH ${STAGING_DIR_TARGET})
136+
set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include)
137+
set(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include)
138+
set(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_I18N ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so)
139+
set(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_UC ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so)
140+
set(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${WORKDIR}/libdispatch)
141+
set(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON)
142+
set(SWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP ON)
143+
set(SWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING ON)
144+
set(SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING ON)
145+
set(SWIFT_ENABLE_EXPERIMENTAL_DISTRIBUTED ON)
146+
set(SWIFT_ENABLE_EXPERIMENTAL_NONESCAPABLE_TYPES ON)
147+
set(SWIFT_ENABLE_EXPERIMENTAL_OBSERVATION ON)
148+
set(SWIFT_ENABLE_SYNCHRONIZATION ON)
149+
set(SWIFT_PATH_TO_STRING_PROCESSING_SOURCE ${WORKDIR}/swift-experimental-string-processing)
150+
set(SWIFT_SYNTAX_SOURCE_DIR ${WORKDIR}/swift-syntax)
151+
set(SWIFTSYNTAX_SOURCE_DIR ${WORKDIR}/swift-syntax)
152+
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)
153+
set(SWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS "")
154+
155+
set(ICU_I18N_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so)
156+
set(ICU_I18N_INCLUDE_DIRS ${STAGING_DIR_TARGET}/usr/include)
157+
set(ICU_UC_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so)
158+
set(ICU_UC_INCLUDE_DIRS ${STAGING_DIR_TARGET}/usr/include)
159+
set(LibRT_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/librt.a)
160+
set(ZLIB_LIBRARY ${STAGING_DIR_TARGET}/usr/lib/libz.so)
161+
EOF
162+
163+
cmake -S ${SWIFT_SRCDIR} -B ${SWIFT_BUILDDIR} -G Ninja \
164+
-DSDKROOT=${STAGING_DIR_TARGET} \
165+
-DCMAKE_SYSROOT=${STAGING_DIR_TARGET} \
166+
-DCMAKE_TOOLCHAIN_FILE=${SWIFT_CMAKE_TOOLCHAIN_FILE} \
167+
-DSWIFT_HOST_VARIANT_ARCH=${SWIFT_TARGET_ARCH} \
168+
-DSWIFT_NATIVE_CLANG_TOOLS_PATH=${SWIFT_NATIVE_PATH} \
169+
-DSWIFT_NATIVE_SWIFT_TOOLS_PATH=${SWIFT_NATIVE_PATH} \
170+
-DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH=${STAGING_DIR_TARGET} \
171+
-DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY=${STAGING_DIR_TARGET}/usr/include \
172+
-DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY=${STAGING_DIR_TARGET}/usr/include
112173
}
113174

114175
do_compile() {
115176
cd ${SWIFT_BUILDDIR} && ninja
116-
# remove Swift static libs
117-
rm -rf ${SWIFT_BUILDDIR}/lib/swift_static
177+
}
178+
179+
do_install:prepend() {
118180
# 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)
181+
rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/libBlocksRuntime.so
182+
rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/libdispatch.so
183+
rm -f ${SWIFT_BUILDDIR}/lib/swift/linux/${SWIFT_TARGET_ARCH}/*.so
184+
185+
# remove some dirs from /lib/swift (we don't include them in any packages)
186+
rm -rf ${SWIFT_BUILDDIR}/lib/swift/clang
187+
rm -rf ${SWIFT_BUILDDIR}/lib/swift/FrameworkABIBaseline
188+
189+
# remove /usr/share (we don't include it in any packages)
126190
rm -rf ${SWIFT_BUILDDIR}/share
191+
127192
# remove /usr/bin (we don't include it in any packages)
128193
rm -rf ${SWIFT_BUILDDIR}/bin
129194
}
130195

131196
do_install() {
197+
# install bridging and custom executor headers
198+
install -d ${D}${includedir}/swift
199+
install -m 0644 ${SWIFT_BUILDDIR}/include/swift/*.h ${D}${includedir}/swift
200+
install -m 0644 ${S}/lib/ClangImporter/SwiftBridging/swift/bridging* ${D}${includedir}/swift
201+
202+
# install libraries
132203
install -d ${D}${libdir}
133-
cp -rf ${SWIFT_BUILDDIR}/lib/swift ${D}${libdir}/
204+
cp -rfd ${SWIFT_BUILDDIR}/lib/swift ${D}${libdir}/
134205
}
135206

136-
FILES_${PN} = "${libdir}/swift/*"
137-
INSANE_SKIP_${PN} = "file-rdeps"
207+
FILES:${PN} = "\
208+
${libdir}/swift/linux/libswift_RegexParser.so \
209+
${libdir}/swift/linux/libswiftSwiftPrivateThreadExtras.so \
210+
${libdir}/swift/linux/libswift_Concurrency.so \
211+
${libdir}/swift/linux/libswift_Differentiation.so \
212+
${libdir}/swift/linux/libswiftDifferentiationUnittest.so \
213+
${libdir}/swift/linux/libswiftDistributed.so \
214+
${libdir}/swift/linux/libswiftRegexBuilder.so \
215+
${libdir}/swift/linux/libswiftObservation.so \
216+
${libdir}/swift/linux/libswiftSwiftOnoneSupport.so \
217+
${libdir}/swift/linux/libswiftSwiftPrivateLibcExtras.so \
218+
${libdir}/swift/linux/libswiftRuntimeUnittest.so \
219+
${libdir}/swift/linux/libswift_StringProcessing.so \
220+
${libdir}/swift/linux/libswiftGlibc.so \
221+
${libdir}/swift/linux/libswiftCore.so \
222+
${libdir}/swift/linux/libswift_Builtin_float.so \
223+
${libdir}/swift/linux/libswiftSwiftPrivate.so \
224+
${libdir}/swift/linux/libswiftSynchronization.so \
225+
${libdir}/swift/linux/libswiftStdlibUnittest.so \
226+
"
227+
228+
FILES:${PN}-dev = "\
229+
${includedir}/swift \
230+
${libdir}/swift/shims \
231+
${libdir}/swift/apinotes \
232+
${libdir}/swift/linux/libswiftCommandLineSupport.a \
233+
${libdir}/swift/linux/libswiftCxxStdlib.a \
234+
${libdir}/swift/linux/libswiftCxx.a \
235+
${libdir}/swift/linux/libcxxshim.modulemap \
236+
${libdir}/swift/linux/libstdcxx.modulemap \
237+
${libdir}/swift/linux/libstdcxx.h \
238+
${libdir}/swift/linux/libcxxshim.h \
239+
${libdir}/swift/linux/libcxxstdlibshim.h \
240+
${libdir}/swift/linux/${SWIFT_TARGET_ARCH} \
241+
${libdir}/swift/linux/*.swiftmodule/* \
242+
"
243+
244+
FILES:${PN}-staticdev = "\
245+
${libdir}/swift_static \
246+
"
247+
248+
FILES:${PN}-embedded = "\
249+
${libdir}/swift/embedded \
250+
"
251+
252+
INSANE_SKIP:${PN} = "file-rdeps"
253+
138254
do_package_qa[noexec] = "1"

recipes-devtools/swift/swift-stdlib/0001-Float16.patch

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)