xref: /aosp_15_r20/external/sandboxed-api/oss-internship-2020/gdal/CMakeLists.txt (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
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