summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2020-05-20 18:59:35 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2020-05-20 18:59:35 +0200
commit90fb1eb4e78a84649ac9e7a75e585e689f74ec31 (patch)
treee5ed60f2d3ab9bc2858f2acbce14b4f302521668
parent62467b86871aee3d70c7445f3cb79f0858ec566e (diff)
Added missing dependency Harfbuzz to GTK3
-rw-r--r--cmake/FindGTK3.cmake3
-rw-r--r--cmake/FindHarfbuzz.cmake58
2 files changed, 60 insertions, 1 deletions
diff --git a/cmake/FindGTK3.cmake b/cmake/FindGTK3.cmake
index 049a276f..163d6c01 100644
--- a/cmake/FindGTK3.cmake
+++ b/cmake/FindGTK3.cmake
@@ -35,7 +35,8 @@ set(GTK3_DEPS
GDK3
Pango
Cairo
- GDKPixbuf)
+ GDKPixbuf
+ Harfbuzz)
if(PKG_CONFIG_FOUND)
pkg_search_module(GTK3_PKG QUIET gtk+-3.0)
diff --git a/cmake/FindHarfbuzz.cmake b/cmake/FindHarfbuzz.cmake
new file mode 100644
index 00000000..f35598f0
--- /dev/null
+++ b/cmake/FindHarfbuzz.cmake
@@ -0,0 +1,58 @@
+find_package(PkgConfig)
+
+set(Harfbuzz_DEPS)
+
+if(PKG_CONFIG_FOUND)
+ pkg_search_module(Harfbuzz_PKG harfbuzz)
+endif()
+
+find_library(Harfbuzz_LIBRARY harfbuzz HINTS ${Harfbuzz_PKG_LIBRARY_DIRS})
+set(Harfbuzz harfbuzz)
+
+if(Harfbuzz_LIBRARY)
+ add_library(${Harfbuzz} SHARED IMPORTED)
+ set_property(TARGET ${Harfbuzz} PROPERTY IMPORTED_LOCATION "${Harfbuzz_LIBRARY}")
+ set_property(TARGET ${Harfbuzz} PROPERTY INTERFACE_COMPILE_OPTIONS "${Harfbuzz_PKG_CFLAGS_OTHER}")
+
+ set(Harfbuzz_INCLUDE_DIRS)
+
+ find_path(Harfbuzz_INCLUDE_DIR "hb.h"
+ HINTS ${Harfbuzz_PKG_INCLUDE_DIRS})
+
+ if(Harfbuzz_INCLUDE_DIR)
+ file(STRINGS "${Harfbuzz_INCLUDE_DIR}/hb-version.h" HB_VERSION_MAJOR REGEX "^#define HB_VERSION_MAJOR +\\(?([0-9]+)\\)?$")
+ string(REGEX REPLACE "^#define HB_VERSION_MAJOR \\(?([0-9]+)\\)?$" "\\1" HB_VERSION_MAJOR "${HB_VERSION_MAJOR}")
+ file(STRINGS "${Harfbuzz_INCLUDE_DIR}/hb-version.h" HB_VERSION_MINOR REGEX "^#define HB_VERSION_MINOR +\\(?([0-9]+)\\)?$")
+ string(REGEX REPLACE "^#define HB_VERSION_MINOR \\(?([0-9]+)\\)?$" "\\1" HB_VERSION_MINOR "${HB_VERSION_MINOR}")
+ file(STRINGS "${Harfbuzz_INCLUDE_DIR}/hb-version.h" HB_VERSION_MICRO REGEX "^#define HB_VERSION_MICRO +\\(?([0-9]+)\\)?$")
+ string(REGEX REPLACE "^#define HB_VERSION_MICRO \\(?([0-9]+)\\)?$" "\\1" HB_VERSION_MICRO "${HB_VERSION_MICRO}")
+ set(Harfbuzz_VERSION "${HB_VERSION_MAJOR}.${HB_VERSION_MINOR}.${HB_VERSION_MICRO}")
+ unset(HB_VERSION_MAJOR)
+ unset(HB_VERSION_MINOR)
+ unset(HB_VERSION_MICRO)
+
+ list(APPEND Harfbuzz_INCLUDE_DIRS ${Harfbuzz_INCLUDE_DIR})
+ set_property(TARGET ${Harfbuzz} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${Harfbuzz_INCLUDE_DIR}")
+ endif()
+endif()
+
+set(Harfbuzz_DEPS_FOUND_VARS)
+foreach(harfbuzz_dep ${Harfbuzz_DEPS})
+ find_package(${harfbuzz_dep})
+
+ list(APPEND Harfbuzz_DEPS_FOUND_VARS "${harfbuzz_dep}_FOUND")
+ list(APPEND Harfbuzz_INCLUDE_DIRS ${${harfbuzz_dep}_INCLUDE_DIRS})
+
+ set_property (TARGET ${Harfbuzz} APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${${harfbuzz_dep}}")
+endforeach(harfbuzz_dep)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Harfbuzz
+ REQUIRED_VARS
+ Harfbuzz_LIBRARY
+ Harfbuzz_INCLUDE_DIRS
+ ${Harfbuzz_DEPS_FOUND_VARS}
+ VERSION_VAR
+ Harfbuzz_VERSION)
+
+unset(Harfbuzz_DEPS_FOUND_VARS)