From 2cee9a3908242321238c63f013665dce45b48274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Tassoux?= Date: Sat, 13 Jun 2020 18:21:21 +0200 Subject: [PATCH 1/3] [imgui] Add Freetype feature --- ports/imgui/CMakeLists.txt | 100 ++++++++++++++++++++++--------------- ports/imgui/CONTROL | 8 ++- ports/imgui/portfile.cmake | 8 +-- 3 files changed, 71 insertions(+), 45 deletions(-) diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt index a67aa5474e18ea..17d5f1b82342be 100644 --- a/ports/imgui/CMakeLists.txt +++ b/ports/imgui/CMakeLists.txt @@ -3,56 +3,78 @@ project(imgui CXX) set(CMAKE_DEBUG_POSTFIX d) -set(IMGUI_INCLUDES_PUBLIC - imgui.h - imconfig.h +add_library(${PROJECT_NAME} "") +add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ ) -set(IMGUI_INCLUDES_PRIVATE - imgui_internal.h - imstb_textedit.h +target_sources( + ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/imgui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/imgui_demo.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/imgui_draw.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/imgui_widgets.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.cpp ) -set(IMGUI_SOURCES - imgui.cpp - imgui_demo.cpp - imgui_draw.cpp - imgui_widgets.cpp -) - -add_library(${PROJECT_NAME} - ${IMGUI_INCLUDES_PUBLIC} - ${IMGUI_INCLUDES_PRIVATE} - ${IMGUI_SOURCES} -) +if(IMGUI_FREETYPE) + find_package(Freetype REQUIRED) -file(GLOB IMGUI_BINDINGS ${CMAKE_CURRENT_SOURCE_DIR}/examples/imgui_impl_* ) + target_include_directories( + ${PROJECT_NAME} + PRIVATE + ${FREETYPE_INCLUDE_DIRS} + ) -target_include_directories(${PROJECT_NAME} PUBLIC $) + target_sources( + ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.cpp + ) +endif() -install(TARGETS ${PROJECT_NAME} - EXPORT IMGUIExport - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}_target + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin ) -install(EXPORT IMGUIExport FILE ${PROJECT_NAME}Config.cmake NAMESPACE ${PROJECT_NAME}:: DESTINATION share/${PROJECT_NAME}) - if(NOT IMGUI_SKIP_HEADERS) - install( - FILES ${IMGUI_INCLUDES_PUBLIC} + install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/imgui.h + ${CMAKE_CURRENT_SOURCE_DIR}/imconfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/imgui_internal.h + ${CMAKE_CURRENT_SOURCE_DIR}/imstb_textedit.h + ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.h DESTINATION include ) + + if(IMGUI_COPY_BINDINGS) + file(GLOB IMGUI_BINDINGS ${CMAKE_CURRENT_SOURCE_DIR}/examples/imgui_impl_* ) + install( + FILES ${IMGUI_BINDINGS} + DESTINATION include/bindings + ) + endif() + + if(IMGUI_FREETYPE) + install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h + DESTINATION include + ) + endif() endif() -if(IMGUI_COPY_BINDINGS) - install( - FILES ${IMGUI_INCLUDES_PRIVATE} - DESTINATION include - ) - install( - FILES ${IMGUI_BINDINGS} - DESTINATION include/bindings - ) -endif() \ No newline at end of file +install( + EXPORT ${PROJECT_NAME}_target + NAMESPACE ${PROJECT_NAME}:: + FILE ${PROJECT_NAME}-config.cmake + DESTINATION share/${PROJECT_NAME} +) \ No newline at end of file diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL index 8ce2ad4f220b32..aff253831041b5 100644 --- a/ports/imgui/CONTROL +++ b/ports/imgui/CONTROL @@ -1,8 +1,12 @@ Source: imgui -Version: 1.76-1 +Version: 1.76-2 Homepage: https://github.com/ocornut/imgui Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. Feature: bindings Description: make available bindings header and source files for supported implementations -Build-Depends: glfw3, freeglut, opengl, sdl1, allegro5 +Build-Depends: glfw3, freeglut, opengl, sdl2, allegro5 + +Feature: freetype +Description: Build font atlases using FreeType instead of stb_truetype +Build-Depends: freetype diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index 149e1807c24502..9775085ba60626 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -11,16 +11,16 @@ vcpkg_from_github( file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - bindings IMGUI_COPY_BINDINGS # should only be copied once, at most + bindings IMGUI_COPY_BINDINGS # should only be copied once, at most + freetype IMGUI_FREETYPE ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_RELEASE + OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG - -DIMGUI_COPY_BINDINGS=OFF -DIMGUI_SKIP_HEADERS=ON ) @@ -29,4 +29,4 @@ vcpkg_install_cmake() vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets() -file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file From da5e9a9161f405c033188a96b1a767b2cbcbb90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Tassoux?= Date: Mon, 29 Jun 2020 19:17:35 +0200 Subject: [PATCH 2/3] [imgui] Update to 1.77 https://github.com/ocornut/imgui/releases/tag/v1.77 --- ports/imgui/CONTROL | 2 +- ports/imgui/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL index aff253831041b5..218505817d8c42 100644 --- a/ports/imgui/CONTROL +++ b/ports/imgui/CONTROL @@ -1,5 +1,5 @@ Source: imgui -Version: 1.76-2 +Version: 1.77 Homepage: https://github.com/ocornut/imgui Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index 9775085ba60626..cb30b737617ef7 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui - REF 5503c0a12e0c929e84b3f61b2cb4bb9177ea3da1 # v1.76 - SHA512 5cafb4f1c76975c38ddda0316da96e1f29e652fbc5c8d0e5158c9b21b11c0acc45e4b84fbc53bde1d07c4f2002744e1407f900e92eb8146e0a843b8b4f4b58bd + REF v1.77 + SHA512 d5ebf4bb5e1ce83b226f2e68b3afe0f0abaeb55245fedf754e5453afd8d1df4dac8b5c47fc284c2588b40d05a55fc191b5e55c7be279c5e5e23f7c5b70150546 HEAD_REF master ) From 0394cad8a4c9cf6b1761e47fdf82f88ef16032f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Tassoux?= Date: Wed, 1 Jul 2020 14:44:28 +0200 Subject: [PATCH 3/3] [imgui] Fix INSTALL_INTERFACE path case --- ports/imgui/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt index 17d5f1b82342be..17f9ca28694c5d 100644 --- a/ports/imgui/CMakeLists.txt +++ b/ports/imgui/CMakeLists.txt @@ -8,8 +8,8 @@ add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories( ${PROJECT_NAME} PUBLIC - $ - $ + $ + $ ) target_sources( @@ -77,4 +77,4 @@ install( NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-config.cmake DESTINATION share/${PROJECT_NAME} -) \ No newline at end of file +)