Skip to content

Commit

Permalink
Merge pull request #1 from colemancda/feature/xctest
Browse files Browse the repository at this point in the history
Add XCTest library
  • Loading branch information
colemancda authored May 22, 2022
2 parents a93a9b4 + b5deb86 commit a80b5f5
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 9 deletions.
4 changes: 2 additions & 2 deletions build-foundation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
set -e
source swift-define

echo "Create Dispatch build folder ${FOUNDATION_BUILDDIR}"
echo "Create Foundation build folder ${FOUNDATION_BUILDDIR}"
mkdir -p $FOUNDATION_BUILDDIR
mkdir -p $FOUNDATION_INSTALL_PREFIX

echo "Configure Dispatch"
echo "Configure Foundation"
rm -rf $FOUNDATION_BUILDDIR/CMakeCache.txt
LIBS="-latomic" cmake -S $FOUNDATION_SRCDIR -B $FOUNDATION_BUILDDIR -G Ninja \
-DCMAKE_INSTALL_PREFIX=${FOUNDATION_INSTALL_PREFIX} \
Expand Down
6 changes: 5 additions & 1 deletion build-swift-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ echo "Cross compile Swift package"
rm -rf $SWIFT_PACKAGE_BUILDDIR
mkdir -p $SWIFT_PACKAGE_BUILDDIR
cd $SWIFT_PACKAGE_SRCDIR
$SWIFT_NATIVE_PATH/swift build -c ${SWIFTPM_CONFIGURATION} --build-path ${SWIFT_PACKAGE_BUILDDIR} --destination ${SWIFTPM_DESTINATION_FILE}
$SWIFT_NATIVE_PATH/swift build --build-tests \
--configuration ${SWIFTPM_CONFIGURATION} \
--build-path ${SWIFT_PACKAGE_BUILDDIR} \
--destination ${SWIFTPM_DESTINATION_FILE} \
-Xswiftc -enable-testing
42 changes: 42 additions & 0 deletions build-xctest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash
set -e
source swift-define

echo "Create XCTest build folder ${XCTEST_BUILDDIR}"
mkdir -p $XCTEST_BUILDDIR
mkdir -p $XCTEST_INSTALL_PREFIX

echo "Configure XCTest"
rm -rf $XCTEST_BUILDDIR/CMakeCache.txt
LIBS="-latomic" cmake -S $XCTEST_SRCDIR -B $XCTEST_BUILDDIR -G Ninja \
-DCMAKE_INSTALL_PREFIX=${XCTEST_INSTALL_PREFIX} \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=${SWIFT_BUILD_CONFIGURATION} \
-DCMAKE_C_COMPILER=${SWIFT_NATIVE_PATH}/clang \
-DCMAKE_CXX_COMPILER=${SWIFT_NATIVE_PATH}/clang++ \
-DCMAKE_C_FLAGS="${RUNTIME_FLAGS} ${EXTRA_INCLUDE_FLAGS}" \
-DCMAKE_CXX_FLAGS="${RUNTIME_FLAGS} ${EXTRA_INCLUDE_FLAGS}" \
-DCMAKE_C_LINK_FLAGS="${LINK_FLAGS}" \
-DCMAKE_CXX_LINK_FLAGS="${LINK_FLAGS}" \
-DCF_DEPLOYMENT_SWIFT=ON \
-Ddispatch_DIR="${LIBDISPATCH_BUILDDIR}/cmake/modules" \
-DFoundation_DIR="${FOUNDATION_BUILDDIR}/cmake/modules" \
-DCMAKE_Swift_COMPILER=${SWIFT_NATIVE_PATH}/swiftc \
-DCMAKE_Swift_FLAGS="${SWIFTC_FLAGS}" \
-DCMAKE_Swift_FLAGS_DEBUG="" \
-DCMAKE_Swift_FLAGS_RELEASE="" \
-DCMAKE_Swift_FLAGS_RELWITHDEBINFO="" \

