diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9b71e14 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,56 @@ +############################################################################### +# 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}") + +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() + +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() +add_custom_target(laslib_include) +add_custom_command( + TARGET laslib_include + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${LASTOOLS_INCLUDE_DIRS} + ${LASTOOLS_INCLUDE_DIRS}/laslib) + +find_package(LZO REQUIRED) +if(NOT LZO_FOUND) + message(SEND_ERROR "lzo2 not found" ) +endif() + + + +add_subdirectory(lidarquadtree) +add_subdirectory(src) + 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/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/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..2475a87 --- /dev/null +++ b/cmake/modules/FindLASTOOLS.cmake @@ -0,0 +1,35 @@ +# 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. + +INCLUDE(FindPackageHandleStandardArgs) + + +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/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 + ${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 new file mode 100644 index 0000000..2ed1ece --- /dev/null +++ b/lidarquadtree/CMakeLists.txt @@ -0,0 +1,46 @@ +############################################################################### +# 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) + +include_directories( ${LIBQUADTREE_SRC_DIR}) +include_directories( ${LASTOOLS_INCLUDE_DIRS}) +include_directories( ${LZO_INCLUDE_DIR}) + +add_library(lidarquadtree STATIC ${LIBLIDARQUADTREE_SRC} ${LIBLIDARQUADTREE_HEADERS} ) +target_link_libraries(lidarquadtree ${LASTOOLS_LIBRARIES} ${LZO_LIBRARIES}) + +add_dependencies(lidarquadtree laslib_include) + + diff --git a/lidarquadtree/Makefile.am b/lidarquadtree/Makefile.am index 5aab283..7046704 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 \ @@ -25,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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..9cc1b46 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,64 @@ +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} + lidarquadtree) +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) + +add_dependencies(lag laslib_include) + +#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