# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. cmake_minimum_required(VERSION 3.13..3.26) project(sandboxed_libtiff CXX) include(CTest) include(GoogleTest) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) if(NOT TARGET sapi::sapi) set(SAPI_ROOT "../.." CACHE PATH "Path to the Sandboxed API source tree") add_subdirectory("${SAPI_ROOT}" "${CMAKE_BINARY_DIR}/sandboxed-api-build" EXCLUDE_FROM_ALL) endif() FetchContent_Declare(libtiff GIT_REPOSITORY https://gitlab.com/libtiff/libtiff GIT_TAG v4.4.0 # 2022-05-20 ) FetchContent_MakeAvailable(libtiff) add_subdirectory(wrapper) add_sapi_library(tiff_sapi # List of functions that we want to include in the # generated sandboxed API class FUNCTIONS TIFFOpen TIFFClose TIFFGetField1 TIFFGetField2 TIFFGetField3 TIFFSetFieldUChar1 TIFFSetFieldUChar2 TIFFSetFieldUChar3 TIFFSetFieldSChar1 TIFFSetFieldSChar2 TIFFSetFieldSChar3 TIFFSetFieldU1 TIFFSetFieldU2 TIFFSetFieldU3 TIFFSetFieldS1 TIFFSetFieldS2 TIFFSetFieldS3 TIFFSetFieldUShort1 TIFFSetFieldUShort2 TIFFSetFieldUShort3 TIFFSetFieldSShort1 TIFFSetFieldSShort2 TIFFSetFieldSShort3 TIFFSetFieldULLong1 TIFFSetFieldULLong2 TIFFSetFieldULLong3 TIFFSetFieldSLLong1 TIFFSetFieldSLLong2 TIFFSetFieldSLLong3 TIFFSetFieldFloat1 TIFFSetFieldFloat2 TIFFSetFieldFloat3 TIFFSetFieldDouble1 TIFFSetFieldDouble2 TIFFSetFieldDouble3 TIFFReadRGBATile TIFFReadRGBATileExt TIFFReadEncodedTile TIFFReadEncodedStrip TIFFReadFromUserBuffer TIFFTileSize TIFFSetDirectory TIFFFreeDirectory TIFFCreateDirectory TIFFForceStrileArrayWriting TIFFDeferStrileArrayWriting TIFFWriteCheck TIFFWriteScanline TIFFWriteDirectory TIFFWriteEncodedTile TIFFWriteEncodedStrip TIFFGetStrileOffsetWithErr TIFFGetStrileByteCountWithErr TIFFCreateEXIFDirectory TIFFWriteCustomDirectory INPUTS "${libtiff_SOURCE_DIR}/libtiff/tiffio.h" wrapper/func.h # Header files or .cc files that should be parsed LIBRARY wrapped_tiff # Library dependency from the add_library() above LIBRARY_NAME Tiff # Name prefix for the generated header. Will be # suffixed with "Api" and "Sandbox" as needed. NAMESPACE "" # Optional C++ namespace to wrap the generated code ) add_library(sapi_contrib::libtiff ALIAS tiff_sapi) target_include_directories(tiff_sapi INTERFACE "${PROJECT_BINARY_DIR}" # To find the generated SAPI header ) if (SAPI_BUILD_EXAMPLES) add_subdirectory(example) endif() if (BUILD_TESTING AND SAPI_BUILD_TESTING) add_subdirectory(test) endif()