Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
###############################################################################
# Main CMake configuration file for LAG
#
# Author: Nicolas David <nicolas.david@ign.fr>
#
#
###############################################################################
# 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)

4 changes: 2 additions & 2 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
45 changes: 45 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
=======

Expand Down
58 changes: 58 additions & 0 deletions cmake/modules/FindGTHREAD2.cmake
Original file line number Diff line number Diff line change
@@ -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 <bjoern.ricks@googlemail.com>
#
# 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 )
55 changes: 55 additions & 0 deletions cmake/modules/FindGTKGLEXTMM.cmake
Original file line number Diff line number Diff line change
@@ -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)

Empty file added cmake/modules/FindGthread.cmake
Empty file.
35 changes: 35 additions & 0 deletions cmake/modules/FindLASTOOLS.cmake
Original file line number Diff line number Diff line change
@@ -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)
45 changes: 45 additions & 0 deletions cmake/modules/FindLZO.cmake
Original file line number Diff line number Diff line change
@@ -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)
46 changes: 46 additions & 0 deletions lidarquadtree/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
###############################################################################
# Main CMake configuration file for libLidarQuadtree
#
# Author: Nicolas David <nicolas.david@ign.fr>
#
#
###############################################################################
# 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)


4 changes: 3 additions & 1 deletion lidarquadtree/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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
Loading