Changeset 1602:f0e1f6d60520


Ignore:
Timestamp:
03/02/10 12:24:48 (5 months ago)
Author:
Mateusz Loskot <mateusz@…>
Branch:
default
Message:

Catch up CMake with Hobu's big refactoring. Unscreamify CMake configuration files.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • CMakeLists.txt

    r1483 r1602  
    1111############################################################################### 
    1212# libLAS general settings 
    13 PROJECT(libLAS) 
     13project(libLAS) 
    1414 
    1515# Name of C++ library 
    16 SET(LIBLAS_LIB_NAME las) 
     16set(LIBLAS_LIB_NAME las) 
    1717 
    1818# Name of C library 
    19 SET(LIBLAS_C_LIB_NAME las_c) 
     19set(LIBLAS_C_LIB_NAME las_c) 
    2020 
    2121# Name of test suite runner 
    22 SET(LIBLAS_UNIT_TEST liblas_test) 
     22set(LIBLAS_UNIT_TEST liblas_test) 
    2323 
    2424# Choose package components 
    25 SET(WITH_UTILITIES TRUE CACHE BOOL "Choose if libLAS utilities should be built") 
    26 SET(WITH_TESTS FALSE CACHE BOOL "Choose if libLAS unit tests should be built") 
     25set(WITH_UTILITIES TRUE CACHE BOOL "Choose if libLAS utilities should be built") 
     26set(WITH_TESTS FALSE CACHE BOOL "Choose if libLAS unit tests should be built") 
    2727 
    2828# Enable CTest and submissions to libLAS dashboard at CDash 
    2929# http://my.cdash.org/index.php?project=libLAS 
    30 SET(ENABLE_CTEST FALSE CACHE BOOL 
     30set(ENABLE_CTEST FALSE CACHE BOOL 
    3131    "Enable CTest to support submissions of results to CDash at http://cdash.org") 
    3232 
    3333############################################################################### 
    3434# CMake settings 
    35 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) 
    36  
    37 SET(CMAKE_COLOR_MAKEFILE ON) 
     35cmake_minimum_required(VERSION 2.6.0) 
     36 
     37set(CMAKE_COLOR_MAKEFILE ON) 
    3838 
    3939# Allow advanced users to generate Makefiles printing detailed commands 
    40 MARK_AS_ADVANCED(CMAKE_VERBOSE_MAKEFILE) 
     40mark_as_advanced(CMAKE_VERBOSE_MAKEFILE) 
    4141 
    4242# Path to additional CMake modules 
    43 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/build/cmake ${CMAKE_MODULE_PATH}) 
     43set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/build/cmake ${CMAKE_MODULE_PATH}) 
    4444 
    4545############################################################################### 
    4646# General build settings 
    4747 
    48 IF(NOT CMAKE_BUILD_TYPE) 
    49     SET(CMAKE_BUILD_TYPE Debug CACHE STRING 
     48if(NOT CMAKE_BUILD_TYPE) 
     49    set(CMAKE_BUILD_TYPE Debug CACHE STRING 
    5050        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel" 
    5151        FORCE) 
    52 ENDIF() 
    53  
    54 SET(BUILD_PEDANTIC TRUE CACHE BOOL "Choose compilation in pedantic or relaxed mode") 
     52endif() 
     53 
     54set(BUILD_PEDANTIC TRUE CACHE BOOL "Choose compilation in pedantic or relaxed mode") 
    5555 
    5656# TODO: Still testing the output paths --mloskot 
    57 SET(LIBLAS_BUILD_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}) 
     57set(LIBLAS_BUILD_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}) 
    5858 
    5959# Output directory in which to build RUNTIME target files. 
    60 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) 
     60set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) 
    6161 
    6262# Output directory in which to build LIBRARY target files 
    63 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) 
     63set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) 
    6464 
    6565# Output directory in which to build ARCHIVE target files. 
    66 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY})  
     66set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY})  
    6767 
    6868############################################################################### 
    6969# Platform and compiler specific settings 
    7070 
    71 IF(WIN32) 
    72     IF (MSVC) 
    73         IF(BUILD_PEDANTIC) 
    74             SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") 
    75         ENDIF() 
    76  
    77         IF (MSVC80 OR MSVC90 OR MSVC10) 
    78             ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) 
    79             ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNING) 
    80         ENDIF() 
     71if(WIN32) 
     72    if (MSVC) 
     73        if(BUILD_PEDANTIC) 
     74            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") 
     75        endif() 
     76 
     77        if (MSVC80 OR MSVC90 OR MSVC10) 
     78            add_definitions(-D_CRT_SECURE_NO_WARNINGS) 
     79            add_definitions(-D_CRT_NONSTDC_NO_WARNING) 
     80        endif() 
    8181 
    8282        # Generate dot-user file with user-specific settings for Visual Studio project 
    83         SET(MSVC_ENVIRONMENT_PATH "" CACHE STRING 
     83        set(MSVC_ENVIRONMENT_PATH "" CACHE STRING 
    8484            "Custom PATH for Environment property in Visual Studio project configuration") 
    85         MARK_AS_ADVANCED(MSVC_ENVIRONMENT_PATH) 
    86         SET(VCPROJ_USER_ENVIRONMENT_PATH_DEBUG "${ENVIRONMENT_PATH}") 
    87         MARK_AS_ADVANCED(VCPROJ_USER_ENVIRONMENT_PATH_DEBUG) 
    88  
    89     ENDIF() 
    90 ELSE() 
    91     IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) 
     85        mark_as_advanced(MSVC_ENVIRONMENT_PATH) 
     86        set(VCPROJ_USER_ENVIRONMENT_PATH_DEBUG "${ENVIRONMENT_PATH}") 
     87        mark_as_advanced(VCPROJ_USER_ENVIRONMENT_PATH_DEBUG) 
     88 
     89    endif() 
     90else() 
     91    if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) 
    9292         
    93         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Wno-long-long -ansi") 
    94  
    95         IF(BUILD_PEDANTIC) 
    96             SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") 
    97         ENDIF() 
     93        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Wno-long-long -ansi") 
     94 
     95        if(BUILD_PEDANTIC) 
     96            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") 
     97        endif() 
    9898         
    99         IF (CMAKE_COMPILER_IS_GNUCXX) 
    100             SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98") 
    101         ENDIF() 
    102     ENDIF() 
    103 ENDIF(WIN32) 
     99        if (CMAKE_COMPILER_IS_GNUCXX) 
     100            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98") 
     101        endif() 
     102    endif() 
     103endif(WIN32) 
    104104 
    105105############################################################################### 
     
    107107 
    108108# Boost C++ Libraries support - optional, default=OFF 
    109 SET(WITH_BOOST FALSE CACHE BOOL "Choose if Boost C++ Libraries support should be built") 
     109set(WITH_BOOST FALSE CACHE BOOL "Choose if Boost C++ Libraries support should be built") 
    110110 
    111111# TODO: Decide minimum required version of Boost. Is 1.38 OK? --mloskot 
    112 IF(WITH_BOOST) 
    113     FIND_PACKAGE(Boost 1.35 REQUIRED iostreams) 
    114  
    115     IF(Boost_FOUND AND Boost_iostreams_FOUND) 
    116       INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) 
    117     ENDIF() 
    118 ENDIF() 
     112if(WITH_BOOST) 
     113    find_package(Boost 1.35 REQUIRED iostreams) 
     114 
     115    if(Boost_FOUND AND Boost_iostreams_FOUND) 
     116      include_directories(${Boost_INCLUDE_DIRS}) 
     117    endif() 
     118endif() 
    119119 
    120120# zlib support - optional, default=OFF 
    121 SET(WITH_ZLIB FALSE CACHE BOOL "Choose if zlib support should be built") 
    122  
    123 IF(WITH_ZLIB) 
    124     FIND_PACKAGE(ZLIB) 
    125  
    126     IF(ZLIB_FOUND) 
    127         INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) 
    128         ADD_DEFINITIONS(-DHAVE_ZLIB=1) 
    129     ENDIF() 
    130 ENDIF() 
     121set(WITH_ZLIB FALSE CACHE BOOL "Choose if zlib support should be built") 
     122 
     123if(WITH_ZLIB) 
     124    find_package(ZLIB) 
     125 
     126    if(ZLIB_FOUND) 
     127        include_directories(${ZLIB_INCLUDE_DIR}) 
     128        add_definitions(-DHAVE_ZLIB=1) 
     129    endif() 
     130endif() 
    131131 
    132132# GeoTIFF support - optional, default=OFF 
    133 SET(WITH_GEOTIFF FALSE CACHE BOOL "Choose if GeoTIFF support should be built") 
    134  
    135 IF(WITH_GEOTIFF) 
    136     FIND_PACKAGE(GeoTIFF 1.2.5) 
    137  
    138     IF(GEOTIFF_FOUND) 
     133set(WITH_GEOTIFF FALSE CACHE BOOL "Choose if GeoTIFF support should be built") 
     134 
     135if(WITH_GEOTIFF) 
     136    find_package(GeoTIFF 1.2.5) 
     137 
     138    if(GEOTIFF_FOUND) 
    139139     
    140140        # Confirm required API is available 
    141         INCLUDE(CheckFunctionExists)  
    142         SET(CMAKE_REQUIRED_LIBRARIES ${GEOTIFF_LIBRARY}) 
    143         CHECK_FUNCTION_EXISTS(ST_Create HAVE_ST_CREATE) 
     141        include(CheckFunctionExists)  
     142        set(CMAKE_REQUIRED_LIBRARIES ${GEOTIFF_LIBRARY}) 
     143        check_function_exists(ST_Create HAVE_ST_CREATE) 
    144144     
    145         IF(NOT HAVE_ST_CREATE) 
    146             SET(GEOTIFF_FOUND) # Reset to NOT found for GeoTIFF 
    147             MESSAGE(FATAL_ERROR "GeoTIFF support requires libgeotiff 1.2.5 or newer.") 
    148         ELSE() 
    149             INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIR}) 
    150             ADD_DEFINITIONS(-DHAVE_LIBGEOTIFF=1) 
    151         ENDIF() 
    152     ENDIF() 
    153 ENDIF() 
     145        if(NOT HAVE_ST_CREATE) 
     146            set(GEOTIFF_FOUND) # Reset to NOT found for GeoTIFF 
     147            message(FATAL_ERROR "GeoTIFF support requires libgeotiff 1.2.5 or newer.") 
     148        else() 
     149            include_directories(${GEOTIFF_INCLUDE_DIR}) 
     150            add_definitions(-DHAVE_LIBGEOTIFF=1) 
     151        endif() 
     152    endif() 
     153endif() 
    154154 
    155155# GDAL/OGR support - optional, default=OFF 
    156 SET(WITH_GDAL FALSE CACHE BOOL "Choose if GDAL support should be built") 
    157  
    158 IF(WITH_GDAL) 
    159     IF (NOT GEOTIFF_FOUND) 
    160         MESSAGE(FATAL_ERROR "GDAL support requires GeoTIFF library which was not selected") 
    161     ENDIF() 
    162  
    163     FIND_PACKAGE(GDAL 1.6.0) 
    164  
    165     IF(GDAL_FOUND) 
     156set(WITH_GDAL FALSE CACHE BOOL "Choose if GDAL support should be built") 
     157 
     158if(WITH_GDAL) 
     159    if (NOT GEOTIFF_FOUND) 
     160        message(FATAL_ERROR "GDAL support requires GeoTIFF library which was not selected") 
     161    endif() 
     162 
     163    find_package(GDAL 1.6.0) 
     164 
     165    if(GDAL_FOUND) 
    166166        # Confirm required API is available 
    167         INCLUDE(CheckFunctionExists)  
    168         SET(CMAKE_REQUIRED_LIBRARIES ${GDAL_LIBRARY}) 
    169         CHECK_FUNCTION_EXISTS(OSRSetEquirectangular2 HAVE_OSRSETEQUIRECTANGULAR2) 
     167        include(CheckFunctionExists)  
     168        set(CMAKE_REQUIRED_LIBRARIES ${GDAL_LIBRARY}) 
     169        check_function_exists(OSRSetEquirectangular2 HAVE_OSRSETEQUIRECTANGULAR2) 
    170170     
    171         IF(NOT HAVE_OSRSETEQUIRECTANGULAR2) 
     171        if(NOT HAVE_OSRSETEQUIRECTANGULAR2) 
    172172            # Reset to NOT found for GDAL/OGR 
    173             SET(GDAL_FOUND) 
    174             MESSAGE(FATAL_ERROR "GDAL support requires GDAL 1.6.0 or newer") 
    175         ELSE() 
    176             INCLUDE_DIRECTORIES(${GDAL_INCLUDE_DIR}) 
    177             ADD_DEFINITIONS(-DHAVE_GDAL=1) 
    178         ENDIF() 
    179     ENDIF() 
    180 ENDIF() 
     173            set(GDAL_FOUND) 
     174            message(FATAL_ERROR "GDAL support requires GDAL 1.6.0 or newer") 
     175        else() 
     176            include_directories(${GDAL_INCLUDE_DIR}) 
     177            add_definitions(-DHAVE_GDAL=1) 
     178        endif() 
     179    endif() 
     180endif() 
    181181 
    182182# Spatial Index support - optional, default=OFF 
    183 SET(WITH_SPATIALINDEX FALSE CACHE BOOL "Choose if SpatialIndex support should be built") 
    184  
    185 IF(WITH_SPATIALINDEX) 
    186     FIND_PACKAGE(SpatialIndex 1.4.0) 
    187  
    188     IF(SPATIALINDEX_FOUND) 
    189         INCLUDE_DIRECTORIES(${SPATIALINDEX_INCLUDE_DIR}) 
    190         IF (IS_DIRECTORY ${SPATIALINDEX_INCLUDE_DIR}/spatialindex) 
    191             INCLUDE_DIRECTORIES(${SPATIALINDEX_INCLUDE_DIR}/spatialindex) 
    192         ENDIF() 
    193         ADD_DEFINITIONS(-DHAVE_SPATIALINDEX=1) 
    194     ENDIF() 
    195 ENDIF() 
     183set(WITH_SPATIALINDEX FALSE CACHE BOOL "Choose if SpatialIndex support should be built") 
     184 
     185if(WITH_SPATIALINDEX) 
     186    find_package(SpatialIndex 1.4.0) 
     187 
     188    if(SPATIALINDEX_FOUND) 
     189        include_directories(${SPATIALINDEX_INCLUDE_DIR}) 
     190        if (IS_DIRECTORY ${SPATIALINDEX_INCLUDE_DIR}/spatialindex) 
     191            include_directories(${SPATIALINDEX_INCLUDE_DIR}/spatialindex) 
     192        endif() 
     193        add_definitions(-DHAVE_SPATIALINDEX=1) 
     194    endif() 
     195endif() 
    196196 
    197197# Oracle support - optional, default=OFF 
    198 SET(WITH_ORACLE FALSE CACHE BOOL "Choose if Oracle support should be built") 
    199  
    200 IF(WITH_ORACLE) 
    201     FIND_PACKAGE(Oracle) 
    202  
    203     IF(ORACLE_FOUND) 
    204         INCLUDE_DIRECTORIES(${ORACLE_INCLUDE_DIR}) 
    205         ADD_DEFINITIONS(-DHAVE_ORACLE=1) 
    206     ENDIF() 
    207 ENDIF() 
     198set(WITH_ORACLE FALSE CACHE BOOL "Choose if Oracle support should be built") 
     199 
     200if(WITH_ORACLE) 
     201    find_package(Oracle) 
     202 
     203    if(ORACLE_FOUND) 
     204        include_directories(${ORACLE_INCLUDE_DIR}) 
     205        add_definitions(-DHAVE_ORACLE=1) 
     206    endif() 
     207endif() 
    208208 
    209209############################################################################### 
    210210# Installation settings 
    211211 
    212 IF(WIN32) 
    213     SET(DEFAULT_LIB_SUBDIR lib) 
    214     SET(DEFAULT_DATA_SUBDIR .) 
    215     SET(DEFAULT_INCLUDE_SUBDIR include) 
    216  
    217     IF (MSVC) 
    218         SET(DEFAULT_BIN_SUBDIR bin) 
    219     ELSE() 
    220         SET(DEFAULT_BIN_SUBDIR .) 
    221     ENDIF() 
    222 ELSE() 
     212if(WIN32) 
     213    set(DEFAULT_LIB_SUBDIR lib) 
     214    set(DEFAULT_DATA_SUBDIR .) 
     215    set(DEFAULT_INCLUDE_SUBDIR include) 
     216 
     217    if (MSVC) 
     218        set(DEFAULT_BIN_SUBDIR bin) 
     219    else() 
     220        set(DEFAULT_BIN_SUBDIR .) 
     221    endif() 
     222else() 
    223223    # Common locatoins for Unix and Mac OS X 
    224     SET(DEFAULT_BIN_SUBDIR bin) 
    225     SET(DEFAULT_LIB_SUBDIR lib) 
    226     SET(DEFAULT_DATA_SUBDIR share/liblas) 
    227     SET(DEFAULT_INCLUDE_SUBDIR include) 
    228 ENDIF() 
     224    set(DEFAULT_BIN_SUBDIR bin) 
     225    set(DEFAULT_LIB_SUBDIR lib) 
     226    set(DEFAULT_DATA_SUBDIR share/liblas) 
     227    set(DEFAULT_INCLUDE_SUBDIR include) 
     228endif() 
    229229 
    230230# Locations are changeable by user to customize layout of libLAS installation 
    231231# (default values are platform-specific) 
    232 SET(LIBLAS_BIN_SUBDIR ${DEFAULT_BIN_SUBDIR} CACHE STRING 
     232set(LIBLAS_BIN_SUBDIR ${DEFAULT_BIN_SUBDIR} CACHE STRING 
    233233    "Subdirectory where executables will be installed") 
    234 SET(LIBLAS_LIB_SUBDIR ${DEFAULT_LIB_SUBDIR} CACHE STRING 
     234set(LIBLAS_LIB_SUBDIR ${DEFAULT_LIB_SUBDIR} CACHE STRING 
    235235    "Subdirectory where libraries will be installed") 
    236 SET(LIBLAS_INCLUDE_SUBDIR ${DEFAULT_INCLUDE_SUBDIR} CACHE STRING 
     236set(LIBLAS_INCLUDE_SUBDIR ${DEFAULT_INCLUDE_SUBDIR} CACHE STRING 
    237237    "Subdirectory where header files will be installed") 
    238 SET(LIBLAS_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING 
     238set(LIBLAS_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING 
    239239    "Subdirectory where data will be installed") 
    240240 
    241241# Mark *_SUBDIR variables as advanced and dedicated to use by power-users only. 
    242 MARK_AS_ADVANCED(LIBLAS_BIN_SUBDIR LIBLAS_LIB_SUBDIR LIBLAS_INCLUDE_SUBDIR LIBLAS_DATA_SUBDIR) 
     242mark_as_advanced(LIBLAS_BIN_SUBDIR LIBLAS_LIB_SUBDIR LIBLAS_INCLUDE_SUBDIR LIBLAS_DATA_SUBDIR) 
    243243 
    244244# Full paths for the installation 
    245 SET(LIBLAS_BIN_DIR ${LIBLAS_BIN_SUBDIR}) 
    246 SET(LIBLAS_LIB_DIR ${LIBLAS_LIB_SUBDIR}) 
    247 SET(LIBLAS_INCLUDE_DIR ${LIBLAS_INCLUDE_SUBDIR}) 
    248 SET(LIBLAS_DATA_DIR ${LIBLAS_DATA_SUBDIR}) 
     245set(LIBLAS_BIN_DIR ${LIBLAS_BIN_SUBDIR}) 
     246set(LIBLAS_LIB_DIR ${LIBLAS_LIB_SUBDIR}) 
     247set(LIBLAS_INCLUDE_DIR ${LIBLAS_INCLUDE_SUBDIR}) 
     248set(LIBLAS_DATA_DIR ${LIBLAS_DATA_SUBDIR}) 
    249249 
    250250############################################################################### 
    251251# Installation commands 
    252252 
    253 INSTALL(FILES AUTHORS ChangeLog COPYING INSTALL LICENSE.txt README 
     253install(FILES AUTHORS ChangeLog COPYING INSTALL LICENSE.txt README 
    254254    DESTINATION ${LIBLAS_DATA_DIR}/doc) 
    255255 
     
    257257# Processing of project directories 
    258258 
    259 ADD_SUBDIRECTORY(src) 
    260  
    261 IF(WITH_UTILITIES) 
    262     MESSAGE(STATUS "Enable libLAS utilities to build - done") 
    263     ADD_SUBDIRECTORY(apps) 
    264 ENDIF() 
    265  
    266 IF(WITH_TESTS) 
    267     MESSAGE(STATUS "Enable libLAS unit tests to build - done") 
    268     ENABLE_TESTING() 
    269  
    270  
    271     IF(ENABLE_CTEST) 
    272         MESSAGE(STATUS "Enable CTest to support submissions of results to CDash at http://cdash.org") 
    273         CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) 
     259add_subdirectory(src) 
     260 
     261if(WITH_UTILITIES) 
     262    message(STATUS "Enable libLAS utilities to build - done") 
     263    add_subdirectory(apps) 
     264endif() 
     265 
     266if(WITH_TESTS) 
     267    message(STATUS "Enable libLAS unit tests to build - done") 
     268    enable_testing() 
     269 
     270 
     271    if(ENABLE_CTEST) 
     272        message(STATUS "Enable CTest to support submissions of results to CDash at http://cdash.org") 
     273        cmake_minimum_required(VERSION 2.8.0) 
    274274        # Dashboard has been prepared for experiments 
    275275        # http://my.cdash.org/index.php?project=libLAS 
    276         INCLUDE(CTest) 
    277         MESSAGE(STATUS "Enable CTest to support submissions of results to CDash at http://cdash.org - done") 
    278     ENDIF() 
    279  
    280     ADD_SUBDIRECTORY(test) 
    281 ELSE() 
    282     IF(ENABLE_CTEST) 
    283         MESSAGE(WARNING "CTest support requested but WITH_TESTS option not specified to build of libLAS unit tests") 
    284     ENDIF() 
    285 ENDIF() 
    286  
    287 # EOF 
     276        include(CTest) 
     277        message(STATUS "Enable CTest to support submissions of results to CDash at http://cdash.org - done") 
     278    endif() 
     279 
     280    add_subdirectory(test) 
     281else() 
     282    if(ENABLE_CTEST) 
     283        message(WARNING "CTest support requested but WITH_TESTS option not specified to build of libLAS unit tests") 
     284    endif() 
     285endif() 
  • apps/CMakeLists.txt

    r1482 r1602  
    77############################################################################### 
    88 
    9 INCLUDE_DIRECTORIES( 
     9include_directories( 
    1010    . 
    1111    ../include 
     
    1515# Collect programs to build 
    1616 
    17 SET(LASINFO lasinfo) 
    18 SET(LASMERGE lasmerge) 
    19 SET(LAS2LAS las2las) 
    20 SET(LAS2TXT las2txt) 
    21 SET(TXT2LAS txt2las) 
     17set(LASINFO lasinfo) 
     18set(LASMERGE lasmerge) 
     19set(LAS2LAS las2las) 
     20set(LAS2TXT las2txt) 
     21set(TXT2LAS txt2las) 
    2222 
    2323# Utilities depending on 3rd-pary libraries 
    24 IF(GDAL_FOUND) 
    25     SET(LAS2OGR las2ogr) 
    26 ENDIF() 
     24if(GDAL_FOUND) 
     25    set(LAS2OGR las2ogr) 
     26endif() 
    2727 
    28 IF(SPATIALINDEX_FOUND) 
    29     SET(LASINDEX lasindex) 
    30 ENDIF() 
     28if(SPATIALINDEX_FOUND) 
     29    set(LASINDEX lasindex) 
     30endif() 
    3131 
    32 IF(ORACLE_FOUND AND GDAL_FOUND) 
    33     SET(LAS2OCI las2oci) 
    34 ENDIF() 
     32if(ORACLE_FOUND AND GDAL_FOUND) 
     33    set(LAS2OCI las2oci) 
     34endif() 
    3535 
    36 SET(LIBLAS_UTILITIES 
     36set(LIBLAS_UTILITIES 
    3737    ${LASINFO} ${LASMERGE} ${LAS2LAS} ${LAS2TXT} ${TXT2LAS}  
    3838    ${LAS2OGR} ${LASINDEX} ${LAS2OCI}) 
     
    4040# TODO: Experimental and requires testing --mloskot 
    4141# Generate user-specific settings for Visual Studio project 
    42 SET(VCPROJ_USER_REMOTE_MACHINE_DEBUG ${MACHINE_NAME}) 
    43 SET(VCPROJ_USER_ENVIRONMENT_DEBUG "${ENVIRONMENT_PATH}") 
     42set(VCPROJ_USER_REMOTE_MACHINE_DEBUG ${MACHINE_NAME}) 
     43set(VCPROJ_USER_ENVIRONMENT_DEBUG "${ENVIRONMENT_PATH}") 
    4444 
    45 IF(MSVC) 
    46     FOREACH(utility ${LIBLAS_UTILITIES}) 
    47         SET(USER_FILE ${utility}.vcproj.$ENV{USERDOMAIN}.$ENV{USERNAME}.user) 
    48         SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE}) 
    49         MESSAGE(STATUS "Generating ${CMAKE_GENERATOR} user-specific settings in ${USER_FILE}") 
    50         CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/build/cmake/libLAS.vcproj.user.template ${OUTPUT_PATH} @ONLY) 
    51     ENDFOREACH() 
    52 ENDIF() 
     45if(MSVC) 
     46    foreach(utility ${LIBLAS_UTILITIES}) 
     47        set(USER_FILE ${utility}.vcproj.$ENV{USERDOMAIN}.$ENV{USERNAME}.user) 
     48        set(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE}) 
     49        message(STATUS "Generating ${CMAKE_GENERATOR} user-specific settings in ${USER_FILE}") 
     50        configure_file(${CMAKE_SOURCE_DIR}/build/cmake/libLAS.vcproj.user.template ${OUTPUT_PATH} @ONLY) 
     51    endforeach() 
     52endif() 
    5353 
    5454############################################################################### 
    5555# Configure build targets 
    5656 
    57 SET(APPS_CPP_DEPENDENCIES 
     57set(APPS_CPP_DEPENDENCIES 
    5858    ${LIBLAS_LIB_NAME} 
    5959    ${ZLIB_LIBRARY} 
     
    6464 
    6565# Build lasinfo 
    66 IF(LASINFO) 
    67     SET(LASINFO_SRC lascommon.c ${LASINFO}.c) 
    68     ADD_EXECUTABLE(${LASINFO} ${LASINFO_SRC}) 
    69     TARGET_LINK_LIBRARIES(${LASINFO} ${LIBLAS_C_LIB_NAME}) 
    70 ENDIF() 
     66if(LASINFO) 
     67    set(LASINFO_SRC lascommon.c ${LASINFO}.c) 
     68    add_executable(${LASINFO} ${LASINFO_SRC}) 
     69    target_link_libraries(${LASINFO} ${LIBLAS_C_LIB_NAME}) 
     70endif() 
    7171 
    7272# Build las2las 
    73 IF(LAS2LAS) 
    74     SET(LAS2LAS_SRC lascommon.c ${LAS2LAS}.c) 
    75     ADD_EXECUTABLE(${LAS2LAS} ${LAS2LAS_SRC}) 
    76     TARGET_LINK_LIBRARIES(${LAS2LAS} ${LIBLAS_C_LIB_NAME}) 
    77 ENDIF() 
     73if(LAS2LAS) 
     74    set(LAS2LAS_SRC lascommon.c ${LAS2LAS}.c) 
     75    add_executable(${LAS2LAS} ${LAS2LAS_SRC}) 
     76    target_link_libraries(${LAS2LAS} ${LIBLAS_C_LIB_NAME}) 
     77endif() 
    7878 
    7979# Build las2txt 
    80 IF(LAS2TXT) 
    81     SET(LAS2TXT_SRC lascommon.c ${LAS2TXT}.c) 
    82     ADD_EXECUTABLE(${LAS2TXT} ${LAS2TXT_SRC}) 
    83     TARGET_LINK_LIBRARIES(${LAS2TXT} ${LIBLAS_C_LIB_NAME}) 
    84 ENDIF() 
     80if(LAS2TXT) 
     81    set(LAS2TXT_SRC lascommon.c ${LAS2TXT}.c) 
     82    add_executable(${LAS2TXT} ${LAS2TXT_SRC}) 
     83    target_link_libraries(${LAS2TXT} ${LIBLAS_C_LIB_NAME}) 
     84endif() 
    8585  
    8686# Build txt2las 
    87 IF(TXT2LAS) 
    88     SET(TXT2LAS_SRC lascommon.c ${TXT2LAS}.c) 
    89     ADD_EXECUTABLE(${TXT2LAS} ${TXT2LAS_SRC}) 
    90     TARGET_LINK_LIBRARIES(${TXT2LAS} ${LIBLAS_C_LIB_NAME}) 
    91 ENDIF() 
     87if(TXT2LAS) 
     88    set(TXT2LAS_SRC lascommon.c ${TXT2LAS}.c) 
     89    add_executable(${TXT2LAS} ${TXT2LAS_SRC}) 
     90    target_link_libraries(${TXT2LAS} ${LIBLAS_C_LIB_NAME}) 
     91endif() 
    9292 
    9393# Build lasmerge 
    94 IF(LASMERGE) 
    95     SET(LASMERGE_SRC lascommon.c ${LASMERGE}.c) 
    96     ADD_EXECUTABLE(${LASMERGE} ${LASMERGE_SRC}) 
    97     TARGET_LINK_LIBRARIES(${LASMERGE} ${LIBLAS_C_LIB_NAME}) 
    98 ENDIF() 
     94if(LASMERGE) 
     95    set(LASMERGE_SRC lascommon.c ${LASMERGE}.c) 
     96    add_executable(${LASMERGE} ${LASMERGE_SRC}) 
     97    target_link_libraries(${LASMERGE} ${LIBLAS_C_LIB_NAME}) 
     98endif() 
    9999 
    100100# Build lasindex 
    101 IF(LASINDEX) 
    102     ADD_EXECUTABLE(${LASINDEX} lasindex.cpp) 
    103     TARGET_LINK_LIBRARIES(${LASINDEX} ${APPS_CPP_DEPENDENCIES}) 
    104 ENDIF() 
     101if(LASINDEX) 
     102    add_executable(${LASINDEX} lasindex.cpp) 
     103    target_link_libraries(${LASINDEX} ${APPS_CPP_DEPENDENCIES}) 
     104endif() 
    105105 
    106106# Build las2ogr 
    107 IF(LAS2OGR) 
    108     ADD_EXECUTABLE(${LAS2OGR} las2ogr.cpp) 
    109     TARGET_LINK_LIBRARIES(${LAS2OGR} ${APPS_CPP_DEPENDENCIES}) 
    110 ENDIF() 
     107if(LAS2OGR) 
     108    add_executable(${LAS2OGR} las2ogr.cpp) 
     109    target_link_libraries(${LAS2OGR} ${APPS_CPP_DEPENDENCIES}) 
     110endif() 
    111111 
    112112# Build las2oci 
    113 IF(LAS2OCI) 
    114     ADD_EXECUTABLE(${LAS2OCI} las2oci.cpp) 
    115     TARGET_LINK_LIBRARIES(${LAS2OCI} ${APPS_CPP_DEPENDENCIES}) 
    116 ENDIF() 
     113if(LAS2OCI) 
     114    add_executable(${LAS2OCI} las2oci.cpp) 
     115    target_link_libraries(${LAS2OCI} ${APPS_CPP_DEPENDENCIES}) 
     116endif() 
    117117 
    118118############################################################################### 
    119119# Targets installation 
    120120 
    121 INSTALL(TARGETS ${LIBLAS_UTILITIES} 
     121install(TARGETS ${LIBLAS_UTILITIES} 
    122122    RUNTIME DESTINATION ${LIBLAS_BIN_DIR} 
    123123    LIBRARY DESTINATION ${LIBLAS_LIB_DIR} 
  • src/CMakeLists.txt

    r1572 r1602  
    88 
    99# Collect dependencies configuration 
    10 IF(GDAL_FOUND) 
    11     SET(LIBLAS_GDAL_CPP gt_citation.cpp gt_wkt_srs.cpp tifvsi.cpp) 
    12 ENDIF() 
     10if(GDAL_FOUND) 
     11  set(LIBLAS_GDAL_CPP 
     12    gt_citation.cpp 
     13    gt_wkt_srs.cpp 
     14    tifvsi.cpp) 
     15endif() 
    1316 
    14 IF(SPATIALINDEX_FOUND) 
    15     SET(LIBLAS_INDEX_CPP 
    16         index/datastream.cpp 
    17         index/index.cpp 
    18         index/visitor.cpp 
    19         index/query.cpp 
    20         index/storage.cpp) 
    21 ENDIF() 
     17if(SPATIALINDEX_FOUND) 
     18  set(LIBLAS_INDEX_CPP 
     19    index/datastream.cpp 
     20    index/index.cpp 
     21    index/query.cpp 
     22    index/storage.cpp 
     23    index/visitor.cpp) 
     24endif() 
    2225 
    2326############################################################################### 
    2427# Source files specification 
    2528 
    26 SET(LIBLAS_HEADERS_DIR ../include/liblas) 
     29set(LIBLAS_HEADERS_DIR ../include/liblas) 
    2730 
    2831 
    29 IF(SPATIALINDEX_FOUND) 
    30     SET(LIBLAS_INDEX_HPP 
    31         ${LIBLAS_HEADERS_DIR}/index/datastream.hpp 
    32         ${LIBLAS_HEADERS_DIR}/index/index.hpp 
    33         ${LIBLAS_HEADERS_DIR}/index/visitor.hpp 
    34         ${LIBLAS_HEADERS_DIR}/index/query.hpp 
    35         ${LIBLAS_HEADERS_DIR}/index/storage.hpp) 
    36 ENDIF() 
     32if(SPATIALINDEX_FOUND) 
     33  set(LIBLAS_INDEX_HPP 
     34    ${LIBLAS_HEADERS_DIR}/index/datastream.hpp 
     35    ${LIBLAS_HEADERS_DIR}/index/index.hpp 
     36    ${LIBLAS_HEADERS_DIR}/index/query.hpp 
     37    ${LIBLAS_HEADERS_DIR}/index/storage.hpp 
     38    ${LIBLAS_HEADERS_DIR}/index/visitor.hpp) 
     39endif() 
    3740 
    38 SET(LIBLAS_HPP 
    39     ${LIBLAS_HEADERS_DIR}/cstdint.hpp 
    40     ${LIBLAS_HEADERS_DIR}/exception.hpp 
    41     ${LIBLAS_HEADERS_DIR}/guid.hpp 
    42     ${LIBLAS_HEADERS_DIR}/interfaces.hpp 
    43     ${LIBLAS_HEADERS_DIR}/iterator.hpp 
    44     ${LIBLAS_HEADERS_DIR}/lasclassification.hpp 
    45     ${LIBLAS_HEADERS_DIR}/lascolor.hpp 
    46     ${LIBLAS_HEADERS_DIR}/laserror.hpp 
    47     ${LIBLAS_HEADERS_DIR}/lasformat.hpp     
    48     ${LIBLAS_HEADERS_DIR}/lasheader.hpp 
    49     ${LIBLAS_HEADERS_DIR}/laspoint.hpp 
    50     ${LIBLAS_HEADERS_DIR}/lasreader.hpp 
    51     ${LIBLAS_HEADERS_DIR}/lasspatialreference.hpp 
    52     ${LIBLAS_HEADERS_DIR}/lasvariablerecord.hpp 
    53     ${LIBLAS_HEADERS_DIR}/lasversion.hpp 
    54     ${LIBLAS_HEADERS_DIR}/laswriter.hpp 
    55     ${LIBLAS_HEADERS_DIR}/liblas.hpp) 
     41set(LIBLAS_HPP 
     42  ${LIBLAS_HEADERS_DIR}/cstdint.hpp 
     43  ${LIBLAS_HEADERS_DIR}/exception.hpp 
     44  ${LIBLAS_HEADERS_DIR}/guid.hpp 
     45  ${LIBLAS_HEADERS_DIR}/iterator.hpp 
     46  ${LIBLAS_HEADERS_DIR}/lasclassification.hpp 
     47  ${LIBLAS_HEADERS_DIR}/lascolor.hpp 
     48  ${LIBLAS_HEADERS_DIR}/laserror.hpp 
     49  ${LIBLAS_HEADERS_DIR}/lasformat.hpp     
     50  ${LIBLAS_HEADERS_DIR}/lasheader.hpp 
     51  ${LIBLAS_HEADERS_DIR}/laspoint.hpp 
     52  ${LIBLAS_HEADERS_DIR}/lasreader.hpp 
     53  ${LIBLAS_HEADERS_DIR}/lasspatialreference.hpp 
     54  ${LIBLAS_HEADERS_DIR}/lasvariablerecord.hpp 
     55  ${LIBLAS_HEADERS_DIR}/lasversion.hpp 
     56  ${LIBLAS_HEADERS_DIR}/laswriter.hpp 
     57  ${LIBLAS_HEADERS_DIR}/liblas.hpp) 
    5658 
    57 SET(LIBLAS_DETAIL_HPP 
    58     ${LIBLAS_HEADERS_DIR}/detail/endian.hpp 
    59     ${LIBLAS_HEADERS_DIR}/detail/fwd.hpp 
    60     ${LIBLAS_HEADERS_DIR}/detail/reader/reader.hpp 
    61     ${LIBLAS_HEADERS_DIR}/detail/reader/header.hpp 
    62     ${LIBLAS_HEADERS_DIR}/detail/reader/point.hpp 
    63     ${LIBLAS_HEADERS_DIR}/detail/sha1.hpp 
    64     ${LIBLAS_HEADERS_DIR}/detail/sharedptr.hpp 
    65     ${LIBLAS_HEADERS_DIR}/detail/timer.hpp 
    66     ${LIBLAS_HEADERS_DIR}/detail/utility.hpp 
    67     ${LIBLAS_HEADERS_DIR}/detail/writer/writer.hpp 
    68     ${LIBLAS_HEADERS_DIR}/detail/writer/base.hpp 
    69     ${LIBLAS_HEADERS_DIR}/detail/writer/point.hpp 
    70     ${LIBLAS_HEADERS_DIR}/detail/writer/header.hpp     
    71 ) 
     59set(LIBLAS_DETAIL_HPP 
     60  ${LIBLAS_HEADERS_DIR}/detail/endian.hpp 
     61  ${LIBLAS_HEADERS_DIR}/detail/fwd.hpp 
     62  ${LIBLAS_HEADERS_DIR}/detail/reader/reader.hpp 
     63  ${LIBLAS_HEADERS_DIR}/detail/reader/header.hpp 
     64  ${LIBLAS_HEADERS_DIR}/detail/reader/point.hpp 
     65  ${LIBLAS_HEADERS_DIR}/detail/sha1.hpp 
     66  ${LIBLAS_HEADERS_DIR}/detail/sharedptr.hpp 
     67  ${LIBLAS_HEADERS_DIR}/detail/timer.hpp 
     68  ${LIBLAS_HEADERS_DIR}/detail/utility.hpp 
     69  ${LIBLAS_HEADERS_DIR}/detail/writer/writer.hpp 
     70  ${LIBLAS_HEADERS_DIR}/detail/writer/base.hpp 
     71  ${LIBLAS_HEADERS_DIR}/detail/writer/point.hpp 
     72  ${LIBLAS_HEADERS_DIR}/detail/writer/header.hpp     
     73  ) 
    7274 
    73 SET(LIBLAS_CPP 
    74     lasclassification.cpp 
    75     lascolor.cpp 
    76     laserror.cpp 
    77     lasformat.cpp 
    78     lasheader.cpp 
    79     laspoint.cpp 
    80     lasreader.cpp 
    81     lasspatialreference.cpp 
    82     lasvariablerecord.cpp 
    83     laswriter.cpp) 
     75set(LIBLAS_CPP 
     76  lasclassification.cpp 
     77  lascolor.cpp 
     78  laserror.cpp 
     79  lasformat.cpp 
     80  lasheader.cpp 
     81  laspoint.cpp 
     82  lasreader.cpp 
     83  lasspatialreference.cpp 
     84  lasvariablerecord.cpp 
     85  laswriter.cpp) 
    8486 
    85 SET(LIBLAS_DETAIL_CPP 
    86     detail/reader/reader.cpp 
    87     detail/reader/point.cpp 
    88     detail/reader/header.cpp 
    89     detail/writer/writer.cpp 
    90     detail/writer/base.cpp 
    91     detail/writer/point.cpp 
    92     detail/writer/header.cpp) 
     87set(LIBLAS_DETAIL_CPP 
     88  detail/reader/header.cpp 
     89  detail/reader/point.cpp 
     90  detail/reader/reader.cpp 
     91  detail/writer/base.cpp 
     92  detail/writer/header.cpp 
     93  detail/writer/point.cpp 
     94  detail/writer/writer.cpp) 
    9395 
    94 SET(LIBLAS_SOURCES 
    95     ${LIBLAS_HPP} 
    96     ${LIBLAS_DETAIL_HPP} 
    97     ${LIBLAS_INDEX_HPP} 
    98     ${LIBLAS_CPP} 
    99     ${LIBLAS_DETAIL_CPP} 
    100     ${LIBLAS_INDEX_CPP} 
    101     ${LIBLAS_GDAL_CPP}) 
     96set(LIBLAS_SOURCES 
     97  ${LIBLAS_HPP} 
     98  ${LIBLAS_DETAIL_HPP} 
     99  ${LIBLAS_INDEX_HPP} 
     100  ${LIBLAS_CPP} 
     101  ${LIBLAS_DETAIL_CPP} 
     102  ${LIBLAS_INDEX_CPP} 
     103  ${LIBLAS_GDAL_CPP}) 
    102104 
    103 SET(LIBLAS_C_SOURCES 
    104     ${LIBLAS_HEADERS_DIR}/capi/las_config.h 
    105     ${LIBLAS_HEADERS_DIR}/capi/las_version.h 
    106     ${LIBLAS_HEADERS_DIR}/capi/liblas.h 
    107     las_c_api.cpp) 
     105set(LIBLAS_C_SOURCES 
     106  ${LIBLAS_HEADERS_DIR}/capi/las_config.h 
     107  ${LIBLAS_HEADERS_DIR}/capi/las_version.h 
     108  ${LIBLAS_HEADERS_DIR}/capi/liblas.h 
     109  las_c_api.cpp) 
    108110 
    109 SOURCE_GROUP("CMake Files" FILES CMakeLists.txt) 
    110 SOURCE_GROUP("Header Files" FILES ${LIBLAS_HPP} ${LIBLAS_DETAIL_HPP}) 
    111 SOURCE_GROUP("Source Files" FILES ${LIBLAS_CPP} ${LIBLAS_DETAIL_CPP}) 
     111source_group("CMake Files" FILES CMakeLists.txt) 
     112source_group("Header Files" FILES ${LIBLAS_HPP} ${LIBLAS_DETAIL_HPP}) 
     113source_group("Source Files" FILES ${LIBLAS_CPP} ${LIBLAS_DETAIL_CPP}) 
    112114 
    113115# Diable Visual C++ language extensions when building libLAS library 
    114 IF (WIN32) 
    115     IF (MSVC) 
    116         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Za") 
    117     ENDIF() 
    118 ENDIF() 
     116if (WIN32) 
     117  if (MSVC) 
     118    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Za") 
     119  endif() 
     120endif() 
    119121 
    120122# Standard include directory of libLAS library 
    121 INCLUDE_DIRECTORIES(../include) 
     123include_directories(../include) 
    122124 
    123125############################################################################### 
     
    125127 
    126128# Static libLAS C++ library 
    127 ADD_LIBRARY(${LIBLAS_LIB_NAME} STATIC ${LIBLAS_SOURCES}) 
     129add_library(${LIBLAS_LIB_NAME} STATIC ${LIBLAS_SOURCES}) 
    128130 
    129131# Shared libLAS C library 
    130 ADD_LIBRARY(${LIBLAS_C_LIB_NAME} SHARED ${LIBLAS_C_SOURCES}) 
     132add_library(${LIBLAS_C_LIB_NAME} SHARED ${LIBLAS_C_SOURCES}) 
    131133 
    132 TARGET_LINK_LIBRARIES(${LIBLAS_C_LIB_NAME} 
     134target_link_libraries(${LIBLAS_C_LIB_NAME} 
    133135  ${LIBLAS_LIB_NAME} 
    134136  ${ZLIB_LIBRARIES} 
     
    140142# Targets installation 
    141143 
    142 INSTALL(TARGETS ${LIBLAS_LIB_NAME} ${LIBLAS_C_LIB_NAME} 
    143     RUNTIME DESTINATION ${LIBLAS_BIN_DIR} 
    144     LIBRARY DESTINATION ${LIBLAS_LIB_DIR} 
    145     ARCHIVE DESTINATION ${LIBLAS_LIB_DIR}) 
     144install(TARGETS ${LIBLAS_LIB_NAME} ${LIBLAS_C_LIB_NAME} 
     145  RUNTIME DESTINATION ${LIBLAS_BIN_DIR} 
     146  LIBRARY DESTINATION ${LIBLAS_LIB_DIR} 
     147  ARCHIVE DESTINATION ${LIBLAS_LIB_DIR}) 
    146148 
    147 INSTALL(DIRECTORY ${LIBLAS_HEADERS_DIR} 
    148     DESTINATION ${LIBLAS_INCLUDE_DIR} 
    149     FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp") 
     149install(DIRECTORY ${LIBLAS_HEADERS_DIR} 
     150  DESTINATION ${LIBLAS_INCLUDE_DIR} 
     151  FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp") 
  • test/CMakeLists.txt

    r1330 r1602  
    66# 
    77############################################################################### 
    8 SUBDIRS(unit) 
     8subdirs(unit) 
Note: See TracChangeset for help on using the changeset viewer.