diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1a9c366d..4956aec10 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,17 +70,18 @@ jobs: mkdir -p build cd build - cmake -G "MinGW Makefiles" \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCMAKE_INSTALL_PREFIX="$PWD/install" \ - -DCREATE_PACKAGE=ON \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_C_FLAGS="-fuse-ld=lld" \ - -DCMAKE_CXX_FLAGS="-fuse-ld=lld" \ - -DIMHEX_PATTERNS_PULL_MASTER=ON \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + cmake -G "MinGW Makefiles" \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX="$PWD/install" \ + -DCREATE_PACKAGE=ON \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_C_FLAGS="-fuse-ld=lld" \ + -DCMAKE_CXX_FLAGS="-fuse-ld=lld" \ + -DIMHEX_PATTERNS_PULL_MASTER=ON \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ .. mingw32-make -j4 install cpack @@ -181,14 +182,15 @@ jobs: mkdir build cd build - cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \ - -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + cmake \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \ + -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ .. make -j 4 install @@ -197,25 +199,26 @@ jobs: run: | mkdir -p build cd build - CC=$(brew --prefix gcc@12)/bin/gcc-12 \ - CXX=$(brew --prefix gcc@12)/bin/g++-12 \ - OBJC=$(brew --prefix llvm)/bin/clang \ - OBJCXX=$(brew --prefix llvm)/bin/clang++ \ - PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \ - MACOSX_DEPLOYMENT_TARGET="10.10" \ - cmake \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCREATE_BUNDLE=ON \ - -DCREATE_PACKAGE=ON \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \ - -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \ - -DIMHEX_PATTERNS_PULL_MASTER=ON \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" \ - -DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \ + CC=$(brew --prefix gcc@12)/bin/gcc-12 \ + CXX=$(brew --prefix gcc@12)/bin/g++-12 \ + OBJC=$(brew --prefix llvm)/bin/clang \ + OBJCXX=$(brew --prefix llvm)/bin/clang++ \ + PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \ + MACOSX_DEPLOYMENT_TARGET="10.10" \ + cmake \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCREATE_BUNDLE=ON \ + -DCREATE_PACKAGE=ON \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \ + -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \ + -DIMHEX_PATTERNS_PULL_MASTER=ON \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" \ + -DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \ .. make -j4 package @@ -260,15 +263,16 @@ jobs: run: | mkdir -p build cd build - CC=gcc-12 CXX=g++-12 cmake \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DIMHEX_PATTERNS_PULL_MASTER=ON \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ + CC=gcc-12 CXX=g++-12 cmake \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX="/usr" \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DIMHEX_PATTERNS_PULL_MASTER=ON \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ .. make -j 4 install DESTDIR=DebDir @@ -332,17 +336,18 @@ jobs: run: | mkdir -p build-appimage cd build-appimage - CC=gcc-12 CXX=g++-12 cmake \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DIMHEX_PATTERNS_PULL_MASTER=ON \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ - -DIMHEX_PLUGINS_IN_SHARE=ON \ - -DIMHEX_USE_BUNDLED_CA=ON \ + CC=gcc-12 CXX=g++-12 cmake \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX="/usr" \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DIMHEX_PATTERNS_PULL_MASTER=ON \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ + -DIMHEX_PLUGINS_IN_SHARE=ON \ + -DIMHEX_USE_BUNDLED_CA=ON \ .. make -j 4 install DESTDIR=AppDir @@ -409,20 +414,21 @@ jobs: run: | mkdir -p build cd build - CC=gcc CXX=g++ cmake \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DUSE_SYSTEM_CURL=ON \ - -DUSE_SYSTEM_FMT=ON \ - -DUSE_SYSTEM_YARA=ON \ - -DUSE_SYSTEM_NLOHMANN_JSON=ON \ - -DUSE_SYSTEM_CAPSTONE=OFF \ - -DIMHEX_PATTERNS_PULL_MASTER=ON \ - -DIMHEX_COMMIT_HASH="${GITHUB_SHA::7}" \ - -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ + CC=gcc CXX=g++ cmake \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX="/usr" \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DUSE_SYSTEM_CURL=ON \ + -DUSE_SYSTEM_FMT=ON \ + -DUSE_SYSTEM_YARA=ON \ + -DUSE_SYSTEM_NLOHMANN_JSON=ON \ + -DUSE_SYSTEM_CAPSTONE=OFF \ + -DIMHEX_PATTERNS_PULL_MASTER=ON \ + -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ + -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ + -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ .. make -j 4 install DESTDIR=installDir diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 0227511b0..2a57a0e07 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -14,8 +14,12 @@ macro(addVersionDefines) message(FATAL_ERROR "IMHEX_VERSION is not defined") endif () - if (DEFINED IMHEX_COMMIT_HASH AND DEFINED IMHEX_COMMIT_BRANCH) - add_compile_definitions(GIT_COMMIT_HASH="${IMHEX_COMMIT_HASH}" GIT_BRANCH="${IMHEX_COMMIT_BRANCH}") + if (DEFINED IMHEX_COMMIT_HASH_LONG AND DEFINED IMHEX_COMMIT_HASH_SHORT AND DEFINED IMHEX_COMMIT_BRANCH) + add_compile_definitions( + GIT_COMMIT_HASH_LONG="${IMHEX_COMMIT_HASH_LONG}" + IMHEX_COMMIT_HASH_SHORT="${IMHEX_COMMIT_HASH_SHORT}" + GIT_BRANCH="${IMHEX_COMMIT_BRANCH}" + ) else() # Get the current working branch execute_process( @@ -28,15 +32,26 @@ macro(addVersionDefines) # Get the latest abbreviated commit hash of the working branch execute_process( - COMMAND git log -1 --format=%h + COMMAND git log -1 --format=%h --abbrev=7 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_VARIABLE GIT_COMMIT_HASH_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE RESULT_HASH + RESULT_VARIABLE RESULT_HASH_SHORT ) - if (RESULT_BRANCH EQUAL 0 AND RESULT_HASH EQUAL 0) - add_compile_definitions(GIT_COMMIT_HASH="${GIT_COMMIT_HASH}" GIT_BRANCH="${GIT_BRANCH}") + execute_process( + COMMAND git log -1 --format=%H + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH_LONG + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE RESULT_HASH_LONG + ) + + if (RESULT_BRANCH EQUAL 0 AND RESULT_HASH_LONG EQUAL 0 AND RESULT_HASH_SHORT EQUAL 0) + add_compile_definitions( + GIT_COMMIT_HASH_SHORT="${GIT_COMMIT_HASH_SHORT}" + GIT_COMMIT_HASH_LONG="${GIT_COMMIT_HASH_LONG}" + GIT_BRANCH="${GIT_BRANCH}") endif () endif () @@ -147,7 +162,7 @@ macro(configurePackingResources) set(MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/resources/dist/macos/Info.plist.in") set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") set(MACOSX_BUNDLE_GUI_IDENTIFIER "net.WerWolv.ImHex") - set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}-${GIT_COMMIT_HASH}") + set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}-${GIT_COMMIT_HASH_SHORT}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") string(TIMESTAMP CURR_YEAR "%Y") @@ -474,6 +489,7 @@ macro(addBundledLibraries) if(NOT USE_SYSTEM_CURL) add_subdirectory(${EXTERN_LIBS_FOLDER}/curl EXCLUDE_FROM_ALL) 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) diff --git a/lib/external/imgui/CMakeLists.txt b/lib/external/imgui/CMakeLists.txt index d7219273c..bbc6d63e4 100644 --- a/lib/external/imgui/CMakeLists.txt +++ b/lib/external/imgui/CMakeLists.txt @@ -33,10 +33,9 @@ add_library(imgui OBJECT source/fonts/unifont_font.c ) -add_compile_definitions(IMGUI_IMPL_OPENGL_LOADER_GLAD) +target_compile_definitions(imgui PUBLIC IMGUI_IMPL_OPENGL_LOADER_GLAD) +target_compile_options(imgui PUBLIC -Wno-stringop-overflow) target_include_directories(imgui PUBLIC include ${FREETYPE_INCLUDE_DIRS} ${GLFW_INCLUDE_DIRS} ${OpenGL_INCLUDE_DIRS}) - target_link_directories(imgui PUBLIC ${GLFW_LIBRARY_DIRS} ${OpenGL_LIBRARY_DIRS}) - target_link_libraries(imgui PUBLIC Freetype::Freetype ${GLFW_LIBRARIES} ${OPENGL_LIBRARIES}) diff --git a/lib/external/yara/CMakeLists.txt b/lib/external/yara/CMakeLists.txt index c6c6aa5b0..dc5732245 100644 --- a/lib/external/yara/CMakeLists.txt +++ b/lib/external/yara/CMakeLists.txt @@ -108,17 +108,13 @@ add_library(libyara STATIC ${LIBYARA_SOURCE} ${LIBYARA_INCLUDES} ${LIBYARA_MODUL set_property(TARGET libyara PROPERTY POSITION_INDEPENDENT_CODE ON) # Add mbedtls crypto wrappers -target_compile_definitions(libyara PRIVATE HAVE_MBEDTLS) +target_compile_definitions(libyara PRIVATE + HAVE_MBEDTLS + USE_NO_PROC BUCKETS_256 CHECKSUM_3B + HASH_MODULE DOTNET_MODULE MAGIC_MODULE MACHO_MODULE DEX_MODULE +) -target_compile_definitions(libyara PRIVATE USE_NO_PROC BUCKETS_256 CHECKSUM_3B) - -target_compile_definitions(libyara PRIVATE HASH_MODULE) -target_compile_definitions(libyara PRIVATE DOTNET_MODULE) -target_compile_definitions(libyara PRIVATE MAGIC_MODULE) -target_compile_definitions(libyara PRIVATE MACHO_MODULE) -target_compile_definitions(libyara PRIVATE DEX_MODULE) - -target_compile_options(libyara PRIVATE "-Wno-shift-count-overflow") +target_compile_options(libyara PRIVATE -Wno-shift-count-overflow -Wno-stringop-overflow) target_include_directories( libyara