cmake_minimum_required(VERSION 2.8 FATAL_ERROR) set (CMAKE_POSITION_INDEPENDENT_CODE TRUE) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) project(point-process CXX) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) set(EXTERNAL_LIBS_ROOT "" CACHE PATH "Path to external library folder (Provide for convience on Windows)") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Type of build" FORCE) endif() if(NOT WIN32) set(CMAKE_CXX_FLAGS "-std=c++11 -Wreturn-type" ${CMAKE_CXX_FLAGS}) else() add_definitions(-DNOMINMAX) endif() option(LAS_SUPPORT "Use libLAS and laszip to enable LAS/LAZ file reading" ON) option(GDAL_SUPPORT "Use GDAL to load/write DEMs and performance coordinate transforms" ON) if (EXTERNAL_LIBS_ROOT) set(BOOST_ROOT ${EXTERNAL_LIBS_ROOT}) find_path(GDAL_INCLUDE_DIR NAMES gdal.h PATHS ${EXTERNAL_LIBS_ROOT}/include) find_library(GDAL_LIBRARY NAMES gdal_i gdal PATHS ${EXTERNAL_LIBS_ROOT}/lib) endif() if (GDAL_SUPPORT) find_package(GDAL) include_directories(${GDAL_INCLUDE_DIRS}) add_definitions(-DGDAL_SUPPORT) endif() if (LAS_SUPPORT) add_definitions(-DLAS_SUPPORT) find_path(libLAS_INCLUDE_FILE NAMES liblas.hpp PATHS /usr/local/include/liblas ${EXTERNAL_LIBS_ROOT}/include/liblas) get_filename_component(libLAS_INCLUDE_DIRS ${libLAS_INCLUDE_FILE} DIRECTORY) find_library(libLAS_LIBRARIES NAMES las liblas PATHS ${EXTERNAL_LIBS_ROOT}/lib) if (EXTERNAL_LIBS_ROOT) find_path(GDAL_INCLUDE_DIR NAMES gdal.h PATHS ${EXTERNAL_LIBS_ROOT}/include) find_library(GDAL_LIBRARY NAMES gdal_i gdal PATHS ${EXTERNAL_LIBS_ROOT}/lib) endif() find_package(Boost REQUIRED COMPONENTS filesystem) # Required by liblas link_directories(${Boost_LIBRARY_DIRS}) include_directories(${libLAS_INCLUDE_DIRS}) include_directories(${Boost_INCLUDE_DIRS}) endif() set(JSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/json) include_directories(${JSON_INCLUDE_DIR}) add_subdirectory(external) include_directories("./include") include_directories("./external") add_subdirectory("./lib") add_subdirectory("./src") add_subdirectory("./test") export(TARGETS core-lib tinyxml jsoncpp FILE point-process-targets.cmake) configure_file(point-process-config.cmake.in "${PROJECT_BINARY_DIR}/point-process-config.cmake" @ONLY) export(PACKAGE point-process)