From 99dd41ba0e7c3755692d3396c3629b7606d7f01c Mon Sep 17 00:00:00 2001 From: caseymcc Date: Sat, 31 Oct 2020 09:58:44 -0500 Subject: [PATCH] Add support for freetype-gl --- cmake/configs/default.cmake | 1 + cmake/projects/freetype-gl/ci/build.sh | 4 +++ cmake/projects/freetype-gl/ci/matrix.json | 16 ++++++++++++ cmake/projects/freetype-gl/hunter.cmake | 32 +++++++++++++++++++++++ docs/packages/graphics.rst | 2 ++ docs/packages/pkg/freetype-gl.rst | 22 ++++++++++++++++ examples/freetype-gl/CMakeLists.txt | 15 +++++++++++ examples/freetype-gl/main.cpp | 8 ++++++ 8 files changed, 100 insertions(+) create mode 100644 cmake/projects/freetype-gl/ci/build.sh create mode 100644 cmake/projects/freetype-gl/ci/matrix.json create mode 100644 cmake/projects/freetype-gl/hunter.cmake create mode 100644 docs/packages/pkg/freetype-gl.rst create mode 100644 examples/freetype-gl/CMakeLists.txt create mode 100644 examples/freetype-gl/main.cpp diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index defc5b2a81..42a33c664d 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -263,6 +263,7 @@ hunter_default_version(flex VERSION 2.6.4) hunter_default_version(fmt VERSION 6.1.2) hunter_default_version(folly VERSION 2018.10.22.00-p4) hunter_default_version(freetype VERSION 2.9.1-p3) +hunter_default_version(freetype-gl VERSION 0.0.0-1a8c007-p0) hunter_default_version(frugally-deep VERSION 0.2.2-p0) hunter_default_version(gRPC VERSION 1.17.2-p0) hunter_default_version(gauze VERSION 0.7.1) diff --git a/cmake/projects/freetype-gl/ci/build.sh b/cmake/projects/freetype-gl/ci/build.sh new file mode 100644 index 0000000000..0ea8a11abc --- /dev/null +++ b/cmake/projects/freetype-gl/ci/build.sh @@ -0,0 +1,4 @@ +# Install packages +sudo apt-get install -y libgl1-mesa-dev + +bash .github/workflows/ci/build.sh diff --git a/cmake/projects/freetype-gl/ci/matrix.json b/cmake/projects/freetype-gl/ci/matrix.json new file mode 100644 index 0000000000..b42717ef57 --- /dev/null +++ b/cmake/projects/freetype-gl/ci/matrix.json @@ -0,0 +1,16 @@ +[ + { "example": "freetype-gl", "toolchain": "clang-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "gcc-7-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-18.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "sanitize-address-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "sanitize-leak-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "sanitize-thread-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "freetype-gl", "toolchain": "ninja-vs-15-2017-win64-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "nmake-vs-15-2017-win64-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "vs-15-2017-win64-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "vs-14-2015-sdk-8-1", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "mingw-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "freetype-gl", "toolchain": "msys-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" } +] diff --git a/cmake/projects/freetype-gl/hunter.cmake b/cmake/projects/freetype-gl/hunter.cmake new file mode 100644 index 0000000000..8f2817e07e --- /dev/null +++ b/cmake/projects/freetype-gl/hunter.cmake @@ -0,0 +1,32 @@ +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_add_version) +include(hunter_cacheable) +include(hunter_cmake_args) +include(hunter_download) +include(hunter_pick_scheme) + +hunter_add_version( + PACKAGE_NAME + freetype-gl + VERSION + "0.0.0-1a8c007-p0" #project has no releases so using 0.0.0-commit-patch + URL + "https://github.com/cpp-pm/freetype-gl/archive/v0.0.0-1a8c007-p0.tar.gz" + SHA1 + 923b6a4fad097beefa6aa6c759e7fa4010bf9214 +) + +hunter_cmake_args( + freetype-gl + CMAKE_ARGS + freetype-gl_USE_HUNTER=ON + freetype-gl_BUILD_DEMOS=OFF + freetype-gl_BUILD_TESTS=OFF + freetype-gl_BUILD_APIDOC=OFF + freetype-gl_BUILD_MAKEFONT=OFF +) + +hunter_pick_scheme(DEFAULT url_sha1_cmake) +hunter_cacheable(freetype-gl) +hunter_download(PACKAGE_NAME freetype-gl) diff --git a/docs/packages/graphics.rst b/docs/packages/graphics.rst index aa2263c0e1..d9b3fa32da 100644 --- a/docs/packages/graphics.rst +++ b/docs/packages/graphics.rst @@ -1,6 +1,7 @@ .. spelling:: freetype + opengl shaders Graphics 2D/3D @@ -9,6 +10,7 @@ Graphics 2D/3D - :ref:`pkg.aglet` - Tiny cross platform (headless) OpenGL context creation - :ref:`pkg.Assimp` - portable Open Source library to import various well-known 3D model formats in a uniform manner - :ref:`pkg.freetype` - render freetype fonts + - :ref:`pkg.freetype-gl` - render freetype fonts in opengl - :ref:`pkg.glew` - The OpenGL Extension Wrangler Library - :ref:`pkg.imgui` - Immediate-mode, bloat-free graphical user interface library for C++ - :ref:`pkg.mojoshader` - MojoShader is a library to work with Direct3D shaders on alternate 3D APIs and non-Windows platforms diff --git a/docs/packages/pkg/freetype-gl.rst b/docs/packages/pkg/freetype-gl.rst new file mode 100644 index 0000000000..670f2f3577 --- /dev/null +++ b/docs/packages/pkg/freetype-gl.rst @@ -0,0 +1,22 @@ +.. spelling:: + + freetype + freetype-gl + gl + +.. index:: graphics ; freetype-gl + +.. _pkg.freetype-gl: + +freetype-gl +=========== + +- `Official `__ +- `Hunterized `__ +- `Example `__ + (`pr-249 `__) + +.. literalinclude:: /../examples/freetype-gl/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/examples/freetype-gl/CMakeLists.txt b/examples/freetype-gl/CMakeLists.txt new file mode 100644 index 0000000000..503ae98ae4 --- /dev/null +++ b/examples/freetype-gl/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.0) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-freetype-gl) + +# DOCUMENTATION_START { +hunter_add_package(freetype-gl) +find_package(freetype-gl CONFIG REQUIRED) + +add_executable(freetype-gl-example main.cpp) +target_link_libraries(freetype-gl-example PRIVATE freetype-gl::freetype-gl) +# DOCUMENTATION_END } diff --git a/examples/freetype-gl/main.cpp b/examples/freetype-gl/main.cpp new file mode 100644 index 0000000000..86f4474b86 --- /dev/null +++ b/examples/freetype-gl/main.cpp @@ -0,0 +1,8 @@ +#include "freetype-gl/freetype-gl.h" + +int main() +{ + texture_glyph_t *emptyGlyph=texture_glyph_new(); + + return 1; +}