Merge macOS builds into FAT, add asan builds (#86)

This commit is contained in:
Liam(Cryptic) 2022-07-13 14:55:30 -07:00 committed by GitHub
parent f62f74156e
commit 3b8663e07d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 73 additions and 33 deletions

View file

@ -23,34 +23,27 @@ jobs:
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-bootstrap.sh
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-build.sh
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-post.sh
- name: macOS x86_64 RELEASE Archive
id: macOS-x86_64-RELEASE-Archive
- name: macOS RELEASE Archive
id: macOS-RELEASE-Archive
uses: actions/upload-artifact@v2
with:
name: futurerestore-macOS-x86_64-RELEASE
name: futurerestore-macOS-RELEASE
path: |
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-x86_64-*-RELEASE.tar.xz
- name: macOS x86_64 DEBUG Archive
id: macOS-x86_64-DEBUG-Archive
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-*-RELEASE.tar.xz
- name: macOS DEBUG Archive
id: macOS-DEBUG-Archive
uses: actions/upload-artifact@v2
with:
name: futurerestore-macOS-x86_64-DEBUG
name: futurerestore-macOS-DEBUG
path: |
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-x86_64-*-DEBUG.tar.xz
- name: macOS arm64 RELEASE Archive
id: macOS-arm64-RELEASE-Archive
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-*-DEBUG.tar.xz
- name: macOS ASAN Archive
id: macOS-ASAN-Archive
uses: actions/upload-artifact@v2
with:
name: futurerestore-macOS-arm64-RELEASE
name: futurerestore-macOS-ASAN
path: |
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-arm64-*-RELEASE.tar.xz
- name: macOS arm64 DEBUG Archive
id: macOS-arm64-DEBUG-Archive
uses: actions/upload-artifact@v2
with:
name: futurerestore-macOS-arm64-DEBUG
path: |
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-arm64-*-DEBUG.tar.xz
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-*-ASAN.tar.xz
Linux:
runs-on: ubuntu-latest
steps:
@ -81,6 +74,12 @@ jobs:
docker cp $(docker ps -ql):/tmp/Builder/repos/futurerestore/.github/workflows/name2.txt /home/runner/work/futurerestore/futurerestore/.github/workflows/
docker cp $(docker ps -ql):/tmp/Builder/repos/futurerestore/.github/workflows/futurerestore2.tar.xz /home/runner/work/futurerestore/futurerestore/.github/workflows/
mv /home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore2.tar.xz /home/runner/work/futurerestore/futurerestore/.github/workflows/$(cat /home/runner/work/futurerestore/futurerestore/.github/workflows/name2.txt)
- name: Linux x86_64 ASAN Build
run: |
mkdir -p /home/runner/work/futurerestore/futurerestore/.github/workflows/
docker cp $(docker ps -ql):/tmp/Builder/repos/futurerestore/.github/workflows/name3.txt /home/runner/work/futurerestore/futurerestore/.github/workflows/
docker cp $(docker ps -ql):/tmp/Builder/repos/futurerestore/.github/workflows/futurerestore3.tar.xz /home/runner/work/futurerestore/futurerestore/.github/workflows/
mv /home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore3.tar.xz /home/runner/work/futurerestore/futurerestore/.github/workflows/$(cat /home/runner/work/futurerestore/futurerestore/.github/workflows/name3.txt)
- name: futurerestore Linux x86_64 RELEASE Archive
id: futurerestore-Linux-x86_64-RELEASE-Archive
uses: actions/upload-artifact@v2
@ -95,3 +94,10 @@ jobs:
name: futurerestore-Linux-x86_64-DEBUG
path: |
/home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-Linux-x86_64*-DEBUG.tar.xz
- name: futurerestore Linux x86_64 ASAN Archive
id: futurerestore-Linux-x86_64-ASAN-Archive
uses: actions/upload-artifact@v2
with:
name: futurerestore-Linux-x86_64-ASAN
path: |
/home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-Linux-x86_64*-ASAN.tar.xz

View file

@ -15,4 +15,10 @@ cd ${BASE}
ln -sf ${DEP_ROOT}/Linux_x86_64_Debug/{lib/,include/} ${DEP_ROOT}/
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug-x86_64 -DARCH=x86_64 -DCMAKE_C_COMPILER=clang-13 -DCMAKE_CXX_COMPILER=clang++-13 -DCMAKE_LINKER=ld.lld-13 -DNO_PKGCFG=1
make -j4 -l4 -C cmake-build-debug-x86_64
cd ${BASE}
ln -sf ${DEP_ROOT}/Linux_x86_64_Debug/{lib/,include/} ${DEP_ROOT}/
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-asan-x86_64 -DARCH=x86_64 -DCMAKE_C_COMPILER=clang-13 -DCMAKE_CXX_COMPILER=clang++-13 -DCMAKE_LINKER=ld.lld-13 -DNO_PKGCFG=1 -DASAN=1
make -j4 -l4 -C cmake-build-asan-x86_64
llvm-strip-13 -s cmake-build-release-x86_64/src/futurerestore

View file

@ -12,8 +12,11 @@ export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
cd ${WORKFLOW_ROOT}
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" > name1.txt
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" > name2.txt
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-ASAN.tar.xz" > name3.txt
cp -RpP "${TMPDIR}/Builder/linux_fix.sh" linux_fix.sh
cp -RpP "${BASE}/cmake-build-release-x86_64/src/futurerestore" futurerestore
tar cpPJvf "futurerestore1.tar.xz" futurerestore linux_fix.sh
cp -RpP "${BASE}/cmake-build-debug-x86_64/src/futurerestore" futurerestore
tar cpPJvf "futurerestore2.tar.xz" futurerestore linux_fix.sh
cp -RpP "${BASE}/cmake-build-asan-x86_64/src/futurerestore" futurerestore
tar cpPJvf "futurerestore3.tar.xz" futurerestore linux_fix.sh

View file

@ -21,5 +21,15 @@ make -j4 -l4 -C cmake-build-release-arm64
ln -sf ${DEP_ROOT}/macOS_arm64_Debug/{lib/,include/} ${DEP_ROOT}/
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug-arm64 -DARCH=arm64 -DNO_PKGCFG=1
make -j4 -l4 -C cmake-build-debug-arm64
ln -sf ${DEP_ROOT}/macOS_x86_64_Debug/{lib/,include/} ${DEP_ROOT}/
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-asan-x86_64 -DARCH=x86_64 -DNO_PKGCFG=1 -DASAN=1
make -j4 -l4 -C cmake-build-asan-x86_64
ln -sf ${DEP_ROOT}/macOS_arm64_Debug/{lib/,include/} ${DEP_ROOT}/
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-asan-arm64 -DARCH=arm64 -DNO_PKGCFG=1 -DASAN=1
make -j4 -l4 -C cmake-build-asan-arm64
llvm-strip -s cmake-build-release-x86_64/src/futurerestore
llvm-strip -s cmake-build-release-arm64/src/futurerestore

View file

@ -8,7 +8,11 @@ export BASE=/Users/runner/work/futurerestore/futurerestore/
cd ${BASE}
export FUTURERESTORE_VERSION=$(git rev-list --count HEAD | tr -d '\n')
export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" -C cmake-build-release-x86_64/src futurerestore
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" -C cmake-build-debug-x86_64/src futurerestore
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" -C cmake-build-release-arm64/src futurerestore
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" -C cmake-build-debug-arm64/src futurerestore
lipo -create -arch x86_64 cmake-build-release-x86_64/src/futurerestore -arch arm64 cmake-build-release-arm64/src/futurerestore -output futurerestore
tar cpPJf "futurerestore-macOS-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" futurerestore
rm -rf futurerestore
lipo -create -arch x86_64 cmake-build-debug-x86_64/src/futurerestore -arch arm64 cmake-build-debug-arm64/src/futurerestore -output futurerestore
tar cpPJf "futurerestore-macOS-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" futurerestore
rm -rf futurerestore
lipo -create -arch x86_64 cmake-build-asan-x86_64/src/futurerestore -arch arm64 cmake-build-asan-arm64/src/futurerestore -output futurerestore
tar cpPJf "futurerestore-macOS-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-ASAN.tar.xz" futurerestore

View file

@ -1,7 +1,15 @@
cmake_minimum_required(VERSION 3.22)
find_package(PkgConfig REQUIRED)
set(ignoreMe "${NO_PKGCFG}")
set(ignoreMe "${ASAN}")
set(ignoreMe "${ARCH}")
set(SUBPROJECT_BUILD 1)
set(ASAN_FLAG "")
if(DEFINED ASAN OR "$ENV{ASAN}" MATCHES "1")
set(ASAN 1)
set(ASAN_FLAG -fsanitize=address)
set(CMAKE_C_LINK_LIBRARY_FLAG "${ASAN_FLAG}")
endif()
if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Darwin")
if(NOT DEFINED NO_XCODE AND NOT DEFINED ENV{NO_XCODE})
execute_process(COMMAND xcrun --find clang WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE CC OUTPUT_STRIP_TRAILING_WHITESPACE)
@ -27,12 +35,11 @@ if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Darwin")
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
endif()
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread -mrelax-all -std=gnu++20")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread -mrelax-all -std=gnu17")
# set(CMAKE_C_LINK_LIBRARY_FLAG "-fsanitize=address")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread -mrelax-all -std=gnu++20 ${ASAN_FLAG}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread -mrelax-all -std=gnu17 ${ASAN_FLAG}")
elseif("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Linux")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-multiple-definition -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--allow-multiple-definition -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--allow-multiple-definition -pthread -mrelax-all -std=gnu++20 ${ASAN_FLAG}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-multiple-definition -pthread -mrelax-all -std=gnu17 ${ASAN_FLAG}")
endif()
set(CMAKE_C_FLAGS_RELEASE "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-Os -DNDEBUG")

