mirror of
https://github.com/palera1n/palera1n.git
synced 2026-10-21 09:47:01 +02:00
fix(build): musl compilation (#759)
This commit is contained in:
4 files changed
+212
-236
No files matched your search
@@ -37,7 +37,6 @@ jobs:
|
|||||||
gmake -j1 tools
|
gmake -j1 tools
|
||||||
gmake -j$(sysctl -n hw.ncpu)
|
gmake -j$(sysctl -n hw.ncpu)
|
||||||
|
|
||||||
|
|
||||||
- name: Prepare upload directory
|
- name: Prepare upload directory
|
||||||
run: |
|
run: |
|
||||||
mkdir upload
|
mkdir upload
|
||||||
@@ -107,16 +106,26 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
curl -u ${{ secrets.ACTIONS_RESOURCES_LOGIN }} -LO https://static.palera.in/action-resources/musl-cross/${{ matrix.triple }}-cross.tar.zst
|
curl -u ${{ secrets.ACTIONS_RESOURCES_LOGIN }} -LO https://static.palera.in/action-resources/musl-cross/${{ matrix.triple }}-cross.tar.zst
|
||||||
tar --zstd -xf ${{ matrix.triple }}-cross.tar.zst
|
tar --zstd -xf ${{ matrix.triple }}-cross.tar.zst
|
||||||
|
find ./${{ matrix.triple }}-cross -name "*.la" -type f -delete
|
||||||
echo "$(pwd)/${{ matrix.triple }}-cross/bin" >> $GITHUB_PATH
|
echo "$(pwd)/${{ matrix.triple }}-cross/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
- name: Install dependencies (apt)
|
- name: Install dependencies (apt)
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y build-essential cmake autoconf automake libtool pkg-config
|
sudo apt install -y build-essential cmake autoconf automake libtool pkg-config zstd
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
make palera1n WITH_STATIC=1 BUILD_TYPE=Release CMAKE_SYSROOT="$("$PWD/${{ matrix.triple }}-cross/bin/${{ matrix.triple }}-gcc" -print-sysroot)"
|
SYSROOT_PATH="$("$PWD/${{ matrix.triple }}-cross/bin/${{ matrix.triple }}-gcc" -print-sysroot)"
|
||||||
|
|
||||||
|
CC="${{ matrix.triple }}-gcc" CXX="${{ matrix.triple }}-g++" \
|
||||||
|
make palera1n \
|
||||||
|
WITH_STATIC=1 \
|
||||||
|
BUILD_TYPE=Release \
|
||||||
|
CMAKE_SYSROOT="$SYSROOT_PATH" \
|
||||||
|
CROSS_HOST_TRIPLE="${{ matrix.triple }}" \
|
||||||
|
JOBS=$(nproc)
|
||||||
|
${{ matrix.triple }}-strip -s build/palera1n
|
||||||
|
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -159,7 +168,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
make palera1n WITH_STATIC=1 WITH_GUI=1 BUILD_TYPE=Release
|
make palera1n WITH_STATIC=1 WITH_GUI=1 BUILD_TYPE=Release JOBS=$(sysctl -n hw.ncpu)
|
||||||
|
strip -s build/palera1n.app/Contents/MacOS/palera1n
|
||||||
cd build && zip -r palera1n-macos-${{ matrix.arch }}.zip palera1n.app
|
cd build && zip -r palera1n-macos-${{ matrix.arch }}.zip palera1n.app
|
||||||
|
|
||||||
- name: Upload
|
- name: Upload
|
||||||
@@ -225,7 +235,8 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
make palera1n_mingw WITH_STATIC=1 WITH_GUI=1 BUILD_TYPE=Release
|
make palera1n_mingw WITH_STATIC=1 WITH_GUI=1 BUILD_TYPE=Release JOBS=$(nproc)
|
||||||
|
strip -s build/palera1n.exe
|
||||||
|
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
+4
-1
@@ -9,4 +9,7 @@ payloads/binpack.dmg
|
|||||||
|
|
||||||
libusbK/
|
libusbK/
|
||||||
libusbK-tmp/
|
libusbK-tmp/
|
||||||
*.7z
|
*.7z
|
||||||
|
*.tgz
|
||||||
|
*.tar.gz
|
||||||
|
*-cross
|
||||||
+170
-222
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
project(palera1n VERSION 3.0)
|
project(palera1n VERSION 3.0)
|
||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
@@ -6,40 +6,64 @@ include(ExternalProject)
|
|||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||||
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
|
||||||
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
set(CROSS_HOST_TRIPLE "" CACHE STRING "Cross-compile target triple for Autotools (e.g., x86_64-linux-musl)")
|
||||||
|
|
||||||
option(WITH_GUI "Build with wxWidgets GUI" OFF)
|
option(WITH_GUI "Build with wxWidgets GUI" OFF)
|
||||||
option(WITH_STATIC "Build with static wxWidgets / deps" OFF)
|
option(WITH_STATIC "Build with static wxWidgets / deps" OFF)
|
||||||
option(WITH_TUI "Build with TUI" OFF)
|
option(WITH_TUI "Build with TUI" OFF)
|
||||||
option(WITH_ARTIFACTS "Build with embedded artifacts" OFF)
|
option(WITH_RAMDISK "Build with ramdisk" ON)
|
||||||
|
option(WITH_BINPACK "Build with binpack" ON)
|
||||||
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
|
# =========================
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
# BUILD REQUIREMENTS
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
if(LINUX AND WITH_STATIC)
|
||||||
|
if(NOT CROSS_HOST_TRIPLE MATCHES "musl" AND NOT CMAKE_C_COMPILER_TARGET MATCHES "musl" AND NOT CMAKE_C_COMPILER MATCHES "musl")
|
||||||
|
message(FATAL_ERROR "Static builds on Linux require a musl toolchain. Please specify a musl cross-compiler or set -DCROSS_HOST_TRIPLE=...-linux-musl")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MINGW AND NOT WITH_STATIC)
|
||||||
|
message(FATAL_ERROR "MinGW builds must be static. Please configure with -DWITH_STATIC=ON")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# SETUP
|
||||||
|
# =========================
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(DEPS_PREFIX /mingw64)
|
set(DEPS_PREFIX /mingw64)
|
||||||
elseif(CMAKE_SYSROOT)
|
elseif(CMAKE_SYSROOT)
|
||||||
set(DEPS_PREFIX "${CMAKE_SYSROOT}")
|
set(DEPS_PREFIX "${CMAKE_SYSROOT}/usr")
|
||||||
else()
|
else()
|
||||||
set(DEPS_PREFIX "${CMAKE_BINARY_DIR}/deps")
|
set(DEPS_PREFIX "${CMAKE_BINARY_DIR}/sysroot/usr/local")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(SYSROOT_FLAGS "")
|
||||||
|
if(CMAKE_SYSROOT)
|
||||||
|
set(SYSROOT_FLAGS "--sysroot=${CMAKE_SYSROOT}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(AUTOTOOLS_BUILD_TRIPLE "x86_64-linux-gnu")
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
|
# CMAKE DEPENDENCIES
|
||||||
|
# =========================
|
||||||
|
|
||||||
# wxWidgets
|
# wxWidgets
|
||||||
# =========================
|
|
||||||
if(WITH_GUI)
|
if(WITH_GUI)
|
||||||
if(WITH_STATIC)
|
if(WITH_STATIC)
|
||||||
set(wxBUILD_SHARED OFF CACHE BOOL "" FORCE)
|
set(wxBUILD_SHARED OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
wxWidgets
|
wxWidgets
|
||||||
GIT_REPOSITORY https://github.com/wxWidgets/wxWidgets.git
|
GIT_REPOSITORY https://github.com/wxWidgets/wxWidgets.git
|
||||||
GIT_SHALLOW ON
|
GIT_SHALLOW ON
|
||||||
)
|
)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(wxWidgets)
|
FetchContent_MakeAvailable(wxWidgets)
|
||||||
|
|
||||||
set(WX_LIBRARIES wxcore wxbase wxnet)
|
set(WX_LIBRARIES wxcore wxbase wxnet)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
find_package(wxWidgets REQUIRED COMPONENTS core base net)
|
find_package(wxWidgets REQUIRED COMPONENTS core base net)
|
||||||
include(${wxWidgets_USE_FILE})
|
include(${wxWidgets_USE_FILE})
|
||||||
@@ -47,40 +71,28 @@ if(WITH_GUI)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =========================
|
# nlohmann_json
|
||||||
# JSON
|
|
||||||
# =========================
|
|
||||||
|
|
||||||
include(FetchContent)
|
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
nlohmann_json
|
nlohmann_json
|
||||||
GIT_REPOSITORY https://github.com/nlohmann/json.git
|
GIT_REPOSITORY https://github.com/nlohmann/json.git
|
||||||
GIT_TAG v3.11.3
|
GIT_TAG v3.11.3
|
||||||
)
|
)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(nlohmann_json)
|
FetchContent_MakeAvailable(nlohmann_json)
|
||||||
|
|
||||||
# =========================
|
|
||||||
# LZ4
|
# LZ4
|
||||||
# =========================
|
|
||||||
|
|
||||||
include(FetchContent)
|
|
||||||
|
|
||||||
set(LZ4_BUILD_CLI OFF CACHE BOOL "" FORCE)
|
set(LZ4_BUILD_CLI OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
lz4
|
lz4
|
||||||
GIT_REPOSITORY https://github.com/lz4/lz4.git
|
GIT_REPOSITORY https://github.com/lz4/lz4.git
|
||||||
GIT_TAG v1.10.0
|
GIT_TAG v1.10.0
|
||||||
SOURCE_SUBDIR build/cmake
|
SOURCE_SUBDIR build/cmake
|
||||||
)
|
)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(lz4)
|
FetchContent_MakeAvailable(lz4)
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
# SOURCES
|
# TARGET
|
||||||
# =========================
|
# =========================
|
||||||
|
|
||||||
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS
|
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS
|
||||||
"src/*.cpp"
|
"src/*.cpp"
|
||||||
"src/*.c"
|
"src/*.c"
|
||||||
@@ -88,85 +100,88 @@ file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS
|
|||||||
"src/*.hpp"
|
"src/*.hpp"
|
||||||
)
|
)
|
||||||
|
|
||||||
# =========================
|
|
||||||
# TARGET
|
|
||||||
# =========================
|
|
||||||
if(APPLE AND WITH_GUI)
|
if(APPLE AND WITH_GUI)
|
||||||
set(APP_ICON ${CMAKE_CURRENT_SOURCE_DIR}/resources/palera1n.icns)
|
set(APP_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/palera1n.icns")
|
||||||
|
|
||||||
add_executable(palera1n MACOSX_BUNDLE ${SOURCES})
|
add_executable(palera1n MACOSX_BUNDLE ${SOURCES})
|
||||||
|
|
||||||
target_sources(palera1n PRIVATE ${APP_ICON})
|
target_sources(palera1n PRIVATE ${APP_ICON})
|
||||||
|
set_source_files_properties(${APP_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||||
set_source_files_properties(${APP_ICON} PROPERTIES
|
|
||||||
MACOSX_PACKAGE_LOCATION "Resources"
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(palera1n PROPERTIES
|
set_target_properties(palera1n PROPERTIES
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/Info.plist
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/resources/Info.plist"
|
||||||
MACOSX_BUNDLE_ICON_FILE palera1n.icns
|
MACOSX_BUNDLE_ICON_FILE palera1n.icns
|
||||||
)
|
)
|
||||||
elseif(MINGW AND WITH_GUI)
|
elseif(MINGW AND WITH_GUI)
|
||||||
set(APP_MANIFEST_RC ${CMAKE_SOURCE_DIR}/resources/app.rc)
|
set(APP_MANIFEST_RC "${CMAKE_SOURCE_DIR}/resources/app.rc")
|
||||||
add_executable(palera1n WIN32 ${SOURCES} ${APP_MANIFEST_RC})
|
add_executable(palera1n WIN32 ${SOURCES} ${APP_MANIFEST_RC})
|
||||||
else()
|
else()
|
||||||
add_executable(palera1n ${SOURCES})
|
add_executable(palera1n ${SOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${DEPS_PREFIX}/include)
|
target_include_directories(palera1n PRIVATE "${DEPS_PREFIX}/include")
|
||||||
link_directories(${DEPS_PREFIX}/lib)
|
target_link_directories(palera1n PRIVATE "${DEPS_PREFIX}/lib")
|
||||||
|
target_link_libraries(palera1n PRIVATE nlohmann_json::nlohmann_json lz4_static)
|
||||||
|
|
||||||
# =========================
|
if(WITH_RAMDISK)
|
||||||
# APPLE FRAMEWORKS
|
target_compile_definitions(palera1n PRIVATE WITH_RAMDISK)
|
||||||
# =========================
|
endif()
|
||||||
if(APPLE)
|
if(WITH_BINPACK)
|
||||||
find_library(IOKIT IOKit)
|
target_compile_definitions(palera1n PRIVATE WITH_BINPACK)
|
||||||
find_library(COREFOUNDATION CoreFoundation)
|
|
||||||
|
|
||||||
target_link_libraries(palera1n PRIVATE
|
|
||||||
${IOKIT}
|
|
||||||
${COREFOUNDATION}
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =========================
|
|
||||||
# wxWidgets
|
|
||||||
# =========================
|
|
||||||
if(WITH_GUI)
|
if(WITH_GUI)
|
||||||
target_link_libraries(palera1n PRIVATE ${WX_LIBRARIES})
|
target_link_libraries(palera1n PRIVATE ${WX_LIBRARIES})
|
||||||
target_compile_definitions(palera1n PRIVATE WITH_GUI)
|
target_compile_definitions(palera1n PRIVATE WITH_GUI)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TUI)
|
if(WITH_TUI)
|
||||||
target_compile_definitions(palera1n PRIVATE WITH_TUI)
|
target_compile_definitions(palera1n PRIVATE WITH_TUI)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_ARTIFACTS)
|
# =========================
|
||||||
target_compile_definitions(palera1n PRIVATE WITH_ARTIFACTS)
|
# APPLE FRAMEWORKS
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
find_library(IOKIT IOKit)
|
||||||
|
find_library(COREFOUNDATION CoreFoundation)
|
||||||
|
find_library(SECURITY Security)
|
||||||
|
target_link_libraries(palera1n PRIVATE ${IOKIT} ${COREFOUNDATION} ${SECURITY})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(palera1n PRIVATE nlohmann_json::nlohmann_json)
|
|
||||||
target_link_libraries(palera1n PRIVATE lz4_static)
|
|
||||||
|
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
# libimobiledevice
|
# NON-CMAKE DEPENDENCIES
|
||||||
# =========================
|
# =========================
|
||||||
|
|
||||||
if(WITH_STATIC)
|
if(WITH_STATIC)
|
||||||
include(ExternalProject)
|
|
||||||
|
|
||||||
find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config)
|
find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config)
|
||||||
|
|
||||||
|
set(BASE_CFLAGS "-g -I${DEPS_PREFIX}/include -L${DEPS_PREFIX}/lib")
|
||||||
|
set(BASE_LDFLAGS "-g -L${DEPS_PREFIX}/lib")
|
||||||
|
|
||||||
|
if(LINUX)
|
||||||
|
set(PLATFORM_CFLAGS "-fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64")
|
||||||
|
set(PLATFORM_LDFLAGS "-Wl,--gc-sections -fdata-sections -ffunction-sections")
|
||||||
|
elseif(APPLE)
|
||||||
|
set(PLATFORM_CFLAGS "")
|
||||||
|
set(PLATFORM_LDFLAGS "-Wl,-dead_strip")
|
||||||
|
else()
|
||||||
|
set(PLATFORM_CFLAGS "")
|
||||||
|
set(PLATFORM_LDFLAGS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(SYSROOT_ENV_FLAG "")
|
||||||
|
if(CMAKE_SYSROOT)
|
||||||
|
set(SYSROOT_ENV_FLAG "--sysroot=${CMAKE_SYSROOT}")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(PKG_ENV
|
set(PKG_ENV
|
||||||
env
|
env
|
||||||
|
"CC=${CMAKE_C_COMPILER}"
|
||||||
|
"CXX=${CMAKE_CXX_COMPILER}"
|
||||||
PKG_CONFIG=${PKG_CONFIG_EXECUTABLE}
|
PKG_CONFIG=${PKG_CONFIG_EXECUTABLE}
|
||||||
PKG_CONFIG_PATH=${DEPS_PREFIX}/lib/pkgconfig:${DEPS_PREFIX}/share/pkgconfig
|
PKG_CONFIG_PATH=${DEPS_PREFIX}/lib/pkgconfig:${DEPS_PREFIX}/share/pkgconfig
|
||||||
PKG_CONFIG_LIBDIR=${DEPS_PREFIX}/lib/pkgconfig:${DEPS_PREFIX}/share/pkgconfig
|
PKG_CONFIG_LIBDIR=${DEPS_PREFIX}/lib/pkgconfig:${DEPS_PREFIX}/share/pkgconfig
|
||||||
PKG_CONFIG_PATH_CUSTOM=${DEPS_PREFIX}/lib/pkgconfig:${DEPS_PREFIX}/share/pkgconfig
|
|
||||||
|
|
||||||
|
CFLAGS=${BASE_CFLAGS}\ ${PLATFORM_CFLAGS}\ ${SYSROOT_ENV_FLAG}
|
||||||
CPPFLAGS=-I${DEPS_PREFIX}/include
|
CPPFLAGS=-I${DEPS_PREFIX}/include
|
||||||
LDFLAGS=-L${DEPS_PREFIX}/lib
|
LDFLAGS=${BASE_LDFLAGS}\ ${PLATFORM_LDFLAGS}\ ${SYSROOT_ENV_FLAG}
|
||||||
|
|
||||||
C_INCLUDE_PATH=${DEPS_PREFIX}/include
|
C_INCLUDE_PATH=${DEPS_PREFIX}/include
|
||||||
CPLUS_INCLUDE_PATH=${DEPS_PREFIX}/include
|
CPLUS_INCLUDE_PATH=${DEPS_PREFIX}/include
|
||||||
@@ -174,36 +189,30 @@ if(WITH_STATIC)
|
|||||||
mbedtls_INCLUDES=${DEPS_PREFIX}/include
|
mbedtls_INCLUDES=${DEPS_PREFIX}/include
|
||||||
mbedtls_LIBDIR=${DEPS_PREFIX}/lib
|
mbedtls_LIBDIR=${DEPS_PREFIX}/lib
|
||||||
mbedtls_LIBS=-lmbedtls\ -lmbedx509\ -lmbedcrypto
|
mbedtls_LIBS=-lmbedtls\ -lmbedx509\ -lmbedcrypto
|
||||||
|
|
||||||
|
lt_cv_deplibs_check_method=pass_all
|
||||||
|
lt_cv_file_magic_cmd=/usr/bin/file
|
||||||
|
cross_compiling=yes
|
||||||
)
|
)
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(IMD_AUTOTOOLS_ARGS
|
set(IMD_AUTOTOOLS_ARGS --disable-static --enable-shared)
|
||||||
--disable-static
|
|
||||||
--enable-shared
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
set(IMD_AUTOTOOLS_ARGS
|
set(IMD_AUTOTOOLS_ARGS --enable-static --disable-shared)
|
||||||
--enable-static
|
if(CROSS_HOST_TRIPLE)
|
||||||
--disable-shared
|
list(APPEND IMD_AUTOTOOLS_ARGS "--host=${CROSS_HOST_TRIPLE}" "--build=${AUTOTOOLS_BUILD_TRIPLE}")
|
||||||
)
|
endif()
|
||||||
set(MBEDUTILS_ARGS
|
set(MBEDUTILS_ARGS --with-mbedtls)
|
||||||
--with-mbedtls
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
#=========================
|
|
||||||
# libwdi
|
|
||||||
#=========================
|
|
||||||
ExternalProject_Add(libwdi_ep
|
ExternalProject_Add(libwdi_ep
|
||||||
GIT_REPOSITORY https://github.com/pbatard/libwdi.git
|
GIT_REPOSITORY https://github.com/pbatard/libwdi.git
|
||||||
GIT_TAG v1.5.1
|
GIT_TAG v1.5.1
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh -lc "./bootstrap.sh && ./configure --prefix=${DEPS_PREFIX} --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-32bit --with-wdfver=1011 --with-libusbk=${CMAKE_SOURCE_DIR}/libusbK/bin"
|
sh -lc "./bootstrap.sh && ./configure --prefix=${DEPS_PREFIX} --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-32bit --with-wdfver=1011 --with-libusbk=${CMAKE_SOURCE_DIR}/libusbK/bin"
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
@@ -211,220 +220,158 @@ if(WITH_STATIC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT MINGW)
|
if(NOT MINGW)
|
||||||
# =========================
|
# theres an issue with we cant build with amd or something
|
||||||
# mbedTLS
|
set(MBEDTLS_PATCH_STEPS PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/patches/mbedtls/0001-Allow-empty-x509-cert-issuer.patch)
|
||||||
# =========================
|
if(CROSS_HOST_TRIPLE MATCHES "i486-linux-musl")
|
||||||
|
list(APPEND MBEDTLS_PATCH_STEPS COMMAND sed -i "/define MBEDTLS_AESNI_C/d" include/mbedtls/mbedtls_config.h)
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(mbedtls_ep
|
ExternalProject_Add(mbedtls_ep
|
||||||
GIT_REPOSITORY https://github.com/Mbed-TLS/mbedtls.git
|
GIT_REPOSITORY https://github.com/Mbed-TLS/mbedtls.git
|
||||||
GIT_TAG mbedtls-3.5.2
|
GIT_TAG mbedtls-3.5.2
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
${MBEDTLS_PATCH_STEPS}
|
||||||
PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/patches/mbedtls/0001-Allow-empty-x509-cert-issuer.patch
|
|
||||||
|
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DCMAKE_INSTALL_PREFIX=${DEPS_PREFIX}
|
-DCMAKE_INSTALL_PREFIX=${DEPS_PREFIX}
|
||||||
|
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
|
-DCMAKE_SYSROOT=${CMAKE_SYSROOT}
|
||||||
-DENABLE_TESTING=OFF
|
-DENABLE_TESTING=OFF
|
||||||
-DENABLE_PROGRAMS=OFF
|
-DENABLE_PROGRAMS=OFF
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
-DENABLE_ASSEMBLY=OFF
|
||||||
INSTALL_DIR ${DEPS_PREFIX}
|
INSTALL_DIR ${DEPS_PREFIX}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LINUX OR MINGW)
|
if(LINUX OR MINGW)
|
||||||
# =========================
|
|
||||||
# libusb
|
|
||||||
# =========================
|
|
||||||
ExternalProject_Add(libusb_ep
|
ExternalProject_Add(libusb_ep
|
||||||
GIT_REPOSITORY https://github.com/libusb/libusb.git
|
GIT_REPOSITORY https://github.com/libusb/libusb.git
|
||||||
GIT_TAG v1.0.27
|
GIT_TAG v1.0.27
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} --disable-udev ${IMD_AUTOTOOLS_ARGS}
|
||||||
-l
|
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
--disable-udev
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(LINUX)
|
||||||
|
ExternalProject_Add(ncurses_ep
|
||||||
|
URL https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.4.tar.gz
|
||||||
|
CONFIGURE_COMMAND
|
||||||
|
${PKG_ENV}
|
||||||
|
sh -l <SOURCE_DIR>/configure --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS} --disable-stripping
|
||||||
|
BUILD_COMMAND make -j
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
INSTALL_COMMAND make install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
ExternalProject_Add(readline_ep
|
ExternalProject_Add(readline_ep
|
||||||
URL https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz
|
URL https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l <SOURCE_DIR>/configure --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS}
|
||||||
-l
|
|
||||||
<SOURCE_DIR>/configure
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
DEPENDS ncurses_ep
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =========================
|
|
||||||
# libplist
|
|
||||||
# =========================
|
|
||||||
ExternalProject_Add(libplist_ep
|
ExternalProject_Add(libplist_ep
|
||||||
GIT_REPOSITORY https://github.com/libimobiledevice/libplist.git
|
GIT_REPOSITORY https://github.com/libimobiledevice/libplist.git
|
||||||
GIT_TAG 2117b8fdb6b4096455bd2041a63e59a028120136
|
GIT_TAG 2117b8fdb6b4096455bd2041a63e59a028120136
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS}
|
||||||
-l
|
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
)
|
)
|
||||||
|
|
||||||
# =========================
|
|
||||||
# libimobiledevice-glue
|
|
||||||
# =========================
|
|
||||||
ExternalProject_Add(limd_glue_ep
|
ExternalProject_Add(limd_glue_ep
|
||||||
GIT_REPOSITORY https://github.com/libimobiledevice/libimobiledevice-glue.git
|
GIT_REPOSITORY https://github.com/libimobiledevice/libimobiledevice-glue.git
|
||||||
GIT_TAG 362f7848ac89b74d9dd113b38b51ecb601f76094
|
GIT_TAG 362f7848ac89b74d9dd113b38b51ecb601f76094
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS}
|
||||||
-l
|
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
|
|
||||||
DEPENDS libplist_ep
|
DEPENDS libplist_ep
|
||||||
)
|
)
|
||||||
|
|
||||||
# =========================
|
|
||||||
# libusbmuxd
|
|
||||||
# =========================
|
|
||||||
ExternalProject_Add(libusbmuxd_ep
|
ExternalProject_Add(libusbmuxd_ep
|
||||||
GIT_REPOSITORY https://github.com/libimobiledevice/libusbmuxd.git
|
GIT_REPOSITORY https://github.com/libimobiledevice/libusbmuxd.git
|
||||||
GIT_TAG a7f0543fb1ecb20ac7121c0fd77297200e0e43fc
|
GIT_TAG a7f0543fb1ecb20ac7121c0fd77297200e0e43fc
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS} --without-systemd
|
||||||
-l
|
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
--without-systemd
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
|
|
||||||
DEPENDS libplist_ep limd_glue_ep
|
DEPENDS libplist_ep limd_glue_ep
|
||||||
)
|
)
|
||||||
|
|
||||||
# =========================
|
set(LIBIMOBILEDEVICE_DEPS libplist_ep libusbmuxd_ep limd_glue_ep)
|
||||||
# libimobiledevice
|
|
||||||
# =========================
|
|
||||||
|
|
||||||
set(LIBIMOBILEDEVICE_DEPS
|
|
||||||
libplist_ep
|
|
||||||
libusbmuxd_ep
|
|
||||||
limd_glue_ep
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT MINGW)
|
if(NOT MINGW)
|
||||||
list(APPEND LIBIMOBILEDEVICE_DEPS mbedtls_ep)
|
list(APPEND LIBIMOBILEDEVICE_DEPS mbedtls_ep)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LINUX OR MINGW)
|
if(LINUX OR MINGW)
|
||||||
list(APPEND LIBIMOBILEDEVICE_DEPS libusb_ep)
|
list(APPEND LIBIMOBILEDEVICE_DEPS libusb_ep)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
set(READLINE_DEPS readline_ep)
|
list(APPEND LIBIMOBILEDEVICE_DEPS readline_ep)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(libimobiledevice_ep
|
ExternalProject_Add(libimobiledevice_ep
|
||||||
GIT_REPOSITORY https://github.com/libimobiledevice/libimobiledevice.git
|
GIT_REPOSITORY https://github.com/libimobiledevice/libimobiledevice.git
|
||||||
GIT_TAG ed0d66d0341562731bb19928dfe48155509fa7a7
|
GIT_TAG ed0d66d0341562731bb19928dfe48155509fa7a7
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
PATCH_COMMAND patch -p1 < "${CMAKE_SOURCE_DIR}/patches/libimobiledevice/0001-include-windows-header.patch"
|
||||||
PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/patches/libimobiledevice/0001-include-windows-header.patch
|
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} ${MBEDUTILS_ARGS} ${IMD_AUTOTOOLS_ARGS} --disable-wireless-pairing
|
||||||
-l
|
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${MBEDUTILS_ARGS}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
--disable-wireless-pairing
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
|
DEPENDS ${LIBIMOBILEDEVICE_DEPS}
|
||||||
DEPENDS ${LIBIMOBILEDEVICE_DEPS} ${READLINE_DEPS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
file(WRITE
|
# to compile libimobiledevice appropriately we patch out the automake generated makefile
|
||||||
${CMAKE_BINARY_DIR}/fix_tools_makefile.cmake
|
# so tools just dont build at all... theres some issue there thats not worth fixing here
|
||||||
"
|
file(WRITE "${CMAKE_BINARY_DIR}/fix_tools_makefile.cmake"
|
||||||
file(WRITE \"${CMAKE_BINARY_DIR}/libimobiledevice_ep-prefix/src/libimobiledevice_ep/tools/Makefile\" \"all:\\ninstall:\\n\")
|
"file(WRITE \"${CMAKE_BINARY_DIR}/libimobiledevice_ep-prefix/src/libimobiledevice_ep/tools/Makefile\" \"all:\\ninstall:\\n\")\n"
|
||||||
")
|
)
|
||||||
|
|
||||||
ExternalProject_Add_Step(libimobiledevice_ep fix_tools_makefile
|
ExternalProject_Add_Step(libimobiledevice_ep fix_tools_makefile
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/fix_tools_makefile.cmake
|
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR}/fix_tools_makefile.cmake"
|
||||||
DEPENDEES configure
|
DEPENDEES configure
|
||||||
DEPENDERS build
|
DEPENDERS build
|
||||||
)
|
)
|
||||||
|
|
||||||
# =========================
|
|
||||||
# libirecovery
|
|
||||||
# =========================
|
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
set(LIBIRECOVERY_LIBS
|
set(LIBIRECOVERY_LIBS LIBS=-lncurses)
|
||||||
LIBS="-lncurses"
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(libirecovery_ep
|
ExternalProject_Add(libirecovery_ep
|
||||||
GIT_REPOSITORY https://github.com/libimobiledevice/libirecovery.git
|
GIT_REPOSITORY https://github.com/libimobiledevice/libirecovery.git
|
||||||
GIT_TAG 7ce02c347b7c26e59498e6af31c9da51018d0fa1
|
GIT_TAG 7ce02c347b7c26e59498e6af31c9da51018d0fa1
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
|
||||||
CONFIGURE_COMMAND
|
CONFIGURE_COMMAND
|
||||||
${PKG_ENV}
|
${PKG_ENV}
|
||||||
sh
|
sh -l ./autogen.sh --prefix=${DEPS_PREFIX} ${IMD_AUTOTOOLS_ARGS} ${LIBIRECOVERY_LIBS}
|
||||||
-l
|
BUILD_COMMAND make -j
|
||||||
./autogen.sh
|
|
||||||
--prefix=${DEPS_PREFIX}
|
|
||||||
${IMD_AUTOTOOLS_ARGS}
|
|
||||||
|
|
||||||
BUILD_COMMAND make -j ${LIBIRECOVERY_LIBS}
|
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
|
DEPENDS ${LIBIMOBILEDEVICE_DEPS}
|
||||||
DEPENDS libplist_ep libusbmuxd_ep limd_glue_ep ${READLINE_DEPS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(palera1n
|
add_dependencies(palera1n
|
||||||
@@ -445,22 +392,6 @@ if(WITH_STATIC)
|
|||||||
add_dependencies(palera1n readline_ep)
|
add_dependencies(palera1n readline_ep)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(palera1n PRIVATE
|
|
||||||
${DEPS_PREFIX}/include
|
|
||||||
)
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_library(IOKIT IOKit)
|
|
||||||
find_library(COREFOUNDATION CoreFoundation)
|
|
||||||
find_library(SECURITY Security)
|
|
||||||
|
|
||||||
target_link_libraries(palera1n PRIVATE
|
|
||||||
${IOKIT}
|
|
||||||
${COREFOUNDATION}
|
|
||||||
${SECURITY}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
target_link_libraries(palera1n PRIVATE
|
target_link_libraries(palera1n PRIVATE
|
||||||
imobiledevice-1.0
|
imobiledevice-1.0
|
||||||
@@ -493,6 +424,7 @@ if(WITH_STATIC)
|
|||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# all dlls must be in the same directory as the executable
|
||||||
foreach(DLL ${DLLS})
|
foreach(DLL ${DLLS})
|
||||||
add_custom_command(TARGET palera1n POST_BUILD
|
add_custom_command(TARGET palera1n POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
@@ -502,21 +434,31 @@ if(WITH_STATIC)
|
|||||||
endforeach()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
target_link_libraries(palera1n PRIVATE
|
target_link_libraries(palera1n PRIVATE
|
||||||
${DEPS_PREFIX}/lib/libimobiledevice-1.0.a
|
"${DEPS_PREFIX}/lib/libimobiledevice-1.0.a"
|
||||||
${DEPS_PREFIX}/lib/libirecovery-1.0.a
|
"${DEPS_PREFIX}/lib/libirecovery-1.0.a"
|
||||||
${DEPS_PREFIX}/lib/libusbmuxd-2.0.a
|
"${DEPS_PREFIX}/lib/libusbmuxd-2.0.a"
|
||||||
${DEPS_PREFIX}/lib/libplist-2.0.a
|
"${DEPS_PREFIX}/lib/libplist-2.0.a"
|
||||||
${DEPS_PREFIX}/lib/libimobiledevice-glue-1.0.a
|
"${DEPS_PREFIX}/lib/libimobiledevice-glue-1.0.a"
|
||||||
${DEPS_PREFIX}/lib/libmbedtls.a
|
"${DEPS_PREFIX}/lib/libmbedtls.a"
|
||||||
${DEPS_PREFIX}/lib/libmbedx509.a
|
"${DEPS_PREFIX}/lib/libmbedx509.a"
|
||||||
${DEPS_PREFIX}/lib/libmbedcrypto.a
|
"${DEPS_PREFIX}/lib/libmbedcrypto.a"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
|
target_compile_options(palera1n PRIVATE "-static")
|
||||||
|
target_link_options(palera1n PRIVATE "-static")
|
||||||
|
|
||||||
target_link_libraries(palera1n PRIVATE
|
target_link_libraries(palera1n PRIVATE
|
||||||
${DEPS_PREFIX}/lib/libusb-1.0.a
|
"${DEPS_PREFIX}/lib/libusb-1.0.a"
|
||||||
${DEPS_PREFIX}/lib/libreadline.a
|
"${DEPS_PREFIX}/lib/libreadline.a"
|
||||||
|
"${DEPS_PREFIX}/lib/libncurses.a"
|
||||||
)
|
)
|
||||||
|
elseif(APPLE)
|
||||||
|
if(WITH_TUI)
|
||||||
|
find_package(Curses REQUIRED)
|
||||||
|
target_include_directories(palera1n PRIVATE ${CURSES_INCLUDE_DIRS})
|
||||||
|
target_link_libraries(palera1n PRIVATE ${CURSES_LIBRARIES})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
@@ -526,14 +468,12 @@ else()
|
|||||||
pkg_check_modules(IRECOVERY REQUIRED libirecovery-1.0)
|
pkg_check_modules(IRECOVERY REQUIRED libirecovery-1.0)
|
||||||
pkg_check_modules(PLIST REQUIRED libplist-2.0)
|
pkg_check_modules(PLIST REQUIRED libplist-2.0)
|
||||||
pkg_check_modules(USBMUXD REQUIRED libusbmuxd-2.0)
|
pkg_check_modules(USBMUXD REQUIRED libusbmuxd-2.0)
|
||||||
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
|
|
||||||
|
|
||||||
target_include_directories(palera1n PRIVATE
|
target_include_directories(palera1n PRIVATE
|
||||||
${IMD_INCLUDE_DIRS}
|
${IMD_INCLUDE_DIRS}
|
||||||
${IRECOVERY_INCLUDE_DIRS}
|
${IRECOVERY_INCLUDE_DIRS}
|
||||||
${PLIST_INCLUDE_DIRS}
|
${PLIST_INCLUDE_DIRS}
|
||||||
${USBMUXD_INCLUDE_DIRS}
|
${USBMUXD_INCLUDE_DIRS}
|
||||||
${LIBUSB_INCLUDE_DIRS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(palera1n PRIVATE
|
target_link_libraries(palera1n PRIVATE
|
||||||
@@ -541,7 +481,6 @@ else()
|
|||||||
${IRECOVERY_LIBRARIES}
|
${IRECOVERY_LIBRARIES}
|
||||||
${PLIST_LIBRARIES}
|
${PLIST_LIBRARIES}
|
||||||
${USBMUXD_LIBRARIES}
|
${USBMUXD_LIBRARIES}
|
||||||
${LIBUSB_LIBRARIES}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_options(palera1n PRIVATE
|
target_compile_options(palera1n PRIVATE
|
||||||
@@ -549,7 +488,16 @@ else()
|
|||||||
${IRECOVERY_CFLAGS_OTHER}
|
${IRECOVERY_CFLAGS_OTHER}
|
||||||
${PLIST_CFLAGS_OTHER}
|
${PLIST_CFLAGS_OTHER}
|
||||||
${USBMUXD_CFLAGS_OTHER}
|
${USBMUXD_CFLAGS_OTHER}
|
||||||
${LIBUSB_CFLAGS_OTHER}
|
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
|
find_package(Curses REQUIRED)
|
||||||
|
target_include_directories(palera1n PRIVATE ${CURSES_INCLUDE_DIRS})
|
||||||
|
target_link_libraries(palera1n PRIVATE ${CURSES_LIBRARIES})
|
||||||
|
|
||||||
|
if(NOT APPLE)
|
||||||
|
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
|
||||||
|
target_include_directories(palera1n PRIVATE ${LIBUSB_INCLUDE_DIRS})
|
||||||
|
target_link_libraries(palera1n PRIVATE ${LIBUSB_LIBRARIES})
|
||||||
|
target_compile_options(palera1n PRIVATE ${LIBUSB_CFLAGS_OTHER})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
@@ -1,11 +1,19 @@
|
|||||||
.PHONY: payloads palera1n palera1n_xcode clean
|
.PHONY: payloads palera1n palera1n_xcode palera1n_mingw clean
|
||||||
|
|
||||||
WITH_GUI ?= 0
|
WITH_GUI ?= 0
|
||||||
WITH_TUI ?= 0
|
WITH_TUI ?= 0
|
||||||
WITH_ARTIFACTS ?= 1
|
WITH_RAMDISK ?= 1
|
||||||
|
WITH_BINPACK ?= 1
|
||||||
WITH_STATIC ?= 0
|
WITH_STATIC ?= 0
|
||||||
BUILD_TYPE ?= Debug
|
BUILD_TYPE ?= Debug
|
||||||
CMAKE_SYSROOT ?=
|
CMAKE_SYSROOT ?=
|
||||||
|
CROSS_HOST_TRIPLE ?=
|
||||||
|
JOBS ?=
|
||||||
|
|
||||||
|
BUILD_ARGS :=
|
||||||
|
ifneq ($(strip $(JOBS)),)
|
||||||
|
BUILD_ARGS += --parallel $(JOBS)
|
||||||
|
endif
|
||||||
|
|
||||||
payloads:
|
payloads:
|
||||||
mkdir -p src/gen/images
|
mkdir -p src/gen/images
|
||||||
@@ -36,33 +44,39 @@ payloads:
|
|||||||
palera1n: payloads
|
palera1n: payloads
|
||||||
@cmake -S . -B build \
|
@cmake -S . -B build \
|
||||||
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
||||||
|
-DCROSS_HOST_TRIPLE="$(CROSS_HOST_TRIPLE)" \
|
||||||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
||||||
-DWITH_GUI=$(WITH_GUI) \
|
-DWITH_GUI=$(WITH_GUI) \
|
||||||
-DWITH_TUI=$(WITH_TUI) \
|
-DWITH_TUI=$(WITH_TUI) \
|
||||||
-DWITH_ARTIFACTS=$(WITH_ARTIFACTS) \
|
-DWITH_RAMDISK=$(WITH_RAMDISK) \
|
||||||
|
-DWITH_BINPACK=$(WITH_BINPACK) \
|
||||||
-DWITH_STATIC=$(WITH_STATIC) && \
|
-DWITH_STATIC=$(WITH_STATIC) && \
|
||||||
cmake --build build
|
cmake --build build $(BUILD_ARGS)
|
||||||
|
|
||||||
palera1n_xcode: payloads
|
palera1n_xcode: payloads
|
||||||
@cmake -S . -B build \
|
@cmake -S . -B build \
|
||||||
-G Xcode \
|
-G Xcode \
|
||||||
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
||||||
|
-DCROSS_HOST_TRIPLE="$(CROSS_HOST_TRIPLE)" \
|
||||||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
||||||
-DWITH_GUI=$(WITH_GUI) \
|
-DWITH_GUI=$(WITH_GUI) \
|
||||||
-DWITH_TUI=$(WITH_TUI) \
|
-DWITH_TUI=$(WITH_TUI) \
|
||||||
-DWITH_ARTIFACTS=$(WITH_ARTIFACTS) \
|
-DWITH_RAMDISK=$(WITH_RAMDISK) \
|
||||||
|
-DWITH_BINPACK=$(WITH_BINPACK) \
|
||||||
-DWITH_STATIC=$(WITH_STATIC)
|
-DWITH_STATIC=$(WITH_STATIC)
|
||||||
|
|
||||||
palera1n_mingw: payloads
|
palera1n_mingw: payloads
|
||||||
@cmake -S . -B build \
|
@cmake -S . -B build \
|
||||||
-G "MinGW Makefiles" \
|
-G "MinGW Makefiles" \
|
||||||
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
-DCMAKE_SYSROOT="$(CMAKE_SYSROOT)" \
|
||||||
|
-DCROSS_HOST_TRIPLE="$(CROSS_HOST_TRIPLE)" \
|
||||||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
||||||
-DWITH_GUI=$(WITH_GUI) \
|
-DWITH_GUI=$(WITH_GUI) \
|
||||||
-DWITH_TUI=$(WITH_TUI) \
|
-DWITH_TUI=$(WITH_TUI) \
|
||||||
-DWITH_ARTIFACTS=$(WITH_ARTIFACTS) \
|
-DWITH_RAMDISK=$(WITH_RAMDISK) \
|
||||||
|
-DWITH_BINPACK=$(WITH_BINPACK) \
|
||||||
-DWITH_STATIC=$(WITH_STATIC) && \
|
-DWITH_STATIC=$(WITH_STATIC) && \
|
||||||
cmake --build build
|
cmake --build build $(BUILD_ARGS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -rf build
|
@rm -rf build src/gen
|
||||||
Reference in new issue
Block a user