1*ec63e07aSXin Li# Copyright 2020 Google LLC 2*ec63e07aSXin Li# 3*ec63e07aSXin Li# Licensed under the Apache License, Version 2.0 (the "License"); 4*ec63e07aSXin Li# you may not use this file except in compliance with the License. 5*ec63e07aSXin Li# You may obtain a copy of the License at 6*ec63e07aSXin Li# 7*ec63e07aSXin Li# https://www.apache.org/licenses/LICENSE-2.0 8*ec63e07aSXin Li# 9*ec63e07aSXin Li# Unless required by applicable law or agreed to in writing, software 10*ec63e07aSXin Li# distributed under the License is distributed on an "AS IS" BASIS, 11*ec63e07aSXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*ec63e07aSXin Li# See the License for the specific language governing permissions and 13*ec63e07aSXin Li# limitations under the License. 14*ec63e07aSXin Li 15*ec63e07aSXin Licmake_minimum_required(VERSION 3.10) 16*ec63e07aSXin Li 17*ec63e07aSXin Liproject(test CXX C) 18*ec63e07aSXin Li 19*ec63e07aSXin Liset(CMAKE_CXX_STANDARD 17) 20*ec63e07aSXin Liset(CMAKE_CXX_STANDARD_REQUIRED True) 21*ec63e07aSXin Li 22*ec63e07aSXin Lifind_package(PNG REQUIRED) 23*ec63e07aSXin Lifind_package(PkgConfig REQUIRED) 24*ec63e07aSXin Lipkg_check_modules(libpcre REQUIRED IMPORTED_TARGET libpcre) 25*ec63e07aSXin Lipkg_check_modules(proj REQUIRED IMPORTED_TARGET proj) 26*ec63e07aSXin Li 27*ec63e07aSXin Liset(SAPI_ROOT "${PROJECT_SOURCE_DIR}/../.." CACHE PATH "Path to the Sandboxed API source tree") 28*ec63e07aSXin Li# cmake .. -G Ninja -DSAPI_ROOT=$HOME/sapi_root 29*ec63e07aSXin Li 30*ec63e07aSXin Liset(SAPI_BUILD_EXAMPLES OFF CACHE BOOL "") 31*ec63e07aSXin Liset(SAPI_BUILD_TESTING OFF CACHE BOOL "") 32*ec63e07aSXin Liadd_subdirectory("${SAPI_ROOT}" 33*ec63e07aSXin Li "${CMAKE_BINARY_DIR}/sandboxed-api-build" 34*ec63e07aSXin Li # Omit this to have the full Sandboxed API in IDE 35*ec63e07aSXin Li EXCLUDE_FROM_ALL) 36*ec63e07aSXin Li 37*ec63e07aSXin Liadd_library(libgdal STATIC IMPORTED) 38*ec63e07aSXin Liset_property(TARGET libgdal PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libgdal.a") 39*ec63e07aSXin Li 40*ec63e07aSXin Litarget_link_libraries(libgdal INTERFACE 41*ec63e07aSXin Li crypto 42*ec63e07aSXin Li expat 43*ec63e07aSXin Li jpeg 44*ec63e07aSXin Li PkgConfig::libpcre 45*ec63e07aSXin Li PkgConfig::proj 46*ec63e07aSXin Li sqlite3 47*ec63e07aSXin Li tiff 48*ec63e07aSXin Li z 49*ec63e07aSXin Li pthread 50*ec63e07aSXin Li m 51*ec63e07aSXin Li rt 52*ec63e07aSXin Li dl 53*ec63e07aSXin Li curl 54*ec63e07aSXin Li PNG::PNG 55*ec63e07aSXin Li) 56*ec63e07aSXin Li 57*ec63e07aSXin Liadd_sapi_library(gdal_sapi 58*ec63e07aSXin Li FUNCTIONS GDALOpen 59*ec63e07aSXin Li GDALAllRegister 60*ec63e07aSXin Li GDALGetDatasetDriver 61*ec63e07aSXin Li GDALGetDriverShortName 62*ec63e07aSXin Li GDALGetDriverLongName 63*ec63e07aSXin Li GDALGetGeoTransform 64*ec63e07aSXin Li GDALGetRasterBand 65*ec63e07aSXin Li GDALGetBlockSize 66*ec63e07aSXin Li GDALGetRasterBandXSize 67*ec63e07aSXin Li GDALGetRasterBandYSize 68*ec63e07aSXin Li GDALRasterIO 69*ec63e07aSXin Li INPUTS "/usr/include/gdal/gdal.h" 70*ec63e07aSXin Li LIBRARY libgdal 71*ec63e07aSXin Li LIBRARY_NAME GDAL 72*ec63e07aSXin Li NAMESPACE "" 73*ec63e07aSXin Li) 74*ec63e07aSXin Li 75*ec63e07aSXin Litarget_include_directories(gdal_sapi INTERFACE 76*ec63e07aSXin Li "${PROJECT_BINARY_DIR}" 77*ec63e07aSXin Li) 78*ec63e07aSXin Li 79*ec63e07aSXin Liadd_executable(raster 80*ec63e07aSXin Li raster.cc 81*ec63e07aSXin Li) 82*ec63e07aSXin Li 83*ec63e07aSXin Litarget_link_libraries(raster 84*ec63e07aSXin Li gdal_sapi 85*ec63e07aSXin Li sapi::sapi 86*ec63e07aSXin Li) 87