build: Added cimgui

This commit is contained in:
WerWolv 2024-03-11 21:08:23 +01:00
parent 3d592dbc79
commit c610d804b1
8 changed files with 10588 additions and 12 deletions

View File

@ -40,6 +40,9 @@ project(imhex
HOMEPAGE_URL "https://imhex.werwolv.net"
)
# Add ImHex sources
add_custom_target(imhex_all ALL)
# Make sure project is configured correctly
setDefaultBuiltTypeIfUnset()
detectBadClone()
@ -56,10 +59,8 @@ configurePackingResources()
setUninstallTarget()
addBundledLibraries()
# Add ImHex sources
add_custom_target(imhex_all ALL)
add_subdirectory(lib/libimhex)
addPluginDirectories()
add_subdirectory(main)
# Add unit tests
@ -71,4 +72,4 @@ endif ()
# Configure more resources that will be added to the install package
createPackage()
generatePDBs()
generateSDKDirectory()
generateSDKDirectory()

View File

@ -89,6 +89,8 @@ macro(detectOS)
endmacro()
macro(configurePackingResources)
set(LIBRARY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
if (WIN32)
if (NOT (CMAKE_BUILD_TYPE STREQUAL "Debug"))
set(APPLICATION_TYPE WIN32)
@ -142,9 +144,7 @@ macro(configurePackingResources)
endif()
endmacro()
macro(createPackage)
set(LIBRARY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
macro(addPluginDirectories)
file(MAKE_DIRECTORY "plugins")
foreach (plugin IN LISTS PLUGINS)
add_subdirectory("plugins/${plugin}")
@ -175,9 +175,9 @@ macro(createPackage)
add_dependencies(imhex_all ${plugin})
endif ()
endforeach()
endmacro()
set_target_properties(libimhex PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
macro(createPackage)
if (WIN32)
# Install binaries directly in the prefix, usually C:\Program Files\ImHex.
set(CMAKE_INSTALL_BINDIR ".")
@ -214,7 +214,6 @@ macro(createPackage)
endforeach()
]])
install(FILES "$<TARGET_FILE:libimhex>" DESTINATION "${CMAKE_INSTALL_LIBDIR}" PERMISSIONS ${LIBRARY_PERMISSIONS})
downloadImHexPatternsFiles("./")
elseif(UNIX AND NOT APPLE)
@ -225,7 +224,6 @@ macro(createPackage)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_PREFIX}/share/licenses/imhex)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dist/imhex.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps RENAME imhex.png)
install(FILES "$<TARGET_FILE:libimhex>" DESTINATION "${CMAKE_INSTALL_LIBDIR}" PERMISSIONS ${LIBRARY_PERMISSIONS})
downloadImHexPatternsFiles("./share/imhex")
# install AppStream file

1
dist/rpm/imhex.spec vendored
View File

@ -123,6 +123,7 @@ cp -a lib/third_party/xdgpp/LICENSE %{buildroot
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/applications/%{name}.desktop
%{_libdir}/libimhex.so*
%{_libdir}/cimgui.so*
%{_libdir}/%{name}/
%{_metainfodir}/net.werwolv.%{name}.metainfo.xml

View File

@ -147,4 +147,7 @@ target_link_libraries(libimhex ${LIBIMHEX_LIBRARY_TYPE} ${NLOHMANN_JSON_LIBRARIE
set_property(TARGET libimhex PROPERTY INTERPROCEDURAL_OPTIMIZATION FALSE)
add_dependencies(imhex_all libimhex)
add_dependencies(imhex_all libimhex)
install(FILES "$<TARGET_FILE:libimhex>" DESTINATION "${CMAKE_INSTALL_LIBDIR}" PERMISSIONS ${LIBRARY_PERMISSIONS})
set_target_properties(libimhex PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

View File

@ -6,6 +6,7 @@ set(CMAKE_CXX_STANDARD 17)
add_library(imgui_all_includes INTERFACE)
add_subdirectory(imgui)
add_subdirectory(cimgui)
add_subdirectory(implot)
add_subdirectory(imnodes)
add_subdirectory(custom)

View File

@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.16)
project(imgui_cimgui)
set(CMAKE_CXX_STANDARD 17)
if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD)
add_library(imgui_cimgui SHARED
source/cimgui.cpp
)
target_include_directories(imgui_cimgui PUBLIC
include
)
target_link_libraries(imgui_cimgui PRIVATE imgui_includes libimhex)
set_target_properties(imgui_cimgui PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set_target_properties(imgui_cimgui PROPERTIES OUTPUT_NAME "cimgui")
set_target_properties(imgui_cimgui PROPERTIES PREFIX "")
add_dependencies(imhex_all imgui_cimgui)
endif()
install(FILES "$<TARGET_FILE:imgui_cimgui>" DESTINATION "${CMAKE_INSTALL_LIBDIR}" PERMISSIONS ${LIBRARY_PERMISSIONS})
set_target_properties(imgui_cimgui PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff