autoconf: provide a harfbuzz-config for use from CMake (#822)
parent
e0939d811f
commit
d38f37b2e3
3 changed files with 87 additions and 1 deletions
@ -0,0 +1,82 @@ |
|||||||
|
# Set these variables so that the `${prefix}/lib` expands to something we can |
||||||
|
# remove. |
||||||
|
set(_harfbuzz_remove_string "REMOVE_ME") |
||||||
|
set(exec_prefix "${_harfbuzz_remove_string}") |
||||||
|
set(prefix "${_harfbuzz_remove_string}") |
||||||
|
|
||||||
|
# Compute the installation prefix by stripping components from our current |
||||||
|
# location. |
||||||
|
get_filename_component(_harfbuzz_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) |
||||||
|
get_filename_component(_harfbuzz_prefix "${_harfbuzz_prefix}" DIRECTORY) |
||||||
|
set(_harfbuzz_libdir "@libdir@") |
||||||
|
string(REPLACE "${_harfbuzz_remove_string}/" "" _harfbuzz_libdir "${_harfbuzz_libdir}") |
||||||
|
set(_harfbuzz_libdir_iter "${_harfbuzz_libdir}") |
||||||
|
while (_harfbuzz_libdir_iter) |
||||||
|
get_filename_component(_harfbuzz_libdir_iter "${_harfbuzz_libdir_iter}" DIRECTORY) |
||||||
|
get_filename_component(_harfbuzz_prefix "${_harfbuzz_prefix}" DIRECTORY) |
||||||
|
endwhile () |
||||||
|
unset(_harfbuzz_libdir_iter) |
||||||
|
|
||||||
|
# Get the include subdir. |
||||||
|
set(_harfbuzz_includedir "@includedir@") |
||||||
|
string(REPLACE "${_harfbuzz_remove_string}/" "" _harfbuzz_includedir "${_harfbuzz_includedir}") |
||||||
|
|
||||||
|
# Extract version information from libtool. |
||||||
|
set(_harfbuzz_version_info "@HB_LIBTOOL_VERSION_INFO@") |
||||||
|
string(REPLACE ":" ";" _harfbuzz_version_info "${_harfbuzz_version_info}") |
||||||
|
list(GET _harfbuzz_version_info 0 |
||||||
|
_harfbuzz_current) |
||||||
|
list(GET _harfbuzz_version_info 1 |
||||||
|
_harfbuzz_revision) |
||||||
|
list(GET _harfbuzz_version_info 2 |
||||||
|
_harfbuzz_age) |
||||||
|
unset(_harfbuzz_version_info) |
||||||
|
|
||||||
|
if (APPLE) |
||||||
|
set(_harfbuzz_lib_suffix ".0${CMAKE_SHARED_LIBRARY_SUFFIX}") |
||||||
|
elseif (UNIX) |
||||||
|
set(_harfbuzz_lib_suffix "${CMAKE_SHARED_LIBRARY_SUFFIX}.0.${_harfbuzz_current}.${_harfbuzz_revision}") |
||||||
|
else () |
||||||
|
# Unsupported. |
||||||
|
set(harfbuzz_FOUND 0) |
||||||
|
endif () |
||||||
|
|
||||||
|
# Add the libraries. |
||||||
|
add_library(harfbuzz::harfbuzz SHARED IMPORTED) |
||||||
|
set_target_properties(harfbuzz::harfbuzz PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${_harfbuzz_prefix}/${_harfbuzz_includedir}/harfbuzz" |
||||||
|
IMPORTED_LOCATION "${_harfbuzz_prefix}/${_harfbuzz_libdir}/libharfbuzz${_harfbuzz_lib_suffix}") |
||||||
|
|
||||||
|
add_library(harfbuzz::icu SHARED IMPORTED) |
||||||
|
set_target_properties(harfbuzz::icu PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${_harfbuzz_prefix}/${_harfbuzz_includedir}/harfbuzz" |
||||||
|
INTERFACE_LINK_LIBRARIES "harfbuzz::harfbuzz" |
||||||
|
IMPORTED_LOCATION "${_harfbuzz_prefix}/${_harfbuzz_libdir}/libharfbuzz-icu${_harfbuzz_lib_suffix}") |
||||||
|
|
||||||
|
add_library(harfbuzz::subset SHARED IMPORTED) |
||||||
|
set_target_properties(harfbuzz::subset PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${_harfbuzz_prefix}/${_harfbuzz_includedir}/harfbuzz" |
||||||
|
INTERFACE_LINK_LIBRARIES "harfbuzz::harfbuzz" |
||||||
|
IMPORTED_LOCATION "${_harfbuzz_prefix}/${_harfbuzz_libdir}/libharfbuzz-subset${_harfbuzz_lib_suffix}") |
||||||
|
|
||||||
|
# Only add the gobject library if it was built. |
||||||
|
set(_harfbuzz_have_gobject "@have_gobject@") |
||||||
|
if (_harfbuzz_have_gobject) |
||||||
|
add_library(harfbuzz::gobject SHARED IMPORTED) |
||||||
|
set_target_properties(harfbuzz::gobject PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${_harfbuzz_prefix}/${_harfbuzz_includedir}/harfbuzz" |
||||||
|
INTERFACE_LINK_LIBRARIES "harfbuzz::harfbuzz" |
||||||
|
IMPORTED_LOCATION "${_harfbuzz_prefix}/${_harfbuzz_libdir}/libharfbuzz-gobject${_harfbuzz_lib_suffix}") |
||||||
|
endif () |
||||||
|
|
||||||
|
# Clean out variables we used in our scope. |
||||||
|
unset(_harfbuzz_lib_suffix) |
||||||
|
unset(_harfbuzz_current) |
||||||
|
unset(_harfbuzz_revision) |
||||||
|
unset(_harfbuzz_age) |
||||||
|
unset(_harfbuzz_includedir) |
||||||
|
unset(_harfbuzz_libdir) |
||||||
|
unset(_harfbuzz_prefix) |
||||||
|
unset(exec_prefix) |
||||||
|
unset(prefix) |
||||||
|
unset(_harfbuzz_remove_string) |
Loading…
Reference in new issue