mirror of
https://github.com/tihmstar/futurerestore.git
synced 2025-04-20 14:31:41 +00:00
Merge macOS builds into FAT, add asan builds (#86)
This commit is contained in:
parent
f62f74156e
commit
3b8663e07d
44
.github/workflows/ci.yml
vendored
44
.github/workflows/ci.yml
vendored
|
@ -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
|
||||
|
|
6
.github/workflows/linux-build.sh
vendored
6
.github/workflows/linux-build.sh
vendored
|
@ -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
|
||||
|
|
3
.github/workflows/linux-post.sh
vendored
3
.github/workflows/linux-post.sh
vendored
|
@ -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
|
||||
|
|
10
.github/workflows/mac-build.sh
vendored
10
.github/workflows/mac-build.sh
vendored
|
@ -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
|
||||
|
|
12
.github/workflows/mac-post.sh
vendored
12
.github/workflows/mac-post.sh
vendored
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
10
build.sh
10
build.sh
|
@ -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
|
||||
|
|
2
external/idevicerestore
vendored
2
external/idevicerestore
vendored
|
@ -1 +1 @@
|
|||
Subproject commit fde2c33c9199d8e520e5889e3562630acfa4c03f
|
||||
Subproject commit 9dc323733e296283a58df4a27d00c4108793742d
|
2
external/tsschecker
vendored
2
external/tsschecker
vendored
|
@ -1 +1 @@
|
|||
Subproject commit 9f141b333befed9b45203a4f45e49707ec08ff24
|
||||
Subproject commit a17dbfcac2d6760b6581b1e595d051fda76a559d
|
Loading…
Reference in a new issue