diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 2dc65a00d..ab661e315 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -738,7 +738,7 @@ function(generateSDKDirectory) endif() install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/libimhex DESTINATION "${SDK_PATH}/lib" PATTERN "**/source/*" EXCLUDE) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/external DESTINATION "${SDK_PATH}/lib" PATTERN "**/source/*" EXCLUDE) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/external DESTINATION "${SDK_PATH}/lib") install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/third_party/imgui DESTINATION "${SDK_PATH}/lib/third_party" PATTERN "**/source/*" EXCLUDE) if (NOT USE_SYSTEM_FMT) install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/third_party/fmt DESTINATION "${SDK_PATH}/lib/third_party") diff --git a/lib/third_party/imgui/ColorTextEditor/CMakeLists.txt b/lib/third_party/imgui/ColorTextEditor/CMakeLists.txt index f511cdcfa..2195dc1bd 100644 --- a/lib/third_party/imgui/ColorTextEditor/CMakeLists.txt +++ b/lib/third_party/imgui/ColorTextEditor/CMakeLists.txt @@ -4,14 +4,17 @@ project(imgui_color_text_editor) set(CMAKE_CXX_STANDARD 17) -add_library(imgui_color_text_editor OBJECT - source/TextEditor.cpp -) +if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) + add_library(imgui_color_text_editor OBJECT + source/TextEditor.cpp + ) -target_include_directories(imgui_color_text_editor PUBLIC - include -) + target_include_directories(imgui_color_text_editor PUBLIC + include + ) + + target_link_libraries(imgui_color_text_editor PRIVATE imgui_includes) +endif() target_include_directories(imgui_all_includes INTERFACE include) -target_link_libraries(imgui_color_text_editor PRIVATE imgui_includes) diff --git a/lib/third_party/imgui/custom/CMakeLists.txt b/lib/third_party/imgui/custom/CMakeLists.txt index ada7a6f14..874e2b2bf 100644 --- a/lib/third_party/imgui/custom/CMakeLists.txt +++ b/lib/third_party/imgui/custom/CMakeLists.txt @@ -4,37 +4,40 @@ project(imgui_custom) set(CMAKE_CXX_STANDARD 17) -add_library(imgui_custom OBJECT - source/imgui_impl_opengl3.cpp - source/imgui_impl_glfw.cpp -) +if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) + add_library(imgui_custom OBJECT + source/imgui_impl_opengl3.cpp + source/imgui_impl_glfw.cpp + ) -target_include_directories(imgui_custom PUBLIC - include -) + target_include_directories(imgui_custom PUBLIC + include + ) -target_link_libraries(imgui_custom PRIVATE imgui_includes) -target_include_directories(imgui_all_includes INTERFACE include) + target_link_libraries(imgui_custom PRIVATE imgui_includes) -find_package(OpenGL REQUIRED) -find_package(Freetype REQUIRED) + find_package(OpenGL REQUIRED) + find_package(Freetype REQUIRED) -find_package(GLFW QUIET) -if (NOT GLFW_FOUND OR "${GLFW_LIBRARIES}" STREQUAL "") - find_package(glfw3 QUIET) - set(GLFW_INCLUDE_DIRS ${glfw3_INCLUDE_DIRS}) - set(GLFW_LIBRARIES ${glfw3_LIBRARIES}) + find_package(GLFW QUIET) + if (NOT GLFW_FOUND OR "${GLFW_LIBRARIES}" STREQUAL "") + find_package(glfw3 QUIET) + set(GLFW_INCLUDE_DIRS ${glfw3_INCLUDE_DIRS}) + set(GLFW_LIBRARIES ${glfw3_LIBRARIES}) - if (NOT glfw3_FOUND OR "${GLFW_LIBRARIES}" STREQUAL "") - find_package(PkgConfig REQUIRED) - pkg_search_module(GLFW REQUIRED glfw3) + if (NOT glfw3_FOUND OR "${GLFW_LIBRARIES}" STREQUAL "") + find_package(PkgConfig REQUIRED) + pkg_search_module(GLFW REQUIRED glfw3) + endif () + endif() + + if ("${GLFW_LIBRARIES}" MATCHES ".+dll") + set(GLFW_LIBRARIES "glfw3") endif () + + target_include_directories(imgui_custom PUBLIC ${FREETYPE_INCLUDE_DIRS} ${OpenGL_INCLUDE_DIRS}) + target_link_directories(imgui_custom PUBLIC ${FREETYPE_LIBRARY_DIRS} ${OpenGL_LIBRARY_DIRS}) + target_link_libraries(imgui_custom PUBLIC ${GLFW_LIBRARIES} ${OPENGL_LIBRARIES}) endif() -if ("${GLFW_LIBRARIES}" MATCHES ".+dll") - set(GLFW_LIBRARIES "glfw3") -endif () - -target_include_directories(imgui_custom PUBLIC ${FREETYPE_INCLUDE_DIRS} ${OpenGL_INCLUDE_DIRS}) -target_link_directories(imgui_custom PUBLIC ${FREETYPE_LIBRARY_DIRS} ${OpenGL_LIBRARY_DIRS}) -target_link_libraries(imgui_custom PUBLIC ${GLFW_LIBRARIES} ${OPENGL_LIBRARIES}) \ No newline at end of file +target_include_directories(imgui_all_includes INTERFACE include) \ No newline at end of file diff --git a/lib/third_party/imgui/imgui/CMakeLists.txt b/lib/third_party/imgui/imgui/CMakeLists.txt index 1f803868d..159188092 100644 --- a/lib/third_party/imgui/imgui/CMakeLists.txt +++ b/lib/third_party/imgui/imgui/CMakeLists.txt @@ -4,29 +4,31 @@ project(imgui_imgui) set(CMAKE_CXX_STANDARD 17) -add_library(imgui_imgui OBJECT - source/imgui.cpp - source/imgui_demo.cpp - source/imgui_draw.cpp - source/imgui_tables.cpp - source/imgui_widgets.cpp +if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) + add_library(imgui_imgui OBJECT + source/imgui.cpp + source/imgui_demo.cpp + source/imgui_draw.cpp + source/imgui_tables.cpp + source/imgui_widgets.cpp - source/misc/freetype/imgui_freetype.cpp -) + source/misc/freetype/imgui_freetype.cpp + ) -target_include_directories(imgui_imgui PUBLIC - include - include/misc/freetype -) + target_include_directories(imgui_imgui PUBLIC + include + include/misc/freetype + ) + + target_compile_options(imgui_imgui PRIVATE -Wno-unknown-warning-option) + + find_package(Freetype REQUIRED) + + target_include_directories(imgui_imgui PUBLIC ${FREETYPE_INCLUDE_DIRS}) + target_link_directories(imgui_imgui PUBLIC ${FREETYPE_LIBRARY_DIRS}) + target_link_libraries(imgui_imgui PUBLIC ${FREETYPE_LIBRARIES}) +endif() add_library(imgui_includes INTERFACE) target_include_directories(imgui_includes INTERFACE include) -target_include_directories(imgui_all_includes INTERFACE include include/misc/freetype) - -target_compile_options(imgui_imgui PRIVATE -Wno-unknown-warning-option) - -find_package(Freetype REQUIRED) - -target_include_directories(imgui_imgui PUBLIC ${FREETYPE_INCLUDE_DIRS}) -target_link_directories(imgui_imgui PUBLIC ${FREETYPE_LIBRARY_DIRS}) -target_link_libraries(imgui_imgui PUBLIC ${FREETYPE_LIBRARIES}) \ No newline at end of file +target_include_directories(imgui_all_includes INTERFACE include include/misc/freetype) \ No newline at end of file diff --git a/lib/third_party/imgui/imnodes/CMakeLists.txt b/lib/third_party/imgui/imnodes/CMakeLists.txt index 52cccdf67..928422c0b 100644 --- a/lib/third_party/imgui/imnodes/CMakeLists.txt +++ b/lib/third_party/imgui/imnodes/CMakeLists.txt @@ -4,13 +4,16 @@ project(imgui_imnodes) set(CMAKE_CXX_STANDARD 17) -add_library(imgui_imnodes OBJECT - source/imnodes.cpp -) +if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) + add_library(imgui_imnodes OBJECT + source/imnodes.cpp + ) -target_include_directories(imgui_imnodes PUBLIC - include -) + target_include_directories(imgui_imnodes PUBLIC + include + ) + + target_link_libraries(imgui_imnodes PRIVATE imgui_includes) +endif() -target_link_libraries(imgui_imnodes PRIVATE imgui_includes) target_include_directories(imgui_all_includes INTERFACE include) diff --git a/lib/third_party/imgui/implot/CMakeLists.txt b/lib/third_party/imgui/implot/CMakeLists.txt index ddfc748db..4e2d764ea 100644 --- a/lib/third_party/imgui/implot/CMakeLists.txt +++ b/lib/third_party/imgui/implot/CMakeLists.txt @@ -4,15 +4,18 @@ project(imgui_implot) set(CMAKE_CXX_STANDARD 17) -add_library(imgui_implot OBJECT - source/implot.cpp - source/implot_items.cpp - source/implot_demo.cpp -) +if (NOT IMHEX_EXTERNAL_PLUGIN_BUILD) + add_library(imgui_implot OBJECT + source/implot.cpp + source/implot_items.cpp + source/implot_demo.cpp + ) -target_include_directories(imgui_implot PUBLIC - include -) + target_include_directories(imgui_implot PUBLIC + include + ) + + target_link_libraries(imgui_implot PRIVATE imgui_includes) +endif() -target_link_libraries(imgui_implot PRIVATE imgui_includes) target_include_directories(imgui_all_includes INTERFACE include)