View file

@ -1,14 +1,18 @@
#!/usr/bin/env bash
which cmake >/dev/null
# if [[ "$?" -gt 0 ]]; then echo "[!] cmake not installed or not found, refusing to build!"; exit 1; fi
if [[ "$?" -gt 0 ]]; then echo "[!] cmake not installed or not found, refusing to build!"; exit 1; fi
which make >/dev/null
if [[ "$?" -gt 0 ]]; then echo "[!] make not installed or not found, refusing to build!"; exit 1; fi
export CC="$(which clang)"
export CXX="$(which clang++)"
which xcrun >/dev/null
if [[ "$?" -lt 1 ]]; then export CC="$(xcrun --find clang)"; export CXX="$(xcrun --find clang++)"; fi
echo "[*] Building futurerestore"
export FR_INSTALL_DIR="/usr/local/bin"
if [[ -z "$NO_CLEAN" ]]; then rm -rf cmake-build-release cmake-build-debug; fi
if [[ "$RELEASE" == "1" ]]
then
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_INSTALL_PREFIX="${FR_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release $@; fi
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_INSTALL_PREFIX="${FR_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release $@; fi
make -s -C cmake-build-release clean
make -s -C cmake-build-release
if [[ "$?" -gt 0 ]]; then echo "[!] Failed to build futurerestore!"; exit 1; fi
@ -17,7 +21,7 @@ then
echo "[*] Run make -C cmake-build-release install, to install futurerestore or obtain the binary at cmake-build-release/src/futurerestore"
echo "[*] Successfully built futurerestore."
else
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_INSTALL_PREFIX="${FR_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug $@ ; fi
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_INSTALL_PREFIX="${FR_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_MESSAGE_LOG_LEVEL="WARNING" -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug $@ ; fi
make -s -C cmake-build-debug clean
make -s -C cmake-build-debug
if [[ "$?" -gt 0 ]]; then echo "[!] Failed to build futurerestore!"; exit 1; fi

@ -1 +1 @@
Subproject commit fde2c33c9199d8e520e5889e3562630acfa4c03f
Subproject commit 9dc323733e296283a58df4a27d00c4108793742d

2
external/tsschecker vendored

@ -1 +1 @@
Subproject commit 9f141b333befed9b45203a4f45e49707ec08ff24
Subproject commit a17dbfcac2d6760b6581b1e595d051fda76a559d