xref: /aosp_15_r20/external/sandboxed-api/contrib/woff2/CMakeLists.txt (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1# Copyright 2022 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15cmake_minimum_required(VERSION 3.13..3.26)
16
17project(woff2-sapi CXX C)
18include(CTest)
19
20set(CMAKE_CXX_STANDARD 17)
21set(CMAKE_CXX_STANDARD_REQUIRED True)
22
23if(NOT TARGET sapi::sapi)
24  set(SAPI_ROOT "../.." CACHE PATH "Path to the Sandboxed API source tree")
25  add_subdirectory("${SAPI_ROOT}"
26                   "${CMAKE_BINARY_DIR}/sandboxed-api-build"
27                   # Omit this to have the full Sandboxed API in IDE
28                   EXCLUDE_FROM_ALL)
29endif()
30
31find_package(PkgConfig REQUIRED)
32pkg_check_modules(WOFF2_ENC REQUIRED IMPORTED_TARGET GLOBAL libwoff2enc)
33pkg_check_modules(WOFF2_DEC REQUIRED IMPORTED_TARGET GLOBAL libwoff2dec)
34pkg_check_modules(WOFF2_COMMON REQUIRED IMPORTED_TARGET GLOBAL libwoff2common)
35
36add_library(woff2_sapi_wrapper woff2_wrapper.cc woff2_wrapper.h)
37target_link_libraries(woff2_sapi_wrapper
38  PRIVATE
39    PkgConfig::WOFF2_ENC
40    PkgConfig::WOFF2_DEC
41    PkgConfig::WOFF2_COMMON
42)
43
44add_sapi_library(woff2_sapi
45  FUNCTIONS
46    WOFF2_ConvertWOFF2ToTTF
47    WOFF2_ConvertTTFToWOFF2
48    WOFF2_Free
49  INPUTS
50    "woff2_wrapper.h"
51  LIBRARY
52    woff2_sapi_wrapper
53  LIBRARY_NAME
54    WOFF2
55  NAMESPACE
56    sapi_woff2
57)
58add_library(sapi_contrib::woff2 ALIAS woff2_sapi)
59target_include_directories(woff2_sapi INTERFACE
60  "${PROJECT_BINARY_DIR}"
61  "${SAPI_SOURCE_DIR}"
62)
63
64if(BUILD_TESTING AND SAPI_BUILD_TESTING)
65  enable_testing()
66  add_executable(woff2_sapi_test
67    woff2_sapi_test.cc
68  )
69  target_link_libraries(woff2_sapi_test PRIVATE
70    absl::flags
71    absl::flags_parse
72    sapi_contrib::woff2
73    sapi::test_main
74  )
75  gtest_discover_tests(woff2_sapi_test PROPERTIES
76    ENVIRONMENT "TEST_DATA_DIR=${PROJECT_SOURCE_DIR}/testdata")
77endif()
78