pcsxr/cmake/FindHarfbuzz.cmake

59 lines
2.3 KiB
CMake

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)