1
0
mirror of synced 2025-02-21 12:29:47 +01:00

build: Various build improvements (#1193)

This commit is contained in:
Nik 2023-07-15 00:10:01 +02:00 committed by GitHub
parent 1aed960a38
commit aae3004f1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 18 additions and 31 deletions

View File

@ -203,7 +203,6 @@ jobs:
OBJC=$(brew --prefix llvm)/bin/clang \ OBJC=$(brew --prefix llvm)/bin/clang \
OBJCXX=$(brew --prefix llvm)/bin/clang++ \ OBJCXX=$(brew --prefix llvm)/bin/clang++ \
PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \
MACOSX_DEPLOYMENT_TARGET="10.10" \
cmake -G "Ninja" \ cmake -G "Ninja" \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DCREATE_BUNDLE=ON \ -DCREATE_BUNDLE=ON \
@ -216,7 +215,6 @@ jobs:
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" \
-DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \ -DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \
.. ..
ninja package ninja package
@ -437,7 +435,6 @@ jobs:
-DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DUSE_SYSTEM_CURL=ON \
-DUSE_SYSTEM_FMT=ON \ -DUSE_SYSTEM_FMT=ON \
-DUSE_SYSTEM_YARA=ON \ -DUSE_SYSTEM_YARA=ON \
-DUSE_SYSTEM_NLOHMANN_JSON=ON \ -DUSE_SYSTEM_NLOHMANN_JSON=ON \

6
.gitmodules vendored
View File

@ -14,10 +14,6 @@
path = lib/external/fmt path = lib/external/fmt
url = https://github.com/fmtlib/fmt url = https://github.com/fmtlib/fmt
ignore = dirty ignore = dirty
[submodule "lib/external/curl"]
path = lib/external/curl
url = https://github.com/curl/curl
ignore = dirty
[submodule "lib/external/capstone"] [submodule "lib/external/capstone"]
path = lib/external/capstone path = lib/external/capstone
url = https://github.com/capstone-engine/capstone url = https://github.com/capstone-engine/capstone
@ -31,4 +27,4 @@
url = https://github.com/WerWolv/PatternLanguage url = https://github.com/WerWolv/PatternLanguage
[submodule "lib/external/libwolv"] [submodule "lib/external/libwolv"]
path = lib/external/libwolv path = lib/external/libwolv
url = https://github.com/WerWolv/libwolv url = https://github.com/WerWolv/libwolv

View File

@ -19,7 +19,6 @@
"CMAKE_CXX_COMPILER": "g++", "CMAKE_CXX_COMPILER": "g++",
"IMHEX_PATTERNS_PULL_MASTER": "ON", "IMHEX_PATTERNS_PULL_MASTER": "ON",
"CMAKE_INSTALL_PREFIX": "./install", "CMAKE_INSTALL_PREFIX": "./install",
"USE_SYSTEM_CURL": "ON",
"USE_SYSTEM_CAPSTONE": "ON", "USE_SYSTEM_CAPSTONE": "ON",
"IMHEX_USE_DEFAULT_BUILD_SETTINGS": "ON" "IMHEX_USE_DEFAULT_BUILD_SETTINGS": "ON"
} }

View File

