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