echo "Build XCTest"
# Workaround Dispatch defined with cmake and module
rm -rf ${STAGING_DIR}/usr/lib/swift/dispatch
(cd $XCTEST_BUILDDIR && ninja)
# Restore Dispatch headers
cp -rf ${LIBDISPATCH_INSTALL_PREFIX}/* ${STAGING_DIR}/usr/

echo "Install XCTest"
(cd $XCTEST_BUILDDIR && ninja install)

echo "Install to Debian sysroot"
mv ${XCTEST_INSTALL_PREFIX}/lib/swift/linux/"$(uname -m)" ${XCTEST_INSTALL_PREFIX}/lib/swift/linux/armv7
cp -rf ${XCTEST_INSTALL_PREFIX}/* ${STAGING_DIR}/usr/
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ set -e
./build-swift-stdlib.sh
./build-dispatch.sh
./build-foundation.sh
./build-xctest.sh
# Cross compile test package
./generate-swiftpm-toolchain.sh
./build-swift-hello.sh
Expand Down
13 changes: 13 additions & 0 deletions fetch-sources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,16 @@ rm -rf $SRCDIR
mkdir -p $SRCDIR
tar -xf $DOWNLOAD_FILE -C ./downloads

# Download XCTest
DOWNLOAD_FILE=./downloads/xctest-${SWIFT_VERSION}.tar.gz
SRCDIR=./downloads/swift-corelibs-xctest-swift-${SWIFT_VERSION}-RELEASE
SRCURL=https://github.com/apple/swift-corelibs-xctest/archive/refs/tags/swift-${SWIFT_VERSION}-RELEASE.tar.gz
if test -f "$DOWNLOAD_FILE"; then
echo "$DOWNLOAD_FILE exists"
else
echo "Download XCTest ${SWIFT_VERSION}"
wget $SRCURL -O $DOWNLOAD_FILE
fi
rm -rf $SRCDIR
mkdir -p $SRCDIR
tar -xf $DOWNLOAD_FILE -C ./downloads
15 changes: 9 additions & 6 deletions swift-define
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,17 @@ SWIFT_PACKAGE_BUILDDIR=$SRC_ROOT/build/swift-hello

# Build Paths
SWIFT_SRCDIR=$SRC_ROOT/downloads/swift-swift-${SWIFT_VERSION}-RELEASE
SWIFT_BUILDDIR=$SRC_ROOT/build/swift-armv7
SWIFT_INSTALL_PREFIX=$SRC_ROOT/build/swift-armv7-install/usr
SWIFT_BUILDDIR=$SRC_ROOT/build/swift-$SWIFT_TARGET_ARCH
SWIFT_INSTALL_PREFIX=$SRC_ROOT/build/swift-$SWIFT_TARGET_ARCH-install/usr
LIBDISPATCH_SRCDIR=$SRC_ROOT/downloads/swift-corelibs-libdispatch-swift-${SWIFT_VERSION}-RELEASE
LIBDISPATCH_BUILDDIR=$SRC_ROOT/build/libdispatch-armv7
LIBDISPATCH_INSTALL_PREFIX=$SRC_ROOT/build/libdispatch-armv7-install/usr
LIBDISPATCH_BUILDDIR=$SRC_ROOT/build/libdispatch-$SWIFT_TARGET_ARCH
LIBDISPATCH_INSTALL_PREFIX=$SRC_ROOT/build/libdispatch-$SWIFT_TARGET_ARCH-install/usr
FOUNDATION_SRCDIR=$SRC_ROOT/downloads/swift-corelibs-foundation-swift-${SWIFT_VERSION}-RELEASE
FOUNDATION_BUILDDIR=$SRC_ROOT/build/foundation-armv7
FOUNDATION_INSTALL_PREFIX=$SRC_ROOT/build/foundation-armv7-install/usr
FOUNDATION_BUILDDIR=$SRC_ROOT/build/foundation-$SWIFT_TARGET_ARCH
FOUNDATION_INSTALL_PREFIX=$SRC_ROOT/build/foundation-$SWIFT_TARGET_ARCH-install/usr
XCTEST_SRCDIR=$SRC_ROOT/downloads/swift-corelibs-xctest-swift-${SWIFT_VERSION}-RELEASE
XCTEST_BUILDDIR=$SRC_ROOT/build/xctest-$SWIFT_TARGET_ARCH
XCTEST_INSTALL_PREFIX=$SRC_ROOT/build/xctest-$SWIFT_TARGET_ARCH-install/usr
SWIFTPM_DESTINATION_FILE=$SRC_ROOT/build/$SWIFT_TARGET_NAME-toolchain.json
INSTALL_PREFIX=$SRC_ROOT/build/swift-install/usr
INSTALL_TAR=$SRC_ROOT/build/swift-$SWIFT_TARGET_ARCH.tar.gz
Expand Down

0 comments on commit a80b5f5

Please sign in to comment.