1# Copyright 2020 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.10) 16 17project(test CXX C) 18 19set(CMAKE_CXX_STANDARD 17) 20set(CMAKE_CXX_STANDARD_REQUIRED True) 21 22find_package(PNG REQUIRED) 23find_package(PkgConfig REQUIRED) 24pkg_check_modules(libpcre REQUIRED IMPORTED_TARGET libpcre) 25pkg_check_modules(proj REQUIRED IMPORTED_TARGET proj) 26 27set(SAPI_ROOT "${PROJECT_SOURCE_DIR}/../.." CACHE PATH "Path to the Sandboxed API source tree") 28# cmake .. -G Ninja -DSAPI_ROOT=$HOME/sapi_root 29 30set(SAPI_BUILD_EXAMPLES OFF CACHE BOOL "") 31set(SAPI_BUILD_TESTING OFF CACHE BOOL "") 32add_subdirectory("${SAPI_ROOT}" 33 "${CMAKE_BINARY_DIR}/sandboxed-api-build" 34 # Omit this to have the full Sandboxed API in IDE 35 EXCLUDE_FROM_ALL) 36 37add_library(libgdal STATIC IMPORTED) 38set_property(TARGET libgdal PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libgdal.a") 39 40target_link_libraries(libgdal INTERFACE 41 crypto 42 expat 43 jpeg 44 PkgConfig::libpcre 45 PkgConfig::proj 46 sqlite3 47 tiff 48 z 49 pthread 50 m 51 rt 52 dl 53 curl 54 PNG::PNG 55) 56 57add_sapi_library(gdal_sapi 58 FUNCTIONS GDALOpen 59 GDALAllRegister 60 GDALGetDatasetDriver 61 GDALGetDriverShortName 62 GDALGetDriverLongName 63 GDALGetGeoTransform 64 GDALGetRasterBand 65 GDALGetBlockSize 66 GDALGetRasterBandXSize 67 GDALGetRasterBandYSize 68 GDALRasterIO 69 INPUTS "/usr/include/gdal/gdal.h" 70 LIBRARY libgdal 71 LIBRARY_NAME GDAL 72 NAMESPACE "" 73) 74 75target_include_directories(gdal_sapi INTERFACE 76 "${PROJECT_BINARY_DIR}" 77) 78 79add_executable(raster 80 raster.cc 81) 82 83target_link_libraries(raster 84 gdal_sapi 85 sapi::sapi 86) 87