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