From a1a6ffca397381804065ea753073285e3cc54bcc Mon Sep 17 00:00:00 2001 From: Nicolas David Date: Sat, 24 Nov 2012 15:22:47 +0100 Subject: [PATCH 1/6] add laslib LD and Cf Flags for automake compilation --- Makefile.am | 4 ++-- lidarquadtree/Makefile.am | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 14a6931..3eb21c4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,8 +15,8 @@ src/ProfileWorker.cpp src/ClassifyWorker.cpp src/Worker.h src/FileUtils.cpp \ src/ui/AdvancedLoadDialog.cpp src/geoprojectionconverter.cpp \ src/DrawWorker.cpp -lag_CPPFLAGS = @GTKmm_CFLAGS@ @GTKGLextmm_CFLAGS@ @GThread_CFLAGS@ @lidarquadtree_CFLAGS@ -lag_LDFLAGS = @GTKmm_LIBS@ @GTKGLextmm_LIBS@ @GThread_LIBS@ @lidarquadtree_LIBS@ -ljemalloc -lboost_system +lag_CPPFLAGS = @GTKmm_CFLAGS@ @GTKGLextmm_CFLAGS@ @GThread_CFLAGS@ @laslib_CFLAGS@ @lidarquadtree_CFLAGS@ +lag_LDFLAGS = @GTKmm_LIBS@ @GTKGLextmm_LIBS@ @GThread_LIBS@ @laslib_LIBS@ @lidarquadtree_LIBS@ -ljemalloc -lboost_system lagdir = $(prefix)/share/lag lag_DATA = lag.ui lagiconsdir = $(prefix)/share/lag/icons diff --git a/lidarquadtree/Makefile.am b/lidarquadtree/Makefile.am index 5aab283..1fbdbfe 100644 --- a/lidarquadtree/Makefile.am +++ b/lidarquadtree/Makefile.am @@ -5,6 +5,8 @@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = subdir-objects lib_LTLIBRARIES = liblidarquadtree.la AM_CXXFLAGS=-Wall -Wextra -DLINUX +liblidarquadtree_la_CPPFLAGS = @laslib_CFLAGS@ +liblidarquadtree_la_LIBADD = @laslib_LIBS@ liblidarquadtree_la_SOURCES = src/CollisionDetection.cpp src/LidarPoint.cpp src/Point.cpp src/PointBucket.cpp src/QuadtreeNode.cpp src/CacheMinder.cpp src/Quadtree.cpp src/PointData.h liblidarquadtree_ladir= $(includedir)/lidar/quadtree liblidarquadtree_la_HEADERS = src/Boundary.h \ From 21acb1369cb4025fca883ef5fd014e0229a1c964 Mon Sep 17 00:00:00 2001 From: Nicolas David Date: Sun, 25 Nov 2012 20:58:27 +0100 Subject: [PATCH 2/6] add laslib CFLAGS and LDFLAGS for lidarquadtree compilation --- lidarquadtree/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lidarquadtree/Makefile.am b/lidarquadtree/Makefile.am index 1fbdbfe..7046704 100644 --- a/lidarquadtree/Makefile.am +++ b/lidarquadtree/Makefile.am @@ -27,4 +27,4 @@ lidarquadtree.pc: $(srcdir)/lidarquadtree.pc.in -e 's![@]libdir[@]!$(libdir)!g' \ -e 's![@]PACKAGE_VERSION[@]!$(PACKAGE_VERSION)!g' \ $(srcdir)/lidarquadtree.pc.in > $@ -AM_LDFLAGS = -version-info 0:1:0 -llzo2 -llaslib -ljemalloc +AM_LDFLAGS = -version-info 0:1:0 -llzo2 -ljemalloc From d2c271f2ea9b58a115d6cab6a225f835a6a02d67 Mon Sep 17 00:00:00 2001 From: Nicolas David Date: Sun, 25 Nov 2012 20:59:07 +0100 Subject: [PATCH 3/6] begin some stuff for cmake compilation --- CMakeLists.txt | 39 ++++++++++++++++++++ cmake/modules/FindGTHREAD2.cmake | 58 ++++++++++++++++++++++++++++++ cmake/modules/FindGTKGLEXTMM.cmake | 55 ++++++++++++++++++++++++++++ cmake/modules/FindGthread.cmake | 0 cmake/modules/FindLastools.cmake | 26 ++++++++++++++ lidarquadtree/CMakelists.txt | 35 ++++++++++++++++++ src/CMakelists.txt | 32 +++++++++++++++++ 7 files changed, 245 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/modules/FindGTHREAD2.cmake create mode 100644 cmake/modules/FindGTKGLEXTMM.cmake create mode 100644 cmake/modules/FindGthread.cmake create mode 100644 cmake/modules/FindLastools.cmake create mode 100644 lidarquadtree/CMakelists.txt create mode 100644 src/CMakelists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4785c9a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,39 @@ +############################################################################### +# Main CMake configuration file for LAG +# +# Author: Nicolas David +# +# +############################################################################### +# LAG general settings +project(LAG) +cmake_minimum_required(VERSION 2.8.0) + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) +message(STATUS "CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}") +message(STATUS "CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}") + +set(GT2_DEBUG 1) +find_package(GTK2 2.6 REQUIRED gtkmm) +if(NOT GTK2_FOUND) + message(SEND_ERROR "gtkmm not found") +endif() + +find_package(GTHREAD2 REQUIRED) +if(NOT GTHREAD2_FOUND) + message(SEND_ERROR "gthread-2. not found") +else() + message(STATUS "GTHREAD2_INCLUDE_DIRS = ${GTHREAD2_INCLUDE_DIRS}") + message(STATUS "GTHREAD2_LIBRARIES = ${GTHREAD2_LIBRARIES}") +endif() + +find_package(GTKGLEXTMM REQUIRED) +if(NOT GTKGLEXTMM_FOUND) + message(SEND_ERROR "gtkglextmm-1.2 not found") +endif() + +include(FindLastools.cmake) +#add_subdirectory(lidarquadtree) +#add_subdirectory(src) + + diff --git a/cmake/modules/FindGTHREAD2.cmake b/cmake/modules/FindGTHREAD2.cmake new file mode 100644 index 0000000..1618fd3 --- /dev/null +++ b/cmake/modules/FindGTHREAD2.cmake @@ -0,0 +1,58 @@ +# - Try to find GThread2 +# Find GThread headers, libraries and the answer to all questions. +# +# GTHREAD2_FOUND True if GTHREAD2 got found +# GTHREAD2_INCLUDE_DIRS Location of GTHREAD2 headers +# GTHREAD2_LIBRARIES List of libraries to use GTHREAD2 +# +# Copyright (c) 2008 Bjoern Ricks +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +INCLUDE( FindPkgConfig ) + +IF ( GTHREAD2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) +ELSE( GTHREAD2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) +ENDIF ( GTHREAD2_FIND_REQUIRED ) + +IF ( GTHREAD2_MIN_VERSION ) + PKG_SEARCH_MODULE( GTHREAD2 ${_pkgconfig_REQUIRED} gthread-2.0>=${GTHREAD2_MIN_VERSION} ) +ELSE ( GTHREAD2_MIN_VERSION ) + PKG_SEARCH_MODULE( GTHREAD2 ${_pkgconfig_REQUIRED} gthread-2.0 ) +ENDIF ( GTHREAD2_MIN_VERSION ) + + +IF( NOT GTHREAD2_FOUND AND NOT PKG_CONFIG_FOUND ) + FIND_PATH( GTHREAD2_INCLUDE_DIRS gthread.h PATH_SUFFIXES glib-2.0/glib GLib.framework/Headers/glib ) + IF ( APPLE ) + FIND_LIBRARY( GTHREAD2_LIBRARIES glib ) + ELSE ( APPLE ) + FIND_LIBRARY( GTHREAD2_LIBRARIES gthread-2.0 ) + ENDIF ( APPLE ) + + #MESSAGE( STATUS "Gthread headers: ${GTHREAD2_INCLUDE_DIRS}" ) + #MESSAGE( STATUS "Gthread libs: ${GTHREAD2_LIBRARIES}" ) + + # Report results + IF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) + SET( GTHREAD2_FOUND 1 ) + IF ( NOT GTHREAD2_FIND_QUIETLY ) + MESSAGE( STATUS "Found GTHREAD2: ${GTHREAD2_LIBRARIES} ${GTHREAD2_INCLUDE_DIRS}" ) + ENDIF ( NOT GTHREAD2_FIND_QUIETLY ) + ELSE ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) + IF ( GTHREAD2_FIND_REQUIRED ) + MESSAGE( SEND_ERROR "Could NOT find GTHREAD2" ) + ELSE ( GTHREAD2_FIND_REQUIRED ) + IF ( NOT GTHREAD2_FIND_QUIETLY ) + MESSAGE( STATUS "Could NOT find GTHREAD2" ) + ENDIF ( NOT GTHREAD2_FIND_QUIETLY ) + ENDIF ( GTHREAD2_FIND_REQUIRED ) + ENDIF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) +ENDIF( NOT GTHREAD2_FOUND AND NOT PKG_CONFIG_FOUND ) + +MARK_AS_ADVANCED( GTHREAD2_LIBRARIES GTHREAD2_INCLUDE_DIRS ) diff --git a/cmake/modules/FindGTKGLEXTMM.cmake b/cmake/modules/FindGTKGLEXTMM.cmake new file mode 100644 index 0000000..16cc74c --- /dev/null +++ b/cmake/modules/FindGTKGLEXTMM.cmake @@ -0,0 +1,55 @@ +# - Try to find GTKGLEXTMM +# Find GThread headers, libraries and the answer to all questions. +# +# GTKGLEXTMM_FOUND True if GTKGLEXTMM got found +# GTKGLEXTMM_INCLUDE_DIRS Location of GTKGLEXTMM headers +# GTKGLEXTMM_LIBRARIES List of libraries to use GTKGLEXTMM +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +INCLUDE(FindPkgConfig ) +INCLUDE(FindPackageHandleStandardArgs) + +IF (GTKGLEXTMM_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) +ELSE(GTKGLEXTMM_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) +ENDIF(GTKGLEXTMM_FIND_REQUIRED ) + + +message(STATUS "_pkgconfig_REQUIRED ${_pkgconfig_REQUIRED}") + +IF (GTKGLEXTMM_MIN_VERSION ) + PKG_SEARCH_MODULE(GTKGLEXTMM ${_pkgconfig_REQUIRED} gtkglextmm-1.2>=${GTKGLEXTMM_MIN_VERSION} ) +ELSE (GTKGLEXTMM_MIN_VERSION ) + PKG_SEARCH_MODULE(GTKGLEXTMM ${_pkgconfig_REQUIRED} gtkglextmm-1.2 ) + #message(STATUS "GTKGLEXTMM_FOUND ${GTKGLEXTMM_FOUND}") + #message(STATUS "GTKGLEXTMM_LIBRARIES ${GTKGLEXTMM_LIBRARIES}") + #message(STATUS "GTKGLEXTMM_INCLUDE_DIRS ${GTKGLEXTMM_INCLUDE_DIRS}") +ENDIF (GTKGLEXTMM_MIN_VERSION ) + + + +IF(NOT GTKGLEXTMM_FOUND AND NOT PKG_CONFIG_FOUND ) + message(SEND_ERROR "PKG_CONFIG_FOUND ${PKG_CONFIG_FOUND}") +ENDIF(NOT GTKGLEXTMM_FOUND AND NOT PKG_CONFIG_FOUND ) + +#pkg_check_modules(PC_GTKGLEXTMM REQUIRED gtkglextmm-1.2) +#set(GTKGLEXTMM_DEFINITIONS ${PC_GTKGLEXTMM_CFLAGS_OTHER}) + +#find_path(GTKGLEXTMM_INCLUDE_DIR gtkglmm.h +# HINTS ${PC_GTKGLEXTMM_INCLUDEDIR} ${PC_GTKGLEXTMM_INCLUDE_DIRS} +# PATH_SUFFIXES gtkglextmm-1.2) + +#find_library(GTKGLEXTMM_LIBRARY NAMES libgtkglextmm-1.2 gtkglextmm-1.2 +# HINTS ${PC_GTKGLEXTMM_LIBDIR} ${PC_GTKGLEXTMM_LIBRARY_DIRS}) + + +find_package_handle_standard_args(gtkglextmm DEFAULT_MSG + GTKGLEXTMM_LIBRARIES GTKGLEXTMM_INCLUDE_DIRS) + +mark_as_advanced(GTKGLEXTMM_INCLUDE_DIRS GTKGLEXTMM_LIBRARIES) + diff --git a/cmake/modules/FindGthread.cmake b/cmake/modules/FindGthread.cmake new file mode 100644 index 0000000..e69de29 diff --git a/cmake/modules/FindLastools.cmake b/cmake/modules/FindLastools.cmake new file mode 100644 index 0000000..18143fa --- /dev/null +++ b/cmake/modules/FindLastools.cmake @@ -0,0 +1,26 @@ +# Try to find lslib from lastools +# Find GThread headers, libraries and the answer to all questions. +# +# LASTOOLS_FOUND True if LASTOOLS got found +# LASTOOLS_INCLUDE_DIRS Location of LASTOOLS headers +# LASTOOLS_LIBRARIES List of libraries to use LASTOOLS +# +# config with LASTOOLS_ROOT +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +FIND_PATH(LASTOOLS_INCLUDE_DIRS lasreader.hpp + PATH ${LASTOOLS_ROOT}/laslib/inc + ${CMAKE_SOURCE_DIR}/lastools/laslib/inc + ${CMAKE_SOURCE_DIR}/../lastools/laslib/inc) + +FIND_LIBRARY(LASTOOLS_LIBRARIES laslib + PATH ${LASTOOLS_ROOT}/laslib/inc + ${CMAKE_SOURCE_DIR}/lastools/laslib/inc + ${CMAKE_SOURCE_DIR}/../lastools/laslib/inc) + +FIND_PATH(LASTOOLS_SOURCE_DIRS lasreader.cpp + PATH ${LASTOOLS_ROOT}/laslib/src + ${CMAKE_SOURCE_DIR}/lastools/laslib/src + ${CMAKE_SOURCE_DIR}/../lastools/laslib/src) diff --git a/lidarquadtree/CMakelists.txt b/lidarquadtree/CMakelists.txt new file mode 100644 index 0000000..f9eaf70 --- /dev/null +++ b/lidarquadtree/CMakelists.txt @@ -0,0 +1,35 @@ +############################################################################### +# Main CMake configuration file for libLidarQuadtree +# +# Author: Nicolas David +# +# +############################################################################### +# liblidarquadtree + +SET(LIBLIDARQUADTREE_VERSION_MAJOR "1") +SET(LIBLIDARQUADTREE_VERSION_MINOR "3") +SET(LIBLIDARQUADTREE_VERSION_PATCH "0") +SET(VERSION +"${LIBLIDARQUADTREE_VERSION_MAJOR}.${LIBLIDARQUADTREE_VERSION_MINOR}.${LIBLIDARQUADTREE_VERSION_PATCH}") + +SET(LIBQUADTREE_SRC_DIR "src") +SET(LIBLIDARQUADTREE_SRC ${LIBQUADTREE_SRC_DIR}/CollisionDetection.cpp + ${LIBQUADTREE_SRC_DIR}/LidarPoint.cpp + ${LIBQUADTREE_SRC_DIR}/Point.cpp + ${LIBQUADTREE_SRC_DIR}/PointBucket.cpp + ${LIBQUADTREE_SRC_DIR}/QuadtreeNode.cpp + ${LIBQUADTREE_SRC_DIR}/CacheMinder.cpp + ${LIBQUADTREE_SRC_DIR}/Quadtree.cpp + ${LIBQUADTREE_SRC_DIR}/PointData.h) + +SET(LIBLIDARQUADTREE_HEADERS ${LIBQUADTREE_SRC_DIR}/Boundary.h + ${LIBQUADTREE_SRC_DIR}/CacheMinder.h + ${LIBQUADTREE_SRC_DIR}/CollisionDetection.h + ${LIBQUADTREE_SRC_DIR}/LidarPoint.h + ${LIBQUADTREE_SRC_DIR}/PointBucket.h + ${LIBQUADTREE_SRC_DIR}/Point.h + ${LIBQUADTREE_SRC_DIR}/QuadtreeExceptions.h + ${LIBQUADTREE_SRC_DIR}/Quadtree.h + ${LIBQUADTREE_SRC_DIR}/QuadtreeNode.h + ${LIBQUADTREE_SRC_DIR}/PointData.h) diff --git a/src/CMakelists.txt b/src/CMakelists.txt new file mode 100644 index 0000000..a2190af --- /dev/null +++ b/src/CMakelists.txt @@ -0,0 +1,32 @@ +SET(LAG_VERSION_MAJOR "1") +SET(LAG_VERSION_MINOR "1") +SET(LAG_VERSION_PATCH "1") +set(VERSION "${LAG_VERSION_MAJOR}.${LAG_VERSION_MINOR}.${LAG_VERSION_PATCH}") + +SET(LAG_SRC_DIR "src") +SET(lag_SOURCES ${LAG_SRC_DIR}/lag.cpp + ${LAG_SRC_DIR}/ui/AdvancedOptionsWindow.cpp + ${LAG_SRC_DIR}/ui/FileOpener.cpp + ${LAG_SRC_DIR}/MathFuncs.cpp + ${LAG_SRC_DIR}/TwoDeeOverview.cpp + ${LAG_SRC_DIR}/BoxOverlay.cpp + ${LAG_SRC_DIR}/ui/FileSaver.cpp + ${LAG_SRC_DIR}/Profile.cpp + ${LAG_SRC_DIR}/ui/TwoDeeOverviewWindow.cpp + ${LAG_SRC_DIR}/LagDisplay.cpp + ${LAG_SRC_DIR}/ui/ProfileWindow.cpp + ${LAG_SRC_DIR}/Colour.cpp + ${LAG_SRC_DIR}/SelectionBox.cpp + ${LAG_SRC_DIR}/LoadWorker.cpp + ${LAG_SRC_DIR}/SaveWorker.cpp + ${LAG_SRC_DIR}/ProfileWorker.cpp + ${LAG_SRC_DIR}/ClassifyWorker.cpp + ${LAG_SRC_DIR}/Worker.h + ${LAG_SRC_DIR}/FileUtils.cpp + ${LAG_SRC_DIR}/ui/AdvancedLoadDialog.cpp + ${LAG_SRC_DIR}/geoprojectionconverter.cpp + ${LAG_SRC_DIR}/DrawWorker.cpp ) + + +#lag_CPPFLAGS = @GTKmm_CFLAGS@ @GTKGLextmm_CFLAGS@ @GThread_CFLAGS@ @laslib_CFLAGS@ @lidarquadtree_CFLAGS@ +#lag_LDFLAGS = @GTKmm_LIBS@ @GTKGLextmm_LIBS@ @GThread_LIBS@ @laslib_LIBS@ @lidarquadtree_LIBS@ -ljemalloc #-lboost_system From 381231b8f61a7583aa13379942770c29b3209c16 Mon Sep 17 00:00:00 2001 From: Nicolas David Date: Sun, 9 Dec 2012 14:27:08 +0100 Subject: [PATCH 4/6] first working cmake --- CMakeLists.txt | 20 ++++-- ...{FindLastools.cmake => FindLASTOOLS.cmake} | 9 +++ cmake/modules/FindLZO.cmake | 45 ++++++++++++++ .../{CMakelists.txt => CMakeLists.txt} | 8 +++ src/CMakeLists.txt | 61 +++++++++++++++++++ src/CMakelists.txt | 32 ---------- 6 files changed, 139 insertions(+), 36 deletions(-) rename cmake/modules/{FindLastools.cmake => FindLASTOOLS.cmake} (85%) create mode 100644 cmake/modules/FindLZO.cmake rename lidarquadtree/{CMakelists.txt => CMakeLists.txt} (84%) create mode 100644 src/CMakeLists.txt delete mode 100644 src/CMakelists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4785c9a..27df125 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) message(STATUS "CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}") message(STATUS "CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}") -set(GT2_DEBUG 1) find_package(GTK2 2.6 REQUIRED gtkmm) if(NOT GTK2_FOUND) message(SEND_ERROR "gtkmm not found") @@ -32,8 +31,21 @@ if(NOT GTKGLEXTMM_FOUND) message(SEND_ERROR "gtkglextmm-1.2 not found") endif() -include(FindLastools.cmake) -#add_subdirectory(lidarquadtree) -#add_subdirectory(src) +find_package(LASTOOLS REQUIRED) +if(NOT LASTOOLS_FOUND) + message(SEND_ERROR "lastools not found, set LASTOOLS_ROOT to the root\ + directory of the lastools install path" ) +endif() + +find_package(LZO REQUIRED) +if(NOT LZO_FOUND) + message(SEND_ERROR "lzo2 not found" ) +endif() +add_subdirectory(lidarquadtree) +add_subdirectory(src) +add_custom_command(TARGET all PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${LASTOOLS_INCLUDE_DIRS} + ${LASTOOLS_INCLUDE_DIRS}/laslib) diff --git a/cmake/modules/FindLastools.cmake b/cmake/modules/FindLASTOOLS.cmake similarity index 85% rename from cmake/modules/FindLastools.cmake rename to cmake/modules/FindLASTOOLS.cmake index 18143fa..2e7ae60 100644 --- a/cmake/modules/FindLastools.cmake +++ b/cmake/modules/FindLASTOOLS.cmake @@ -10,6 +10,10 @@ # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +INCLUDE(FindPackageHandleStandardArgs) + + FIND_PATH(LASTOOLS_INCLUDE_DIRS lasreader.hpp PATH ${LASTOOLS_ROOT}/laslib/inc ${CMAKE_SOURCE_DIR}/lastools/laslib/inc @@ -24,3 +28,8 @@ FIND_PATH(LASTOOLS_SOURCE_DIRS lasreader.cpp PATH ${LASTOOLS_ROOT}/laslib/src ${CMAKE_SOURCE_DIR}/lastools/laslib/src ${CMAKE_SOURCE_DIR}/../lastools/laslib/src) + +find_package_handle_standard_args(LASTOOLS DEFAULT_MSG + LASTOOLS_LIBRARIES LASTOOLS_INCLUDE_DIRS) + +mark_as_advanced(LASTOOLS_INCLUDE_DIRS LASTOOLS_LIBRARIES) diff --git a/cmake/modules/FindLZO.cmake b/cmake/modules/FindLZO.cmake new file mode 100644 index 0000000..de9ee01 --- /dev/null +++ b/cmake/modules/FindLZO.cmake @@ -0,0 +1,45 @@ +# Find liblzo2 +# LZO_FOUND - system has the LZO library +# LZO_INCLUDE_DIR - the LZO include directory +# LZO_LIBRARIES - The libraries needed to use LZO + +if (LZO_INCLUDE_DIR AND LZO_LIBRARIES) + # in cache already + SET(LZO_FOUND TRUE) +else (LZO_INCLUDE_DIR AND LZO_LIBRARIES) + FIND_PATH(LZO_INCLUDE_DIR lzo/lzo1x.h + ${LZO_ROOT}/include/ + /usr/include/ + /usr/local/include/ + /sw/lib/ + /sw/local/lib/ + ) + + if(WIN32 AND MSVC) + else(WIN32 AND MSVC) + FIND_LIBRARY(LZO_LIBRARIES NAMES lzo2 + PATHS + ${LZO_ROOT}/lib + /usr/lib + /usr/local/lib + /sw/lib + /sw/local/lib + ) + endif(WIN32 AND MSVC) + + if (LZO_INCLUDE_DIR AND LZO_LIBRARIES) + set(LZO_FOUND TRUE) + endif (LZO_INCLUDE_DIR AND LZO_LIBRARIES) + + if (LZO_FOUND) + if (NOT LZO_FIND_QUIETLY) + message(STATUS "Found LZO: ${LZO_LIBRARIES}") + endif (NOT LZO_FIND_QUIETLY) + else (LZO_FOUND) + if (LZO_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find LZO") + endif (LZO_FIND_REQUIRED) + endif (LZO_FOUND) + + MARK_AS_ADVANCED(LZO_INCLUDE_DIR LZO_LIBRARIES) +endif (LZO_INCLUDE_DIR AND LZO_LIBRARIES) diff --git a/lidarquadtree/CMakelists.txt b/lidarquadtree/CMakeLists.txt similarity index 84% rename from lidarquadtree/CMakelists.txt rename to lidarquadtree/CMakeLists.txt index f9eaf70..3c622fe 100644 --- a/lidarquadtree/CMakelists.txt +++ b/lidarquadtree/CMakeLists.txt @@ -33,3 +33,11 @@ SET(LIBLIDARQUADTREE_HEADERS ${LIBQUADTREE_SRC_DIR}/Boundary.h ${LIBQUADTREE_SRC_DIR}/Quadtree.h ${LIBQUADTREE_SRC_DIR}/QuadtreeNode.h ${LIBQUADTREE_SRC_DIR}/PointData.h) + +include_directories( ${LIBQUADTREE_SRC_DIR}) +include_directories( ${LASTOOLS_INCLUDE_DIRS}) +include_directories( ${LZO_INCLUDE_DIR}) + +add_library(lidarquatree STATIC ${LIBLIDARQUADTREE_SRC} ${LIBLIDARQUADTREE_HEADERS} ) +target_link_libraries(lidarquatree ${LASTOOLS_LIBRARIES} ${LZO_LIBRARIES}) + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..0a6ea91 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,61 @@ +SET(LAG_VERSION_MAJOR "1") +SET(LAG_VERSION_MINOR "1") +SET(LAG_VERSION_PATCH "1") +set(VERSION "${LAG_VERSION_MAJOR}.${LAG_VERSION_MINOR}.${LAG_VERSION_PATCH}") + +SET(LAG_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + +SET(lag_UI_SOURCES ${LAG_SRC_DIR}/ui/AdvancedOptionsWindow.cpp + ${LAG_SRC_DIR}/ui/FileOpener.cpp + ${LAG_SRC_DIR}/ui/FileSaver.cpp + ${LAG_SRC_DIR}/ui/TwoDeeOverviewWindow.cpp + ${LAG_SRC_DIR}/ui/ProfileWindow.cpp + ${LAG_SRC_DIR}/ui/AdvancedLoadDialog.cpp) + +SET(lag_SOURCES ${LAG_SRC_DIR}/lag.cpp + ${LAG_SRC_DIR}/MathFuncs.cpp + ${LAG_SRC_DIR}/TwoDeeOverview.cpp + ${LAG_SRC_DIR}/BoxOverlay.cpp + ${LAG_SRC_DIR}/Profile.cpp + ${LAG_SRC_DIR}/LagDisplay.cpp + ${LAG_SRC_DIR}/Colour.cpp + ${LAG_SRC_DIR}/SelectionBox.cpp + ${LAG_SRC_DIR}/LoadWorker.cpp + ${LAG_SRC_DIR}/SaveWorker.cpp + ${LAG_SRC_DIR}/ProfileWorker.cpp + ${LAG_SRC_DIR}/ClassifyWorker.cpp + ${LAG_SRC_DIR}/Worker.h + ${LAG_SRC_DIR}/FileUtils.cpp + ${LAG_SRC_DIR}/geoprojectionconverter.cpp + ${LAG_SRC_DIR}/DrawWorker.cpp ) + + +include_directories( ${LAG_SRC_DIR} ${LAG_SRC_DIR}/ui) +include_directories( ${CMAKE_SOURCE_DIR}/lidarquadtree/src) + +include_directories( ${LASTOOLS_INCLUDE_DIRS}) +include_directories( ${GTK2_INCLUDE_DIRS}) +include_directories( ${GTKGLEXTMM_INCLUDE_DIRS}) +include_directories( ${GTHREAD2_INCLUDE_DIRS}) + +add_executable(lag ${lag_UI_SOURCES} ${lag_SOURCES} ) +target_link_libraries(lag ${GTK2_LIBRARIES} + ${GTKGLEXTMM_LIBRARIES} + ${GTHREAD2_LIBRARIES} + ${LASTOOLS_LIBRARIES} + lidarquatree) +set_target_properties(lag PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +add_custom_command(TARGET lag POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/lag.ui + ${CMAKE_BINARY_DIR}/bin/lag.ui) +add_custom_command(TARGET lag POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/icons + ${CMAKE_BINARY_DIR}/bin/icons) +add_custom_command(TARGET lag POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/lagfonts + ${CMAKE_BINARY_DIR}/bin/lagfonts) +#lag_CPPFLAGS = @GTKmm_CFLAGS@ @GTKGLextmm_CFLAGS@ @GThread_CFLAGS@ @laslib_CFLAGS@ @lidarquadtree_CFLAGS@ +#lag_LDFLAGS = @GTKmm_LIBS@ @GTKGLextmm_LIBS@ @GThread_LIBS@ @laslib_LIBS@ @lidarquadtree_LIBS@ -ljemalloc #-lboost_system diff --git a/src/CMakelists.txt b/src/CMakelists.txt deleted file mode 100644 index a2190af..0000000 --- a/src/CMakelists.txt +++ /dev/null @@ -1,32 +0,0 @@ -SET(LAG_VERSION_MAJOR "1") -SET(LAG_VERSION_MINOR "1") -SET(LAG_VERSION_PATCH "1") -set(VERSION "${LAG_VERSION_MAJOR}.${LAG_VERSION_MINOR}.${LAG_VERSION_PATCH}") - -SET(LAG_SRC_DIR "src") -SET(lag_SOURCES ${LAG_SRC_DIR}/lag.cpp - ${LAG_SRC_DIR}/ui/AdvancedOptionsWindow.cpp - ${LAG_SRC_DIR}/ui/FileOpener.cpp - ${LAG_SRC_DIR}/MathFuncs.cpp - ${LAG_SRC_DIR}/TwoDeeOverview.cpp - ${LAG_SRC_DIR}/BoxOverlay.cpp - ${LAG_SRC_DIR}/ui/FileSaver.cpp - ${LAG_SRC_DIR}/Profile.cpp - ${LAG_SRC_DIR}/ui/TwoDeeOverviewWindow.cpp - ${LAG_SRC_DIR}/LagDisplay.cpp - ${LAG_SRC_DIR}/ui/ProfileWindow.cpp - ${LAG_SRC_DIR}/Colour.cpp - ${LAG_SRC_DIR}/SelectionBox.cpp - ${LAG_SRC_DIR}/LoadWorker.cpp - ${LAG_SRC_DIR}/SaveWorker.cpp - ${LAG_SRC_DIR}/ProfileWorker.cpp - ${LAG_SRC_DIR}/ClassifyWorker.cpp - ${LAG_SRC_DIR}/Worker.h - ${LAG_SRC_DIR}/FileUtils.cpp - ${LAG_SRC_DIR}/ui/AdvancedLoadDialog.cpp - ${LAG_SRC_DIR}/geoprojectionconverter.cpp - ${LAG_SRC_DIR}/DrawWorker.cpp ) - - -#lag_CPPFLAGS = @GTKmm_CFLAGS@ @GTKGLextmm_CFLAGS@ @GThread_CFLAGS@ @laslib_CFLAGS@ @lidarquadtree_CFLAGS@ -#lag_LDFLAGS = @GTKmm_LIBS@ @GTKGLextmm_LIBS@ @GThread_LIBS@ @laslib_LIBS@ @lidarquadtree_LIBS@ -ljemalloc #-lboost_system From 5162c26383a1460abde5a6bdfe0ece64e0dd4aeb Mon Sep 17 00:00:00 2001 From: Nicolas David Date: Sun, 9 Dec 2012 14:47:32 +0100 Subject: [PATCH 5/6] add laslib_include tagret for managing #include Date: Mon, 17 Dec 2012 14:14:29 +0100 Subject: [PATCH 6/6] correct LASTOOLS lib path and add some raw install documentation --- README.md | 45 ++++++++++++++++++++++++++++++++ cmake/modules/FindLASTOOLS.cmake | 6 ++--- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6965df9..46bc965 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,51 @@ Compiling on win32 Hopefully in the future. :-) + +INSTALLATION WITH CMAKE (ALPHA) +=============================== + +Required Dependencies +--------------------- + +To be able to build LAG the following libraries are required to be installed. + * GTKmm + * GTKGLextmm + * GThread + * lzo2 + +you basiccaly have to do : + $ sudo apt-get install libglib2.0-dev libgtkmm-2.4-dev libgtkglextmm-x11-1.2-dev liblzo2-dev + +Installing laslib +-------------------- + +Go to http://www.cs.unc.edu/~isenburg/lastools/ and download lastools. If +you want that lag find automatically lastools, install lastools next to lag source directory. + +Then compile laslib and rename liblas.a to liblaslib.a. You can do normal : + + cd lastools/laslib + make + cp lastools/laslib/liblas.a lastools/laslib/liblaslib.a + + +Compiling with CMake +-------------------------- + +use cmake-gui or ccmake. + +with ccmake do : + + cd lag + mkdir build_cmake + cd build_cmake + ccmake ../ -D LASTOOLS_ROOT="/dir/to/lastools/" + make + +lag is then installing into build_cmake/bin + + LICENSE ======= diff --git a/cmake/modules/FindLASTOOLS.cmake b/cmake/modules/FindLASTOOLS.cmake index 2e7ae60..2475a87 100644 --- a/cmake/modules/FindLASTOOLS.cmake +++ b/cmake/modules/FindLASTOOLS.cmake @@ -20,9 +20,9 @@ FIND_PATH(LASTOOLS_INCLUDE_DIRS lasreader.hpp ${CMAKE_SOURCE_DIR}/../lastools/laslib/inc) FIND_LIBRARY(LASTOOLS_LIBRARIES laslib - PATH ${LASTOOLS_ROOT}/laslib/inc - ${CMAKE_SOURCE_DIR}/lastools/laslib/inc - ${CMAKE_SOURCE_DIR}/../lastools/laslib/inc) + PATH ${LASTOOLS_ROOT}/laslib/lib + ${CMAKE_SOURCE_DIR}/lastools/laslib/lib + ${CMAKE_SOURCE_DIR}/../lastools/laslib/lib) FIND_PATH(LASTOOLS_SOURCE_DIRS lasreader.cpp PATH ${LASTOOLS_ROOT}/laslib/src