mirror of
https://github.com/palera1n/palera1n.git
synced 2026-10-21 09:47:01 +02:00
Change from Makefile to CMake (#4)
* add "build" into .gitignore for future out-of-source compilation * help me this is a break point not to be committed * help me this is a break point not to be committed again * Fix many major problems 1. Fix deps so that a script can download the deps instead of some special actions build.yml runner step 2. Fix CMakeLists.txt so that it (partially) works It is still **NOT** recommended to use cmake for the build as it is currently not functional 3. Add to gitignore so that git doesn't track a bunch of generated files * fix deps * change the dep_root population into git submodules. I succeeded in finding git repos for all. * fix all issues and fix ftp settings * change all to cmake * fix CMakeLists.txt so that it doesn't suck as much * switch from ftp to artifacts * fix more issues in src/CMakeLists.txt * fix more issues in src/CMakeLists.txt again * fix more issues in src/CMakeLists.txt again again * add passcode info for A11 * better description formatting * add the 3s wait * dfuhelper: lowercase steps except for first letter * i cant spell * made C99 compliant * turn into valid c99 * fix more issues in src/CMakeLists.txt again again again * Use xcode instead of makefiles * fix deps again * fix deps again again * fix deps again again again * add "build" into .gitignore for future out-of-source compilation * help me this is a break point not to be committed * help me this is a break point not to be committed again * Fix many major problems 1. Fix deps so that a script can download the deps instead of some special actions build.yml runner step 2. Fix CMakeLists.txt so that it (partially) works It is still **NOT** recommended to use cmake for the build as it is currently not functional 3. Add to gitignore so that git doesn't track a bunch of generated files * change the dep_root population into git submodules. I succeeded in finding git repos for all. * fix all issues and fix ftp settings * change all to cmake * fix CMakeLists.txt so that it doesn't suck as much * switch from ftp to artifacts * fix more issues in src/CMakeLists.txt * fix more issues in src/CMakeLists.txt again * fix more issues in src/CMakeLists.txt again again * made C99 compliant * turn into valid c99 * fix more issues in src/CMakeLists.txt again again again * Use xcode instead of makefiles * fix deps again again again * make more fixes * help me * Revert "help me" This reverts commit 866d3669d8aa90bcd7eda0412aea8cb05f42389c. * fix most issues with compiling hopefully * make more fixes again * make more fixes again * make more fixes again * make more fixes again * add gpm * fix gpm patches * go back to automake popt * help me * make popt hopefully listen * make popt hopefully listen * FUCK NEWT * idk * add CMAKE_BUILD_TYPE work * fix checkra1n xxd issues * fix binary locations * fix binary locations again * fix binary locations again * try ftp again * try to fix ftp bugs * try to fix ftp bugs again * Update build.yml * try to fix ftp bugs again * try to find where final executable is * fix all the issues (hopefully) * fix all the issues (hopefully) again * fix all the issues (hopefully) again again * finalize build.yml * finalize build.yml v2 * finalize build.yml v2 * finalize build.yml v4 * finalize build.yml v5 * finalize build.yml v6 * finalize build.yml v7 * finalize build.yml v8 * finalize build.yml v9 * finalize build.yml v10 * finalize build.yml v10 * finalize build.yml v12 * finalize build.yml v13 fuck off amfi * finalize build.yml v14 fuck off amfi * finalize build.yml v15 fuck you macos build times * finalize build.yml v16 fuck you macos build times * finalize build.yml v17 fuck you macos build times * finalize build.yml v17 fuck you macos build times * finalize build.yml v19 fuck you macos build times * finalize build.yml v20 fuck you macos build times FUCK AMFI * finalize build.yml v21 fuck you macos build times FUCK AMFI fix so that it downloads build time not configure time * finalize build.yml v23 fuck you macos build times FUCK AMFI fix so that libs aren't broken * finalize build.yml v23 fuck you macos build times FUCK AMFI fix so that libs aren't broken * finalize build.yml v25 fuck you macos build times FUCK AMFI fix so that libs aren't broken * finalize build.yml v25 well pagure just fucked up everything * finalize build.yml v26 find pls work * finalize build.yml v26 now, remove submodules because of pagure * finalize build.yml v27 HELPPPPPPPPP * finalize build.yml v27 fix linux * finalize build.yml v27 fix linux again * finalize build.yml v27 fix linux again again * finalize build.yml v27 fix mac again * finalize build.yml v27 fix mac again again * finalize build.yml v30 fix mac again again again * finalize build.yml v32 fix mac again again again again * finalize build.yml v32 fix mac again again again again again * finalize build.yml v32 fix mac again again again again again again * finalize build.yml v32 fix mac again again again again again again again * add lto * fix some library issues * fix more issues * fix more issues * add lto to deps * try dynamic code finding with cmake and find_library. * fix more issues ( make static build ) * fix more issues ( make static build ) * fix more issues ( make static build ) * fix more issues ( make static build ) * fuck libusb * fuck cmake add_executable only once * fuck version change * fuck version change * fuck version change * fuck version change * fix more stuff * rename usbmuxd to libusbmuxd * fix linking issues * remove static on MacOS * add binary artifacts on MacOS * Revert "add binary artifacts on MacOS" This reverts commit 43799af8134609cbce7bdd231db6c4e16fe019ee. * remove -D lines * move to C99 * remove submodules * various changes 1. remove submodules 2. fix build.yml 3. add trailing spaces 4. add TSAN --------- Co-authored-by: Nick Chan <[email protected]> Co-authored-by: Tom E <[email protected]> Co-authored-by: Nebula <[email protected]>
This commit is contained in:
7 files changed
+421
-19
No files matched your search
+29
-18
@@ -8,6 +8,7 @@ on:
|
||||
- 'patches/**'
|
||||
- 'include/**'
|
||||
- 'Makefile'
|
||||
- 'CMakeLists.txt'
|
||||
- '.github/workflows/build.yml'
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
@@ -83,7 +84,6 @@ jobs:
|
||||
|
||||
- name: Download dependencies (embedded binaries)
|
||||
run: |
|
||||
make -j5 download-deps
|
||||
echo "SDK=$(xcrun -sdk ${{ matrix.os }} --show-sdk-path)" >> $GITHUB_ENV
|
||||
|
||||
- name: Download dependencies (source code)
|
||||
@@ -293,12 +293,20 @@ jobs:
|
||||
cp -a sysroot/${{ env.PREFIX }}/{include,lib} dep_root
|
||||
find dep_root -name '*.dylib' -delete
|
||||
find dep_root -name '*.la' -delete
|
||||
if [ "${{ matrix.os }}" = "macosx" ]; then
|
||||
CC="xcrun -sdk iphoneos cc" gmake -j$(sysctl -n hw.ncpu)
|
||||
elif [ "${{ matrix.os }}" = "iphoneos" ]; then
|
||||
CC="xcrun -sdk iphoneos cc" gmake -j$(sysctl -n hw.ncpu) FAKE_PLATFORM=2 FAKE_SDK=14.0 FAKE_MINOS=14.0
|
||||
fi
|
||||
mv src/palera1n palera1n-${{ matrix.os }}-${{ matrix.arch }}
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DSTATIC=1 -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CROSSCOMPILING=true \
|
||||
-DCMAKE_SYSTEM_NAME=Darwin \
|
||||
-DCMAKE_C_COMPILER="${{ env.CC }}" \
|
||||
-DCMAKE_C_FLAGS='${{ env.CFLAGS }}' \
|
||||
-DCMAKE_FIND_ROOT_PATH="${{ env.DESTDIR }}" \
|
||||
-DCMAKE_INSTALL_PREFIX="${{ env.PREFIX }}" \
|
||||
-DSTATIC=1
|
||||
make -j$(sysctl -n hw.ncpu)
|
||||
cd ..
|
||||
mkdir -p ready
|
||||
mv build/src/palera1n palera1n-${{ matrix.os }}-${{ matrix.arch }}
|
||||
dsymutil palera1n-${{ matrix.os }}-${{ matrix.arch }}
|
||||
strip palera1n-${{ matrix.os }}-${{ matrix.arch }}
|
||||
ldid -s palera1n-${{ matrix.os }}-${{ matrix.arch }}
|
||||
@@ -447,11 +455,6 @@ jobs:
|
||||
echo "CROSS_COMPILE=${{ matrix.triple }}-" >> $GITHUB_ENV
|
||||
mkdir -p $(pwd)/sysroot/usr/local/lib
|
||||
ln -sf $(pwd)/sysroot/usr/local/lib{,64}
|
||||
|
||||
- name: Download dependencies (embedded binaries)
|
||||
run: |
|
||||
make -j5 download-deps
|
||||
|
||||
- name: Download dependencies (source code)
|
||||
run: |
|
||||
curl -LOOOOOOO \
|
||||
@@ -629,20 +632,29 @@ jobs:
|
||||
cp -a sysroot/${{ env.PREFIX }}/{include,lib} dep_root
|
||||
find dep_root -name '*.so' -delete
|
||||
find dep_root -name '*.la' -delete
|
||||
make -j$(nproc) CC="${{ matrix.triple }}-gcc" palera1n
|
||||
mkdir build
|
||||
cd build
|
||||
CC="${{ matrix.triple }}-gcc" cmake .. -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=${{ env.PREFIX }} \
|
||||
-DCMAKE_FIND_ROOT_PATH=${{ env.DESTDIR }}${{ env.PREFIX }} \
|
||||
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
||||
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \
|
||||
-DCMAKE_C_FLAGS="-I${{ env.DESTDIR }}${{ env.PREFIX }}/include \
|
||||
-L${{ env.DESTDIR }}${{ env.PREFIX }}/lib -Wl,-rpath,${{ env.PREFIX }}/lib" -DSTATIC=1
|
||||
make -j$(nproc) CC="${{ matrix.triple }}-gcc"
|
||||
|
||||
- name: Seperate debug symbols
|
||||
run: |
|
||||
${{ matrix.triple }}-objcopy --only-keep-debug src/palera1n palera1n.debug
|
||||
${{ matrix.triple }}-strip --strip-debug --strip-unneeded src/palera1n
|
||||
${{ matrix.triple }}-objcopy --add-gnu-debuglink=palera1n.debug src/palera1n
|
||||
${{ matrix.triple }}-objcopy --only-keep-debug build/src/palera1n palera1n.debug
|
||||
${{ matrix.triple }}-strip --strip-debug --strip-unneeded build/src/palera1n
|
||||
${{ matrix.triple }}-objcopy --add-gnu-debuglink=palera1n.debug build/src/palera1n
|
||||
chmod -x palera1n.debug
|
||||
|
||||
- name: Prepare artifact
|
||||
run: |
|
||||
mkdir ready
|
||||
mv palera1n.debug ready/palera1n-${{ env.CHECKRA1N_NAME }}.debug
|
||||
mv src/palera1n ready/palera1n-${{ env.CHECKRA1N_NAME }}
|
||||
mv build/src/palera1n ready/palera1n-${{ env.CHECKRA1N_NAME }}
|
||||
tar -zcf ready/dep_root_${{ matrix.triple }}.tgz dep_root
|
||||
|
||||
- name: Upload artifact
|
||||
@@ -657,4 +669,3 @@ jobs:
|
||||
dryRun: false
|
||||
localDir: 'ready/'
|
||||
remoteDir: '/palera1n/artifacts/c-rewrite'
|
||||
|
||||
+3
-1
@@ -1,4 +1,3 @@
|
||||
dep_root/**
|
||||
contrib/**
|
||||
!dep_root/.keep
|
||||
!contrib/.keep
|
||||
@@ -17,3 +16,6 @@ src/xxd-*.c
|
||||
palera1n.1.html
|
||||
Payload
|
||||
docs/*.html
|
||||
build
|
||||
src/*.dmg.c
|
||||
.idea
|
||||
@@ -0,0 +1,21 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(palera1n)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
||||
|
||||
set(CMAKE_CXX_STANDARD 99)
|
||||
|
||||
set(SRC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(DEP ${SRC}/dep_root)
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
|
||||
|
||||
set(STATIC 0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(docs)
|
||||
@@ -0,0 +1,4 @@
|
||||
add_custom_target(
|
||||
docs
|
||||
COMMAND sh -c "mandoc -T html -O style=mandoc.css palera1n.1 > palera1n.1.html"
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
curl -LOOOOOO \
|
||||
https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v3.3.0.tar.gz \
|
||||
https://github.com/libusb/libusb/releases/download/1.0.26/libusb-1.0.26.tar.bz2 \
|
||||
https://mirror-hk.koddos.net/gnu/readline/readline-8.2.tar.gz \
|
||||
https://www.jedsoft.org/releases/slang/slang-2.3.3.tar.bz2 \
|
||||
https://releases.pagure.org/newt/newt-0.52.23.tar.gz \
|
||||
https://github.com/rpm-software-management/popt/archive/master-release.tar.gz
|
||||
|
||||
tar xf master.tar.gz
|
||||
tar xf libusb-1.0.26.tar.bz2
|
||||
tar xf readline-8.2.tar.gz
|
||||
tar xf slang-2.3.3.tar.bz2
|
||||
tar xf newt-0.52.23.tar.gz
|
||||
tar xf master-release.tar.gz
|
||||
|
||||
git clone --depth=1 https://github.com/libimobiledevice/libplist
|
||||
git clone --depth=1 https://github.com/libimobiledevice/libimobiledevice-glue
|
||||
git clone --depth=1 https://github.com/libimobiledevice/libirecovery
|
||||
git clone --depth=1 https://github.com/libimobiledevice/libusbmuxd
|
||||
git clone --depth=1 https://github.com/libimobiledevice/libimobiledevice
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef PALERAIN_H
|
||||
#define PALERAIN_H
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#define _DARWIN_C_SOURCE 1
|
||||
#endif
|
||||
|
||||
#include "xxd-embedded.h"
|
||||
#include "kerninfo.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
@@ -0,0 +1,340 @@
|
||||
#execute_process(COMMAND sh -c "cd ../dep_root && sh ../download_deps.sh")
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
||||
|
||||
|
||||
#set(SRC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
#set(DEP ${SRC}/../dep_root)
|
||||
|
||||
|
||||
|
||||
set(CHECKRA1N_VERSION 0.1337.1)
|
||||
if( ${LDID})
|
||||
set(LDID ldid)
|
||||
endif()
|
||||
if( ${LIPO})
|
||||
set(LIPO lipo)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CHECKRA1N_FILE_NAME checkra1n-macos)
|
||||
else()
|
||||
set(CHECKRA1N_FILE_NAME checkra1n-linux-${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
|
||||
add_executable(palera1n
|
||||
binpack.dmg.c
|
||||
checkra1n-kpf-pongo.c
|
||||
checkra1n.c
|
||||
devhelper.c
|
||||
dfuhelper.c
|
||||
exec_checkra1n.c
|
||||
lock_vars.c
|
||||
lockdown_helper.c
|
||||
log.c
|
||||
main.c
|
||||
optparse.c
|
||||
override_file.c
|
||||
pongo_helper.c
|
||||
ramdisk.dmg.c
|
||||
../include/kerninfo.h
|
||||
../include/palerain.h
|
||||
../include/ANSI-color-codes.h
|
||||
../include/tui.h
|
||||
../include/xxd-embedded.h
|
||||
)
|
||||
|
||||
|
||||
# adds dev mode files
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES tui_main.c
|
||||
tui_screen_enter_dfu.c
|
||||
tui_screen_enter_recovery.c
|
||||
tui_screen_jailbreak.c
|
||||
tui_screen_main.c
|
||||
tui_screen_options.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
|
||||
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "ASAN")
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES tui_main.c
|
||||
tui_screen_enter_dfu.c
|
||||
tui_screen_enter_recovery.c
|
||||
tui_screen_jailbreak.c
|
||||
tui_screen_main.c
|
||||
tui_screen_options.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
add_compile_options(-fsanitize=address,undefined -fsanitize-address-use-after-return=runtime)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "TSAN")
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES tui_main.c
|
||||
tui_screen_enter_dfu.c
|
||||
tui_screen_enter_recovery.c
|
||||
tui_screen_jailbreak.c
|
||||
tui_screen_main.c
|
||||
tui_screen_options.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
add_compile_options(-fsanitize=thread,undefined)
|
||||
else()
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
endif()
|
||||
|
||||
#message("Testing for Clang/LLVM")
|
||||
#string(TOLOWER CMAKE_C_COMPILER_ID COMPILER)
|
||||
|
||||
#if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# message("Using clang/llvm! Enabling -flto=full! Please make sure clang is up to date, or else compile will fail")
|
||||
# add_compile_options(-flto=full)
|
||||
#else()
|
||||
# message("Not using clang/llvm! Using normal lto/no lto!")
|
||||
# add_compile_options(-flto)
|
||||
#endif()
|
||||
|
||||
|
||||
|
||||
#add_custom_command(TARGET palera1n
|
||||
# COMMAND sh -c "curl -LO https://assets.checkra.in/downloads/preview/${CHECKRA1N_VERSION}/${CHECKRA1N_FILE_NAME} && chmod 755 ${CHECKRA1N_FILE_NAME}"
|
||||
# )
|
||||
#
|
||||
#if(APPLE)
|
||||
# add_custom_command(TARGET palera1n
|
||||
# COMMAND sh -c "ldid -Scheckra1n.plist checkra1n"
|
||||
# )
|
||||
# add_custom_command(TARGET palera1n
|
||||
# COMMAND lipo -thin ${CMAKE_SYSTEM_PROCESSOR} -output checkra1n checkra1n-macos
|
||||
# )
|
||||
# if(CFLAGS MATCHES "version-min=")
|
||||
# add_custom_command(TARGET palera1n
|
||||
# COMMAND sh -c "vtool -remove-build-version 1 -replace -output checkra1n checkra1n && vtool -set-build-version $(FAKE_PLATFORM) $(FAKE_MINOS) $(FAKE_SDK) -replace -output checkra1n checkra1n && install_name_tool -change /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit /System/Library/Frameworks/IOKit.framework/IOKit checkra1n && install_name_tool -change /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation checkra1n && ${LDID} -Susb.xml checkra1n"
|
||||
# )
|
||||
# endif()
|
||||
#else()
|
||||
# execute_process(
|
||||
# COMMAND cp ${CHECKRA1N_FILE_NAME} ../src/checkra1n
|
||||
# )
|
||||
#endif()
|
||||
|
||||
#ifneq (,$(findstring arm64, $(CFLAGS)))
|
||||
#$(LIPO) -thin arm64 -output checkra1n checkra1n-macos
|
||||
#else ifneq (,$(findstring x86_64, $(CFLAGS)))
|
||||
#$(LIPO) -thin x86_64 -output checkra1n checkra1n-macos
|
||||
#else ifeq ($(shell arch),i386)
|
||||
#$(LIPO) -thin x86_64 -output checkra1n checkra1n-macos
|
||||
#else
|
||||
#$(LIPO) -thin $(shell arch) -output checkra1n checkra1n-
|
||||
|
||||
if(APPLE)
|
||||
if(${LIBUSB})
|
||||
target_compile_definitions(palera1n PRIVATE -DUSE_LIBUSB)
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES
|
||||
usb_libusb.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
target_link_libraries(palera1n
|
||||
${DEP}/lib/libusb-1.0.a
|
||||
)
|
||||
else()
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES
|
||||
usb_iokit.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
endif()
|
||||
|
||||
if(IOS AND CMAKE_C_FLAGS MATCHES "arm64")
|
||||
add_custom_command(
|
||||
COMMAND sh -c "curl -Lo checkra1n-macos https://assets.checkra.in/downloads/preview/0.1337.1/${CHECKRA1N_FILE_NAME} "
|
||||
COMMAND lipo -thin arm64 -output checkra1n checkra1n-macos
|
||||
COMMAND sh -c "vtool -remove-build-version 1 -replace -output checkra1n checkra1n && vtool -set-build-version $(FAKE_PLATFORM) $(FAKE_MINOS) $(FAKE_SDK) -replace -output checkra1n checkra1n && install_name_tool -change /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit /System/Library/Frameworks/IOKit.framework/IOKit checkra1n && install_name_tool -change /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation checkra1n && ${LDID} -Susb.xml checkra1n"
|
||||
COMMAND sh -c "curl -Lo binpack.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/binpack.dmg"
|
||||
COMMAND sh -c "curl -Lo ramdisk.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/ramdisk.dmg"
|
||||
COMMAND sh -c "curl -Lo checkra1n-kpf-pongo https://github.com/guacaplushy/checkp4le/raw/main/binaries/checkra1n-kpf-pongo"
|
||||
COMMAND pwd
|
||||
COMMAND xxd -iC checkra1n checkra1n.c
|
||||
COMMAND xxd -iC binpack.dmg binpack.dmg.c
|
||||
COMMAND xxd -iC ramdisk.dmg ramdisk.dmg.c
|
||||
COMMAND xxd -iC checkra1n-kpf-pongo checkra1n-kpf-pongo.c
|
||||
OUTPUT checkra1n.c checkra1n-kpf-pongo.c ramdisk.dmg.c binpack.dmg.c binpack.dmg ramdisk.dmg checkra1n-kpf-pongo
|
||||
)
|
||||
elseif(CMAKE_C_FLAGS MATCHES "arm64")
|
||||
add_custom_command(
|
||||
COMMAND sh -c "curl -Lo checkra1n-macos https://assets.checkra.in/downloads/preview/0.1337.1/${CHECKRA1N_FILE_NAME} "
|
||||
COMMAND lipo -thin arm64 -output checkra1n checkra1n-macos
|
||||
COMMAND sh -c "curl -Lo binpack.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/binpack.dmg"
|
||||
COMMAND sh -c "curl -Lo ramdisk.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/ramdisk.dmg"
|
||||
COMMAND sh -c "curl -Lo checkra1n-kpf-pongo https://github.com/guacaplushy/checkp4le/raw/main/binaries/checkra1n-kpf-pongo"
|
||||
COMMAND pwd
|
||||
COMMAND xxd -iC checkra1n checkra1n.c
|
||||
COMMAND xxd -iC binpack.dmg binpack.dmg.c
|
||||
COMMAND xxd -iC ramdisk.dmg ramdisk.dmg.c
|
||||
COMMAND xxd -iC checkra1n-kpf-pongo checkra1n-kpf-pongo.c
|
||||
OUTPUT checkra1n.c checkra1n-kpf-pongo.c ramdisk.dmg.c binpack.dmg.c binpack.dmg ramdisk.dmg checkra1n-kpf-pongo
|
||||
)
|
||||
else()
|
||||
add_custom_command(
|
||||
COMMAND sh -c "curl -Lo checkra1n-macos https://assets.checkra.in/downloads/preview/0.1337.1/${CHECKRA1N_FILE_NAME} "
|
||||
COMMAND lipo -thin x86_64 -output checkra1n checkra1n-macos
|
||||
COMMAND sh -c "curl -Lo binpack.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/binpack.dmg"
|
||||
COMMAND sh -c "curl -Lo ramdisk.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/ramdisk.dmg"
|
||||
COMMAND sh -c "curl -Lo checkra1n-kpf-pongo https://github.com/guacaplushy/checkp4le/raw/main/binaries/checkra1n-kpf-pongo"
|
||||
COMMAND pwd
|
||||
COMMAND xxd -iC checkra1n checkra1n.c
|
||||
COMMAND xxd -iC binpack.dmg binpack.dmg.c
|
||||
COMMAND xxd -iC ramdisk.dmg ramdisk.dmg.c
|
||||
COMMAND xxd -iC checkra1n-kpf-pongo checkra1n-kpf-pongo.c
|
||||
OUTPUT checkra1n.c checkra1n-kpf-pongo.c ramdisk.dmg.c binpack.dmg.c binpack.dmg ramdisk.dmg checkra1n-kpf-pongo
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
add_custom_command(
|
||||
COMMAND sh -c "curl -Lo checkra1n https://assets.checkra.in/downloads/preview/0.1337.1/${CHECKRA1N_FILE_NAME} "
|
||||
COMMAND sh -c "curl -Lo binpack.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/binpack.dmg"
|
||||
COMMAND sh -c "curl -Lo ramdisk.dmg https://cdn.nickchan.lol/palera1n/c-rewrite/deps/ramdisk.dmg"
|
||||
COMMAND sh -c "curl -Lo checkra1n-kpf-pongo https://github.com/guacaplushy/checkp4le/raw/main/binaries/checkra1n-kpf-pongo"
|
||||
COMMAND pwd
|
||||
COMMAND xxd -iC checkra1n checkra1n.c
|
||||
COMMAND xxd -iC binpack.dmg binpack.dmg.c
|
||||
COMMAND xxd -iC ramdisk.dmg ramdisk.dmg.c
|
||||
COMMAND xxd -iC checkra1n-kpf-pongo checkra1n-kpf-pongo.c
|
||||
OUTPUT checkra1n.c checkra1n-kpf-pongo.c ramdisk.dmg.c binpack.dmg.c binpack.dmg ramdisk.dmg checkra1n-kpf-pongo
|
||||
)
|
||||
target_compile_definitions(palera1n PRIVATE -DUSE_LIBUSB)
|
||||
get_property(MY_TARGET_SOURCES TARGET palera1n PROPERTY SOURCES)
|
||||
list(APPEND MY_TARGET_SOURCES
|
||||
usb_libusb.c)
|
||||
set_property(TARGET palera1n PROPERTY SOURCES ${MY_TARGET_SOURCES})
|
||||
target_link_libraries(palera1n
|
||||
${DEP}/lib/libusb-1.0.a
|
||||
)
|
||||
target_compile_definitions(palera1n PRIVATE -DUSE_LIBUSB)
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
../include
|
||||
${SRC}
|
||||
)
|
||||
|
||||
|
||||
target_compile_definitions(palera1n PRIVATE -DPALERAIN_VERSION=\"2.0.0\")
|
||||
|
||||
target_include_directories(palera1n PRIVATE
|
||||
${SRC}/include
|
||||
${SRC}
|
||||
${DEP}/include
|
||||
)
|
||||
|
||||
#if(${STATIC})
|
||||
target_link_libraries(palera1n
|
||||
${DEP}/lib/libimobiledevice-1.0.a
|
||||
${DEP}/lib/libirecovery-1.0.a
|
||||
${DEP}/lib/libusbmuxd-2.0.a
|
||||
${DEP}/lib/libimobiledevice-glue-1.0.a
|
||||
${DEP}/lib/libplist-2.0.a
|
||||
${DEP}/lib/libmbedtls.a
|
||||
${DEP}/lib/libmbedcrypto.a
|
||||
${DEP}/lib/libmbedx509.a
|
||||
${DEP}/lib/libreadline.a
|
||||
)
|
||||
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
if(NOT APPLE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-static")
|
||||
endif()
|
||||
#else()
|
||||
# find_library(LIBIMOBILEDEVICE libimobiledevice)
|
||||
# if (NOT CORE_FOUNDATION)
|
||||
# message(FATAL_ERROR "libimobiledevice not found")
|
||||
# endif()
|
||||
# target_link_libraries(palera1n ${LIBIMOBILEDEVICE})
|
||||
#
|
||||
# find_library(LIR libirecovery)
|
||||
# if (NOT SYSCONF)
|
||||
# message(FATAL_ERROR "libirecovery not found")
|
||||
# endif()
|
||||
# target_link_libraries(palera1n ${LIR})
|
||||
#
|
||||
# find_library(USBMUXD usbmuxd)
|
||||
# if (NOT SEC)
|
||||
# message(FATAL_ERROR "usbmuxd not found")
|
||||
# endif()
|
||||
# target_link_libraries(palera1n ${USBMUXD})
|
||||
#
|
||||
# find_library(GLUE libimobiledevice-glue)
|
||||
# if (NOT IOKIT)
|
||||
# message(FATAL_ERROR "libimobiledevice-glue not found")
|
||||
# endif()
|
||||
# target_link_libraries(palera1n ${GLUE})
|
||||
#
|
||||
## target_link_libraries(palera1n
|
||||
## imobiledevice-1.0
|
||||
## irecovery-1.0
|
||||
## usbmuxd-2.0
|
||||
## imobiledevice-glue-1.0
|
||||
## plist-2.0
|
||||
## mbedtls
|
||||
## mbedcrypto
|
||||
## mbedx509
|
||||
## readline
|
||||
## usb-1.0
|
||||
## )
|
||||
#endif()
|
||||
#if(APPLE)
|
||||
# add_compile_options(palera1n
|
||||
# -framework CoreFoundation
|
||||
# -framework SystemConfiguration
|
||||
# -framework IOKit
|
||||
# -framework Security
|
||||
# )
|
||||
#endif()
|
||||
|
||||
if(APPLE)
|
||||
find_library(CORE_FOUNDATION CoreFoundation)
|
||||
if (NOT CORE_FOUNDATION)
|
||||
message(FATAL_ERROR "CoreFoundation not found")
|
||||
endif()
|
||||
target_link_libraries(palera1n ${CORE_FOUNDATION})
|
||||
|
||||
find_library(SYSCONF SystemConfiguration)
|
||||
if (NOT SYSCONF)
|
||||
message(FATAL_ERROR "SystemConfiguration not found")
|
||||
endif()
|
||||
target_link_libraries(palera1n ${SYSCONF})
|
||||
|
||||
find_library(SEC Security)
|
||||
if (NOT SEC)
|
||||
message(FATAL_ERROR "Security not found")
|
||||
endif()
|
||||
target_link_libraries(palera1n ${SEC})
|
||||
|
||||
find_library(IOKIT IOKit)
|
||||
if (NOT IOKIT)
|
||||
message(FATAL_ERROR "IOKit not found")
|
||||
endif()
|
||||
target_link_libraries(palera1n ${IOKIT})
|
||||
endif()
|
||||
add_compile_options(palera1n
|
||||
-static -no-pie -Wl,--gc-sections
|
||||
)
|
||||
|
||||
|
||||
if(!BUILD_DATE)
|
||||
execute_process(COMMAND date OUTPUT_VARIABLE BUILD_DATE)
|
||||
endif()
|
||||
if(!BUILD_TAG)
|
||||
execute_process(COMMAND git describe --dirty --tags --abbrev=7 OUTPUT_VARIABLE BUILD_TAG)
|
||||
endif()
|
||||
if(!BUILD_WHOAMI)
|
||||
execute_process(COMMAND whoami OUTPUT_VARIABLE BUILD_WHOAMI)
|
||||
endif ()
|
||||
|
||||
set(INCLUDE_DIR /usr/local/include)
|
||||
include_directories (${INCLUDE_DIR})
|
||||
|
||||
|
||||
add_compile_definitions(
|
||||
BUILD_DATE="${BUILD_DATE}"
|
||||
BUILD_TAG="${BUILD_TAG}"
|
||||
BUILD_WHOAMI="${BUILD_WHOAMI}"
|
||||
BUILD_STYLE="${CMAKE_BUILD_TYPE}"
|
||||
)
|
||||
Reference in new issue
Block a user