@ -145,7 +145,14 @@ For format patterns, libraries, magic and constant files, check out the [ImHex-P
To use ImHex, the following minimal system requirements need to be met: To use ImHex, the following minimal system requirements need to be met:
- **OS**: Windows 7 or higher, macOS 10.15 (Catalina) or higher, "Modern" Linux (Ubuntu 22.04, Fedora 36/37, RHEL/AlmaLinux 9, and Arch Linux have official packages, other and older distributions can use the AppImage) - **OS**:
- **Windows**: Windows 7 or higher (Windows 10/11 recommended)
- **macOS**: macOS 11 (Big Sur) or higher,
- **Linux**: "Modern" Linux. The following distributions have official releases available. Other distros are supported through the AppImage and Flatpak releases.
- Ubuntu 22.04/23.04
- Fedora 36/37
- RHEL/AlmaLinux 9
- Arch Linux
- **CPU**: x86_64 (64 Bit) - **CPU**: x86_64 (64 Bit)
- **GPU**: OpenGL 3.0 or higher - **GPU**: OpenGL 3.0 or higher
- Intel HD drivers are really buggy and often cause graphic artifacts - Intel HD drivers are really buggy and often cause graphic artifacts

View File

@ -47,10 +47,6 @@ macro(detectOS)
set(CMAKE_INSTALL_BINDIR ".") set(CMAKE_INSTALL_BINDIR ".")
set(CMAKE_INSTALL_LIBDIR ".") set(CMAKE_INSTALL_LIBDIR ".")
set(PLUGINS_INSTALL_LOCATION "plugins") set(PLUGINS_INSTALL_LOCATION "plugins")
if (NOT USE_SYSTEM_CURL)
SET(IMHEX_USE_BUNDLED_CA ON)
endif ()
elseif (APPLE) elseif (APPLE)
add_compile_definitions(OS_MACOS) add_compile_definitions(OS_MACOS)
set(CMAKE_INSTALL_BINDIR ".") set(CMAKE_INSTALL_BINDIR ".")
@ -479,8 +475,6 @@ macro(addBundledLibraries)
set_property(TARGET libwolv-net PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET libwolv-net PROPERTY POSITION_INDEPENDENT_CODE ON)
set(XDGPP_INCLUDE_DIRS "${EXTERN_LIBS_FOLDER}/xdgpp") set(XDGPP_INCLUDE_DIRS "${EXTERN_LIBS_FOLDER}/xdgpp")
set(CURL_USE_MBEDTLS ON)
set(BUILD_CURL_EXE OFF)
set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "") set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "")
if(NOT USE_SYSTEM_FMT) if(NOT USE_SYSTEM_FMT)
@ -515,15 +509,8 @@ macro(addBundledLibraries)
set(NLOHMANN_JSON_LIBRARIES nlohmann_json::nlohmann_json) set(NLOHMANN_JSON_LIBRARIES nlohmann_json::nlohmann_json)
endif() endif()
if(NOT USE_SYSTEM_CURL) find_package(PkgConfig REQUIRED)
add_subdirectory(${EXTERN_LIBS_FOLDER}/curl EXCLUDE_FROM_ALL) pkg_check_modules(LIBCURL REQUIRED IMPORTED_TARGET libcurl>=7.60.0)
set_target_properties(libcurl PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_compile_options(libcurl PRIVATE -Wno-deprecated-declarations)
set(LIBCURL_LIBRARIES libcurl)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBCURL REQUIRED IMPORTED_TARGET libcurl>=7.76.1)
endif()
if (NOT USE_SYSTEM_LLVM) if (NOT USE_SYSTEM_LLVM)
add_subdirectory(${EXTERN_LIBS_FOLDER}/llvm-demangle EXCLUDE_FROM_ALL) add_subdirectory(${EXTERN_LIBS_FOLDER}/llvm-demangle EXCLUDE_FROM_ALL)
@ -567,7 +554,7 @@ macro(addBundledLibraries)
add_subdirectory(${EXTERN_LIBS_FOLDER}/pattern_language EXCLUDE_FROM_ALL) add_subdirectory(${EXTERN_LIBS_FOLDER}/pattern_language EXCLUDE_FROM_ALL)
set_target_properties(libpl PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(libpl PROPERTIES POSITION_INDEPENDENT_CODE ON)
find_package(mbedTLS 2.26.0 REQUIRED) find_package(mbedTLS 3.4.0 REQUIRED)
pkg_search_module(MAGIC libmagic>=5.39) pkg_search_module(MAGIC libmagic>=5.39)
if(NOT MAGIC_FOUND) if(NOT MAGIC_FOUND)

1
dist/Brewfile vendored
View File

@ -5,6 +5,7 @@ brew "ccache"
brew "freetype2" brew "freetype2"
brew "libmagic" brew "libmagic"
brew "pkg-config" brew "pkg-config"
brew "curl"
brew "gcc@12" brew "gcc@12"
brew "llvm" brew "llvm"
brew "glfw" brew "glfw"

1
dist/Dockerfile vendored
View File

@ -14,6 +14,7 @@ RUN pacman -S --needed --noconfirm \
file \ file \
mbedtls \ mbedtls \
freetype2 \ freetype2 \
curl \
dbus \ dbus \
xdg-desktop-portal xdg-desktop-portal

View File

@ -13,7 +13,6 @@ apt install -y \
lld \ lld \
${PKGCONF:-} \ ${PKGCONF:-} \
cmake \ cmake \
make \
ccache \ ccache \
libglfw3-dev \ libglfw3-dev \
libglm-dev \ libglm-dev \
@ -21,5 +20,6 @@ apt install -y \
libmbedtls-dev \ libmbedtls-dev \
libfreetype-dev \ libfreetype-dev \
libdbus-1-dev \ libdbus-1-dev \
libcurl4-gnutls-dev \
xdg-desktop-portal \ xdg-desktop-portal \
ninja-build ninja-build

View File

@ -5,6 +5,7 @@ dnf install -y \
dbus-devel \ dbus-devel \
file-devel \ file-devel \
freetype-devel \ freetype-devel \
libcurl-devel \
gcc-c++ \ gcc-c++ \
git \ git \
mesa-libGL-devel \ mesa-libGL-devel \

View File

@ -4,10 +4,10 @@ pacman -S --needed --noconfirm \
mingw-w64-x86_64-gcc \ mingw-w64-x86_64-gcc \
mingw-w64-x86_64-lld \ mingw-w64-x86_64-lld \
mingw-w64-x86_64-cmake \ mingw-w64-x86_64-cmake \
mingw-w64-x86_64-make \
mingw-w64-x86_64-ccache \ mingw-w64-x86_64-ccache \
mingw-w64-x86_64-glfw \ mingw-w64-x86_64-glfw \
mingw-w64-x86_64-file \ mingw-w64-x86_64-file \
mingw-w64-x86_64-curl \
mingw-w64-x86_64-mbedtls \ mingw-w64-x86_64-mbedtls \
mingw-w64-x86_64-freetype \ mingw-w64-x86_64-freetype \
mingw-w64-x86_64-dlfcn \ mingw-w64-x86_64-dlfcn \

1
dist/rpm/imhex.spec vendored
View File

@ -74,7 +74,6 @@ CXXFLAGS+=" -std=gnu++2b"
-D IMHEX_OFFLINE_BUILD=ON \ -D IMHEX_OFFLINE_BUILD=ON \
-D USE_SYSTEM_NLOHMANN_JSON=ON \ -D USE_SYSTEM_NLOHMANN_JSON=ON \
-D USE_SYSTEM_FMT=ON \ -D USE_SYSTEM_FMT=ON \
-D USE_SYSTEM_CURL=ON \
-D USE_SYSTEM_LLVM=ON \ -D USE_SYSTEM_LLVM=ON \
-D USE_SYSTEM_YARA=ON \ -D USE_SYSTEM_YARA=ON \
-D USE_SYSTEM_NFD=ON \ -D USE_SYSTEM_NFD=ON \

1
lib/external/curl vendored

@ -1 +0,0 @@
Subproject commit 7ab9d43720bc34d9aa351c7ca683c1668ebf8335

View File

@ -62,7 +62,7 @@ set_target_properties(libimhex PROPERTIES POSITION_INDEPENDENT_CODE ON)
setupCompilerFlags(libimhex) setupCompilerFlags(libimhex)
target_include_directories(libimhex PUBLIC include ${XDGPP_INCLUDE_DIRS} ${MBEDTLS_INCLUDE_DIRS} ${CAPSTONE_INCLUDE_DIRS} ${MAGIC_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS} ${FMT_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS} ${YARA_INCLUDE_DIRS} ${LIBBACKTRACE_INCLUDE_DIRS}) target_include_directories(libimhex PUBLIC include ${XDGPP_INCLUDE_DIRS} ${MBEDTLS_INCLUDE_DIR} ${CAPSTONE_INCLUDE_DIRS} ${MAGIC_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS} ${FMT_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS} ${YARA_INCLUDE_DIRS} ${LIBBACKTRACE_INCLUDE_DIRS})
target_link_directories(libimhex PUBLIC ${MBEDTLS_LIBRARY_DIR} ${CAPSTONE_LIBRARY_DIRS} ${MAGIC_LIBRARY_DIRS}) target_link_directories(libimhex PUBLIC ${MBEDTLS_LIBRARY_DIR} ${CAPSTONE_LIBRARY_DIRS} ${MAGIC_LIBRARY_DIRS})
if (WIN32) if (WIN32)