sandboxed-api/oss-internship-2020/gdal/raster_to_gtiff/CMakeLists.txt
Copybara-Service cba334a9d1 Merge pull request #64 from bohdanty:gdal_sandbox
PiperOrigin-RevId: 337856019
Change-Id: Ib1d9c5614f02da4df8d624f006f31ea09bb5c560
2020-10-19 08:08:03 -07:00

142 lines
3.1 KiB
CMake

# 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
#
# http://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.12)
project(GDALSandbox CXX C)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(SAPI_ROOT "" CACHE PATH "Path to the Sandboxed API source tree")
set(ENABLE_TESTS OFF CACHE BOOL "Enable GDAL sandbox tests")
set(GDAL_HEADER_PREFIX "/usr/local/include" CACHE PATH "Prefix of the path to gdal.h")
set(LIBGDAL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/lib" CACHE PATH "Prefix of the path to libgdal.a")
set(LIBPROJ_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/lib" CACHE PATH "Prefix of the path to libproj.a")
add_subdirectory("${SAPI_ROOT}"
"${CMAKE_BINARY_DIR}/sandboxed-api-build"
EXCLUDE_FROM_ALL)
add_library(libgdal STATIC IMPORTED)
set_property(TARGET libgdal PROPERTY IMPORTED_LOCATION
"${LIBGDAL_PREFIX}/libgdal.a")
add_library(libproj STATIC IMPORTED)
set_property(TARGET libproj PROPERTY IMPORTED_LOCATION
"${LIBPROJ_PREFIX}/libproj.a")
target_link_libraries(libgdal INTERFACE
crypto
expat
jpeg
libproj
sqlite3
tiff
z
pthread
m
rt
dl
curl
)
add_sapi_library(gdal_sapi
FUNCTIONS
GDALOpen
GDALAllRegister
GDALGetDatasetDriver
GDALCreate
GDALGetDriverByName
GDALGetRasterBand
GDALSetRasterColorInterpretation
GDALSetProjection
GDALSetGeoTransform
GDALSetRasterNoDataValue
GDALRasterIO
GDALClose
INPUTS "${GDAL_HEADER_PREFIX}/gdal.h"
LIBRARY libgdal
LIBRARY_NAME Gdal
NAMESPACE "gdal::sandbox"
)
target_include_directories(gdal_sapi INTERFACE
"${PROJECT_BINARY_DIR}"
)
add_library(data_retriever STATIC
get_raster_data.h get_raster_data.cc
)
target_link_libraries(data_retriever
libgdal
)
add_library(utils STATIC
utils.h utils.cc
)
target_link_libraries(utils PUBLIC
sapi::sapi
sandbox2::temp_file
sandbox2::fileops
sandbox2::util
sandbox2::file_base
)
add_library(gtiff_converter STATIC
gtiff_converter.h gtiff_converter.cc
)
target_link_libraries(gtiff_converter PUBLIC
data_retriever
gdal_sapi
sapi::sapi
)
add_executable(raster_to_gtiff
raster_to_gtiff.cc
)
target_link_libraries(raster_to_gtiff
data_retriever
utils
gtiff_converter
)
if (ENABLE_TESTS)
include(GoogleTest)
enable_testing()
add_executable(tests tests.cc)
target_link_libraries(tests PRIVATE
data_retriever
gtiff_converter
utils
gtest
gtest_main
sandbox2::testing
sandbox2::file_base
)
gtest_discover_tests(tests PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp/"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_SOURCE_DIR}"
)
endif()