diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 61ee66b2d..3d69b32fb 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -46,6 +46,9 @@ function(addDefineToSource SOURCE DEFINE) APPEND PROPERTY COMPILE_DEFINITIONS "${DEFINE}" ) + + # Disable precompiled headers for this file + set_source_files_properties(${SOURCE} PROPERTIES SKIP_PRECOMPILE_HEADERS ON) endfunction() # Detect current OS / System diff --git a/cmake/modules/ImHexPlugin.cmake b/cmake/modules/ImHexPlugin.cmake index be565dcd0..62b688cde 100644 --- a/cmake/modules/ImHexPlugin.cmake +++ b/cmake/modules/ImHexPlugin.cmake @@ -41,6 +41,8 @@ macro(add_imhex_plugin) addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl) addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl-gen) + precompileHeaders(${IMHEX_PLUGIN_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/include") + # Add IMHEX_PROJECT_NAME and IMHEX_VERSION define target_compile_definitions(${IMHEX_PLUGIN_NAME} PRIVATE IMHEX_PROJECT_NAME="${IMHEX_PLUGIN_NAME}") target_compile_definitions(${IMHEX_PLUGIN_NAME} PRIVATE IMHEX_VERSION="${IMHEX_VERSION_STRING}") @@ -96,8 +98,6 @@ macro(add_imhex_plugin) target_link_libraries(${IMHEX_PLUGIN_NAME} PUBLIC ${IMHEX_PLUGIN_NAME}_tests) target_compile_definitions(${IMHEX_PLUGIN_NAME}_tests PRIVATE IMHEX_PROJECT_NAME="${IMHEX_PLUGIN_NAME}-tests") endif() - - precompileHeaders(${IMHEX_PLUGIN_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/include") endmacro() macro(add_romfs_resource input output) diff --git a/lib/libimhex/CMakeLists.txt b/lib/libimhex/CMakeLists.txt index d3673c34e..423393cd9 100644 --- a/lib/libimhex/CMakeLists.txt +++ b/lib/libimhex/CMakeLists.txt @@ -65,16 +65,6 @@ if (APPLE) set(LIBIMHEX_SOURCES ${LIBIMHEX_SOURCES} source/helpers/utils_macos.m) endif () -if (GIT_COMMIT_HASH_LONG STREQUAL "" OR GIT_BRANCH STREQUAL "") - message(WARNING "Failed to to determine commit hash/branch") -else() - addDefineToSource(source/api/imhex_api.cpp "GIT_COMMIT_HASH_LONG=\"${GIT_COMMIT_HASH_LONG}\"") - addDefineToSource(source/api/imhex_api.cpp "GIT_BRANCH=\"${GIT_BRANCH}\"") -endif () - -addDefineToSource(source/api/imhex_api.cpp "IMHEX_VERSION=\"${IMHEX_VERSION_STRING}\"") - - if (IMHEX_EXTERNAL_PLUGIN_BUILD) add_library(libimhex IMPORTED SHARED GLOBAL) set(LIBIMHEX_LIBRARY_TYPE INTERFACE) @@ -87,10 +77,42 @@ else() set(LIBIMHEX_LIBRARY_TYPE PUBLIC) target_compile_definitions(libimhex PRIVATE IMHEX_PROJECT_NAME="${PROJECT_NAME}") - - precompileHeaders(libimhex "${CMAKE_CURRENT_SOURCE_DIR}/include") endif() + +if (DEFINED IMHEX_COMMIT_HASH_LONG AND DEFINED IMHEX_COMMIT_BRANCH) + set(GIT_COMMIT_HASH_LONG "${IMHEX_COMMIT_HASH_LONG}") + set(GIT_BRANCH "${IMHEX_COMMIT_BRANCH}") +else() + # Get the current working branch + execute_process( + COMMAND git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE RESULT_BRANCH + ERROR_QUIET + ) + + 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 + ERROR_QUIET + ) +endif () + +if (GIT_COMMIT_HASH_LONG STREQUAL "" OR GIT_BRANCH STREQUAL "") + message(WARNING "Failed to to determine commit hash/branch") +else() + addDefineToSource(source/api/imhex_api.cpp "GIT_COMMIT_HASH_LONG=\"${GIT_COMMIT_HASH_LONG}\"") + addDefineToSource(source/api/imhex_api.cpp "GIT_BRANCH=\"${GIT_BRANCH}\"") +endif () + +addDefineToSource(source/api/imhex_api.cpp "IMHEX_VERSION=\"${IMHEX_VERSION_STRING}\"") + enableUnityBuild(libimhex) setupCompilerFlags(libimhex) @@ -117,34 +139,12 @@ if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) target_link_libraries(libimhex PRIVATE microtar libwolv ${NFD_LIBRARIES} magic dl ${JTHREAD_LIBRARIES}) target_link_libraries(libimhex PUBLIC libpl ${IMGUI_LIBRARIES}) + + precompileHeaders(libimhex "${CMAKE_CURRENT_SOURCE_DIR}/include") endif() target_link_libraries(libimhex ${LIBIMHEX_LIBRARY_TYPE} ${NLOHMANN_JSON_LIBRARIES} imgui_all_includes ${MBEDTLS_LIBRARIES} ${FMT_LIBRARIES}) set_property(TARGET libimhex PROPERTY INTERPROCEDURAL_OPTIMIZATION FALSE) -if (DEFINED IMHEX_COMMIT_HASH_LONG AND DEFINED IMHEX_COMMIT_BRANCH) - set(GIT_COMMIT_HASH_LONG "${IMHEX_COMMIT_HASH_LONG}") - set(GIT_BRANCH "${IMHEX_COMMIT_BRANCH}") -else() - # Get the current working branch - execute_process( - COMMAND git rev-parse --abbrev-ref HEAD - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_BRANCH - OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE RESULT_BRANCH - ERROR_QUIET - ) - - 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 - ERROR_QUIET - ) -endif () - add_dependencies(imhex_all libimhex) \ No newline at end of file