aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Tassoux <contact@rt2.fr>2020-06-23 22:56:15 +0200
committerGitHub <noreply@github.com>2020-06-23 13:56:15 -0700
commit8e9ee5d36c8c741ab56db242e57f232f06a56e7f (patch)
treef68313d7b0b6d5f3058a9e05f956edcf3df6d972
parent5058547304a553493f32924786fec9d4208df458 (diff)
downloadvcpkg-8e9ee5d36c8c741ab56db242e57f232f06a56e7f.tar.gz
vcpkg-8e9ee5d36c8c741ab56db242e57f232f06a56e7f.zip
[imgui] Add Freetype feature (#11919)
-rw-r--r--ports/imgui/CMakeLists.txt100
-rw-r--r--ports/imgui/CONTROL8
-rw-r--r--ports/imgui/portfile.cmake8
3 files changed, 71 insertions, 45 deletions
diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt
index a67aa5474..17d5f1b82 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
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:Include>
)
-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 $<INSTALL_INTERFACE:include>)
+ 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 8ce2ad4f2..aff253831 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 149e1807c..9775085ba 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