Initial community commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index db48e9f..5c35276 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -328,6 +328,10 @@ else ()
|
||||
list(APPEND BASE_SRCS src/base/ftdebug.c)
|
||||
endif ()
|
||||
|
||||
+if(MSVC)
|
||||
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
|
||||
+endif()
|
||||
+
|
||||
if (BUILD_FRAMEWORK)
|
||||
list(APPEND BASE_SRCS builds/mac/freetype-Info.plist)
|
||||
endif ()
|
||||
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
|
||||
index 4f2eaca..1e01fe4 100644
|
||||
--- a/include/freetype/freetype.h
|
||||
+++ b/include/freetype/freetype.h
|
||||
@@ -1038,6 +1038,11 @@ FT_BEGIN_HEADER
|
||||
* Especially for TrueType fonts see also the documentation for
|
||||
* @FT_Size_Metrics.
|
||||
*/
|
||||
+
|
||||
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
|
||||
+#define generic GenericFromFreeTypeLibrary
|
||||
+#endif
|
||||
+
|
||||
typedef struct FT_FaceRec_
|
||||
{
|
||||
FT_Long num_faces;
|
||||
@@ -1910,6 +1915,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
} FT_GlyphSlotRec;
|
||||
|
||||
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
|
||||
+#undef generic
|
||||
+#endif
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
|
||||
index 3f8619d..edf03b6 100644
|
||||
--- a/src/base/ftobjs.c
|
||||
+++ b/src/base/ftobjs.c
|
||||
@@ -528,6 +528,9 @@
|
||||
return error;
|
||||
}
|
||||
|
||||
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
|
||||
+#define generic GenericFromFreeTypeLibrary
|
||||
+#endif
|
||||
|
||||
static void
|
||||
ft_glyphslot_clear( FT_GlyphSlot slot )
|
||||
@@ -1195,6 +1198,9 @@
|
||||
FT_FREE( face );
|
||||
}
|
||||
|
||||
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
|
||||
+#undef generic
|
||||
+#endif
|
||||
|
||||
static void
|
||||
Destroy_Driver( FT_Driver driver )
|
||||
@@ -0,0 +1,23 @@
|
||||
diff --git a/builds/cmake/FindBrotliDec.cmake b/builds/cmake/FindBrotliDec.cmake
|
||||
index 46356b1fd..ed4cc2409 100644
|
||||
--- a/builds/cmake/FindBrotliDec.cmake
|
||||
+++ b/builds/cmake/FindBrotliDec.cmake
|
||||
@@ -35,10 +35,17 @@ find_path(BROTLIDEC_INCLUDE_DIRS
|
||||
PATH_SUFFIXES brotli)
|
||||
|
||||
find_library(BROTLIDEC_LIBRARIES
|
||||
- NAMES brotlidec
|
||||
+ NAMES brotlidec brotlidec-static NAMES_PER_DIR
|
||||
HINTS ${PC_BROTLIDEC_LIBDIR}
|
||||
${PC_BROTLIDEC_LIBRARY_DIRS})
|
||||
|
||||
+if(BROTLIDEC_LIBRARIES MATCHES "-static")
|
||||
+ find_library(BROTLICOMMON_LIBRARIES
|
||||
+ NAMES brotlicommon-static
|
||||
+ HINTS ${PC_BROTLIDEC_LIBDIR}
|
||||
+ ${PC_BROTLIDEC_LIBRARY_DIRS})
|
||||
+ set(BROTLIDEC_LIBRARIES ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
|
||||
+endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 469a141a2..eec19c7d0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -517,7 +517,7 @@ if (BZIP2_FOUND)
|
||||
if (PC_BZIP2_FOUND)
|
||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
|
||||
else ()
|
||||
- list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2")
|
||||
+ list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
|
||||
endif ()
|
||||
endif ()
|
||||
if (PNG_FOUND)
|
||||
@@ -0,0 +1,37 @@
|
||||
From 5672a353682a68cb76a03179739bdec0a2f5cf0e Mon Sep 17 00:00:00 2001
|
||||
From: Sean Farrell <sean.farrell@rioki.org>
|
||||
Date: Fri, 19 Aug 2022 15:32:19 +0200
|
||||
Subject: [PATCH] Adds config support for error strings.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index feb4be39a..4eea860e8 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -215,6 +215,8 @@ cmake_dependent_option(FT_REQUIRE_BROTLI
|
||||
"Require support of compressed WOFF2 fonts." OFF
|
||||
"NOT FT_DISABLE_BROTLI" OFF)
|
||||
|
||||
+option(FT_ENABLE_ERROR_STRINGS
|
||||
+ "Enable support for meaningful error descriptions" OFF)
|
||||
|
||||
# Disallow in-source builds
|
||||
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||
@@ -353,6 +355,11 @@ if (BROTLIDEC_FOUND)
|
||||
"/\\* +(#define +FT_CONFIG_OPTION_USE_BROTLI) +\\*/" "\\1"
|
||||
FTOPTION_H "${FTOPTION_H}")
|
||||
endif ()
|
||||
+if (FT_ENABLE_ERROR_STRINGS)
|
||||
+ string(REGEX REPLACE
|
||||
+ "/\\* +(#define +FT_CONFIG_OPTION_ERROR_STRINGS) +\\*/" "\\1"
|
||||
+ FTOPTION_H "${FTOPTION_H}")
|
||||
+endif ()
|
||||
|
||||
set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
|
||||
if (EXISTS "${FTOPTION_H_NAME}")
|
||||
--
|
||||
2.33.0.windows.2
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index cb1b9a0f2..edca5d579 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -508,7 +508,6 @@ set(PKG_CONFIG_REQUIRED_PRIVATE "")
|
||||
set(PKGCONFIG_LIBS_PRIVATE "")
|
||||
|
||||
if (ZLIB_FOUND)
|
||||
- target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
|
||||
+ target_link_libraries(freetype PRIVATE ZLIB::ZLIB)
|
||||
- target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
|
||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib")
|
||||
endif ()
|
||||
@@ -596,12 +596,25 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||
install(
|
||||
EXPORT freetype-targets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
||||
- FILE freetype-config.cmake
|
||||
COMPONENT headers)
|
||||
install(
|
||||
FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
||||
COMPONENT headers)
|
||||
+
|
||||
+ if(ZLIB_FOUND)
|
||||
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake"
|
||||
+[[include(CMakeFindDependencyMacro)
|
||||
+find_dependency(ZLIB)
|
||||
+include("${CMAKE_CURRENT_LIST_DIR}/freetype-targets.cmake")
|
||||
+]])
|
||||
+ else()
|
||||
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake"
|
||||
+[[include("${CMAKE_CURRENT_LIST_DIR}/freetype-targets.cmake")
|
||||
+]])
|
||||
+ endif()
|
||||
+
|
||||
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype)
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
set(FT_VERSION 2.12.1)
|
||||
|
||||
vcpkg_from_sourceforge(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO freetype/freetype2
|
||||
REF ${FT_VERSION}
|
||||
FILENAME freetype-${FT_VERSION}.tar.xz
|
||||
SHA512 6482de1748dc2cc01e033d21a3b492dadb1f039d13d9179685fdcf985e24d7f587cbca4c27ed8a7fdb7d9ad59612642ac5f4db062443154753295363f45c052f
|
||||
PATCHES
|
||||
0003-Fix-UWP.patch
|
||||
brotli-static.patch
|
||||
bzip2.patch
|
||||
fix-exports.patch
|
||||
error-strings.patch
|
||||
)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
zlib FT_REQUIRE_ZLIB
|
||||
bzip2 FT_REQUIRE_BZIP2
|
||||
error-strings FT_ENABLE_ERROR_STRINGS
|
||||
png FT_REQUIRE_PNG
|
||||
brotli FT_REQUIRE_BROTLI
|
||||
INVERTED_FEATURES
|
||||
zlib FT_DISABLE_ZLIB
|
||||
bzip2 FT_DISABLE_BZIP2
|
||||
png FT_DISABLE_PNG
|
||||
brotli FT_DISABLE_BROTLI
|
||||
)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DFT_DISABLE_HARFBUZZ=ON
|
||||
${FEATURE_OPTIONS}
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_copy_pdbs()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/freetype)
|
||||
|
||||
# Rename for easy usage (VS integration; CMake and autotools will not care)
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/include/freetype2/freetype" "${CURRENT_PACKAGES_DIR}/include/freetype")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/include/freetype2/ft2build.h" "${CURRENT_PACKAGES_DIR}/include/ft2build.h")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/freetype2")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
|
||||
# Fix the include dir [freetype2 -> freetype]
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake" CONFIG_MODULE)
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/include/freetype2" "\${_IMPORT_PREFIX}/include" CONFIG_MODULE "${CONFIG_MODULE}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlicommon-static.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlicommon-static.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlicommon-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec-static.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec-static.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake "${CONFIG_MODULE}")
|
||||
|
||||
find_library(FREETYPE_DEBUG NAMES freetyped PATHS "${CURRENT_PACKAGES_DIR}/debug/lib/" NO_DEFAULT_PATH)
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freetype2.pc" _contents)
|
||||
if(FREETYPE_DEBUG)
|
||||
string(REPLACE "-lfreetype" "-lfreetyped" _contents "${_contents}")
|
||||
endif()
|
||||
string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freetype2.pc" "${_contents}")
|
||||
endif()
|
||||
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" _contents)
|
||||
string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" "${_contents}")
|
||||
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake"
|
||||
"${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
|
||||
vcpkg_install_copyright(
|
||||
FILE_LIST
|
||||
"${SOURCE_PATH}/LICENSE.TXT"
|
||||
"${SOURCE_PATH}/docs/FTL.TXT"
|
||||
"${SOURCE_PATH}/docs/GPLv2.TXT"
|
||||
)
|
||||
@@ -0,0 +1,64 @@
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0012 NEW)
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
|
||||
_find_package(${ARGS})
|
||||
|
||||
if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
find_package(ZLIB)
|
||||
endif()
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
find_package(BZip2)
|
||||
endif()
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
find_package(PNG)
|
||||
endif()
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
find_library(BROTLIDEC_LIBRARY_RELEASE NAMES brotlidec brotlidec-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLIDEC_LIBRARY_DEBUG NAMES brotlidec brotlidec-static brotlidecd brotlidec-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_RELEASE NAMES brotlicommon brotlicommon-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_DEBUG NAMES brotlicommon brotlicommon-static brotlicommond brotlicommon-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(BROTLIDEC)
|
||||
select_library_configurations(BROTLICOMMON)
|
||||
endif("@FT_REQUIRE_BROTLI@")
|
||||
|
||||
if(TARGET Freetype::Freetype)
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||
endif()
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2)
|
||||
endif()
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG)
|
||||
endif()
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
if(BROTLIDEC_LIBRARY_DEBUG)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<CONFIG:DEBUG>:${BROTLIDEC_LIBRARY_DEBUG}>")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<CONFIG:DEBUG>:${BROTLICOMMON_LIBRARY_DEBUG}>")
|
||||
endif()
|
||||
if(BROTLIDEC_LIBRARY_RELEASE)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<NOT:$<CONFIG:DEBUG>>:${BROTLIDEC_LIBRARY_RELEASE}>")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<NOT:$<CONFIG:DEBUG>>:${BROTLICOMMON_LIBRARY_RELEASE}>")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(FREETYPE_LIBRARIES)
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${PNG_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
cmake_policy(POP)
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"name": "freetype",
|
||||
"version": "2.12.1",
|
||||
"port-version": 2,
|
||||
"description": "A library to render fonts.",
|
||||
"homepage": "https://www.freetype.org/",
|
||||
"license": "FTL OR GPL-2.0-or-later",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"host": true
|
||||
}
|
||||
],
|
||||
"default-features": [
|
||||
"brotli",
|
||||
"bzip2",
|
||||
"png",
|
||||
"zlib"
|
||||
],
|
||||
"features": {
|
||||
"brotli": {
|
||||
"description": "Support decompression of WOFF2 streams",
|
||||
"dependencies": [
|
||||
"brotli"
|
||||
]
|
||||
},
|
||||
"bzip2": {
|
||||
"description": "Support bzip2 compressed fonts.",
|
||||
"dependencies": [
|
||||
"bzip2"
|
||||
]
|
||||
},
|
||||
"error-strings": {
|
||||
"description": "Enable support for meaningful error descriptions."
|
||||
},
|
||||
"png": {
|
||||
"description": "Support PNG compressed OpenType embedded bitmaps.",
|
||||
"dependencies": [
|
||||
"libpng"
|
||||
]
|
||||
},
|
||||
"zlib": {
|
||||
"description": "Use zlib instead of internal library for DEFLATE",
|
||||
"dependencies": [
|
||||
"zlib"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user