mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-28 07:47:03 -05:00
fix: Build with precompiled headers on Linux
This commit is contained in:
@@ -46,6 +46,9 @@ function(addDefineToSource SOURCE DEFINE)
|
|||||||
APPEND
|
APPEND
|
||||||
PROPERTY COMPILE_DEFINITIONS "${DEFINE}"
|
PROPERTY COMPILE_DEFINITIONS "${DEFINE}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Disable precompiled headers for this file
|
||||||
|
set_source_files_properties(${SOURCE} PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Detect current OS / System
|
# Detect current OS / System
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ macro(add_imhex_plugin)
|
|||||||
addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl)
|
addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl)
|
||||||
addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl-gen)
|
addIncludesFromLibrary(${IMHEX_PLUGIN_NAME} libpl-gen)
|
||||||
|
|
||||||
|
precompileHeaders(${IMHEX_PLUGIN_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||||
|
|
||||||
# Add IMHEX_PROJECT_NAME and IMHEX_VERSION define
|
# 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_PROJECT_NAME="${IMHEX_PLUGIN_NAME}")
|
||||||
target_compile_definitions(${IMHEX_PLUGIN_NAME} PRIVATE IMHEX_VERSION="${IMHEX_VERSION_STRING}")
|
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_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")
|
target_compile_definitions(${IMHEX_PLUGIN_NAME}_tests PRIVATE IMHEX_PROJECT_NAME="${IMHEX_PLUGIN_NAME}-tests")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
precompileHeaders(${IMHEX_PLUGIN_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(add_romfs_resource input output)
|
macro(add_romfs_resource input output)
|
||||||
|
|||||||
@@ -65,16 +65,6 @@ if (APPLE)
|
|||||||
set(LIBIMHEX_SOURCES ${LIBIMHEX_SOURCES} source/helpers/utils_macos.m)
|
set(LIBIMHEX_SOURCES ${LIBIMHEX_SOURCES} source/helpers/utils_macos.m)
|
||||||
endif ()
|
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)
|
if (IMHEX_EXTERNAL_PLUGIN_BUILD)
|
||||||
add_library(libimhex IMPORTED SHARED GLOBAL)
|
add_library(libimhex IMPORTED SHARED GLOBAL)
|
||||||
set(LIBIMHEX_LIBRARY_TYPE INTERFACE)
|
set(LIBIMHEX_LIBRARY_TYPE INTERFACE)
|
||||||
@@ -87,10 +77,42 @@ else()
|
|||||||
|
|
||||||
set(LIBIMHEX_LIBRARY_TYPE PUBLIC)
|
set(LIBIMHEX_LIBRARY_TYPE PUBLIC)
|
||||||
target_compile_definitions(libimhex PRIVATE IMHEX_PROJECT_NAME="${PROJECT_NAME}")
|
target_compile_definitions(libimhex PRIVATE IMHEX_PROJECT_NAME="${PROJECT_NAME}")
|
||||||
|
|
||||||
precompileHeaders(libimhex "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
||||||
endif()
|
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)
|
enableUnityBuild(libimhex)
|
||||||
setupCompilerFlags(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 PRIVATE microtar libwolv ${NFD_LIBRARIES} magic dl ${JTHREAD_LIBRARIES})
|
||||||
target_link_libraries(libimhex PUBLIC libpl ${IMGUI_LIBRARIES})
|
target_link_libraries(libimhex PUBLIC libpl ${IMGUI_LIBRARIES})
|
||||||
|
|
||||||
|
precompileHeaders(libimhex "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(libimhex ${LIBIMHEX_LIBRARY_TYPE} ${NLOHMANN_JSON_LIBRARIES} imgui_all_includes ${MBEDTLS_LIBRARIES} ${FMT_LIBRARIES})
|
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)
|
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)
|
add_dependencies(imhex_all libimhex)
|
||||||
Reference in New Issue
Block a user