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(sapi_uriparser CXX) 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 EXCLUDE_FROM_ALL) 28endif() 29 30set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) 31set(URIPARSER_BUILD_DOCS OFF CACHE BOOL "" FORCE) 32set(URIPARSER_BUILD_TESTS OFF CACHE BOOL "" FORCE) 33set(URIPARSER_BUILD_TOOLS OFF CACHE BOOL "" FORCE) 34FetchContent_Declare(uriparser 35 GIT_REPOSITORY https://github.com/uriparser/uriparser 36 GIT_TAG a259209a57f7123d4bc422336ce0d420d41f4f5e 37) 38FetchContent_MakeAvailable(uriparser) 39 40configure_file(uri.gen.h.in uri.gen.h) 41 42add_sapi_library( 43 sapi_uriparser 44 45 FUNCTIONS 46 uriParseUriA 47 uriEscapeA 48 49 uriAddBaseUriA 50 uriRemoveBaseUriA 51 52 uriToStringA 53 uriToStringCharsRequiredA 54 55 uriNormalizeSyntaxMaskRequiredA 56 uriNormalizeSyntaxExA 57 58 uriDissectQueryMallocA 59 uriFreeQueryListA 60 61 uriFreeUriMembersA 62 63 INPUTS 64 "${CMAKE_CURRENT_BINARY_DIR}/uri.gen.h" 65 66 LIBRARY uriparser 67 LIBRARY_NAME Uriparser 68 NAMESPACE "" 69) 70add_library(sapi_contrib::uriparser ALIAS sapi_uriparser) 71target_include_directories(sapi_uriparser INTERFACE 72 "${PROJECT_BINARY_DIR}" 73 "${SAPI_SOURCE_DIR}" 74) 75 76if(SAPI_BUILD_EXAMPLES) 77 add_subdirectory(example) 78endif() 79 80if(BUILD_TESTING AND SAPI_BUILD_TESTING) 81 add_subdirectory(test) 82endif() 83