diff --git a/.travis.yml b/.travis.yml index 2e692af2..2fa49387 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,12 @@ language: cpp +sudo: required +dist: trusty compiler: - gcc - clang before_install: - sudo apt-get update -qq - - sudo apt-get install -qq libqt4-dev libqt4-opengl-dev libqglviewer-qt4-dev + - sudo apt-get install -qq libqt4-dev libqt4-opengl-dev libqglviewer-dev before_script: - mkdir build - cd build diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c56033d..d7fc92e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) PROJECT( octomap-distribution ) ENABLE_TESTING() # enable CTest environment of subprojects diff --git a/dynamicEDT3D/CMakeLists.txt b/dynamicEDT3D/CMakeLists.txt index 195a8704..5ff8e478 100644 --- a/dynamicEDT3D/CMakeLists.txt +++ b/dynamicEDT3D/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) PROJECT(dynamicEDT3D) ENABLE_TESTING() @@ -96,10 +96,18 @@ ELSE() ENDIF() # not used right now (export depends?) #set(DYNEDT3D_CMAKE_DIR "${PROJECT_BINARY_DIR}") -configure_file(dynamicEDT3DConfig.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig.cmake" @ONLY) -configure_file(dynamicEDT3DConfig-version.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig-version.cmake" @ONLY) +include(CMakePackageConfigHelpers) + +CONFIGURE_PACKAGE_CONFIG_FILE( + dynamicEDT3DConfig.cmake.in + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig.cmake" + PATH_VARS DYNAMICEDT3D_INCLUDE_DIRS DYNAMICEDT3D_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dynamicEDT3D) + +WRITE_BASIC_PACKAGE_VERSION_FILE( + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig-version.cmake" + VERSION ${DYNAMICEDT3D_VERSION} + COMPATIBILITY AnyNewerVersion) # Install the export set for use with the install-tree #install(EXPORT FooBarLibraryDepends DESTINATION @@ -111,10 +119,18 @@ configure_file(dynamicEDT3DConfig-version.cmake.in set(DYNAMICEDT3D_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include") set(DYNAMICEDT3D_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") #set(DYNAMICEDT3D_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake") -configure_file(dynamicEDT3DConfig.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig.cmake" @ONLY) -configure_file(dynamicEDT3DConfig-version.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig-version.cmake" @ONLY) + +CONFIGURE_PACKAGE_CONFIG_FILE( + dynamicEDT3DConfig.cmake.in + "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig.cmake" + PATH_VARS DYNAMICEDT3D_INCLUDE_DIRS DYNAMICEDT3D_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dynamicEDT3D) + +WRITE_BASIC_PACKAGE_VERSION_FILE( + "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig-version.cmake" + VERSION ${DYNAMICEDT3D_VERSION} + COMPATIBILITY AnyNewerVersion) + install(FILES "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig.cmake" "${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig-version.cmake" diff --git a/dynamicEDT3D/dynamicEDT3DConfig-version.cmake.in b/dynamicEDT3D/dynamicEDT3DConfig-version.cmake.in deleted file mode 100644 index 722ebb3d..00000000 --- a/dynamicEDT3D/dynamicEDT3DConfig-version.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -set(PACKAGE_VERSION "@DYNAMICEDT3D_VERSION@") - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() \ No newline at end of file diff --git a/dynamicEDT3D/dynamicEDT3DConfig.cmake.in b/dynamicEDT3D/dynamicEDT3DConfig.cmake.in index 9cd3df84..5055b589 100644 --- a/dynamicEDT3D/dynamicEDT3DConfig.cmake.in +++ b/dynamicEDT3D/dynamicEDT3DConfig.cmake.in @@ -1,5 +1,4 @@ # - Config file for the dynamicEDT3D package -# (example from http://www.vtk.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file) # # Usage from an external project: # In your CMakeLists.txt, add these lines: @@ -12,12 +11,14 @@ # DYNAMICEDT3D_INCLUDE_DIRS - include directories for dynamicEDT3D # DYNAMICEDT3D_LIBRARY_DIRS - library directories for dynamicEDT3D (normally not used!) # DYNAMICEDT3D_LIBRARIES - libraries to link against - + +@PACKAGE_INIT@ + # Tell the user project where to find our headers and libraries -set(DYNAMICEDT3D_INCLUDE_DIRS "@DYNAMICEDT3D_INCLUDE_DIRS@") -set(DYNAMICEDT3D_LIBRARY_DIRS "@DYNAMICEDT3D_LIB_DIR@") - +set(DYNAMICEDT3D_INCLUDE_DIRS "@PACKAGE_DYNAMICEDT3D_INCLUDE_DIRS@") +set(DYNAMICEDT3D_LIBRARY_DIRS "@PACKAGE_DYNAMICEDT3D_LIB_DIR@") + # Our library dependencies (contains definitions for IMPORTED targets) # include("@FOOBAR_CMAKE_DIR@/FooBarLibraryDepends.cmake") - -set(DYNAMICEDT3D_LIBRARIES "@DYNAMICEDT3D_LIB_DIR@/@DYNAMICEDT3D_LIBRARY@") + +set(DYNAMICEDT3D_LIBRARIES "@PACKAGE_DYNAMICEDT3D_LIB_DIR@/@DYNAMICEDT3D_LIBRARY@") diff --git a/octomap/CMakeLists.txt b/octomap/CMakeLists.txt index fcafca18..1ba3417f 100644 --- a/octomap/CMakeLists.txt +++ b/octomap/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) PROJECT( octomap ) ENABLE_TESTING() @@ -103,11 +103,18 @@ ENDIF() # not used right now (export depends?) #set(OCTOMAP_CMAKE_DIR "${PROJECT_BINARY_DIR}") -configure_file(octomap-config.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config.cmake" @ONLY) -configure_file(octomap-config-version.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config-version.cmake" @ONLY) +include(CMakePackageConfigHelpers) +CONFIGURE_PACKAGE_CONFIG_FILE( + octomap-config.cmake.in + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config.cmake" + PATH_VARS OCTOMAP_INCLUDE_DIRS OCTOMAP_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octomap) + +WRITE_BASIC_PACKAGE_VERSION_FILE( + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config-version.cmake" + VERSION ${OCTOMAP_VERSION} + COMPATIBILITY AnyNewerVersion) # Create a octomap-config.cmake file for the use from the install tree # and install it @@ -115,10 +122,17 @@ set(OCTOMAP_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include") set(OCTOMAP_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") #set(OCTOMAP_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake") -configure_file(octomap-config.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/octomap-config.cmake" @ONLY) -configure_file(octomap-config-version.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/octomap-config-version.cmake" @ONLY) +CONFIGURE_PACKAGE_CONFIG_FILE( + octomap-config.cmake.in + "${PROJECT_BINARY_DIR}/InstallFiles/octomap-config.cmake" + PATH_VARS OCTOMAP_INCLUDE_DIRS OCTOMAP_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octomap) + +WRITE_BASIC_PACKAGE_VERSION_FILE( + ${PROJECT_BINARY_DIR}/InstallFiles/octomap-config-version.cmake + VERSION ${OCTOMAP_VERSION} + COMPATIBILITY AnyNewerVersion) + install(FILES "${PROJECT_BINARY_DIR}/InstallFiles/octomap-config.cmake" "${PROJECT_BINARY_DIR}/InstallFiles/octomap-config-version.cmake" diff --git a/octomap/octomap-config-version.cmake.in b/octomap/octomap-config-version.cmake.in deleted file mode 100644 index c1a11734..00000000 --- a/octomap/octomap-config-version.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -set(PACKAGE_VERSION "@OCTOMAP_VERSION@") - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() \ No newline at end of file diff --git a/octomap/octomap-config.cmake.in b/octomap/octomap-config.cmake.in index 2f5ba8c5..5ab5dee4 100644 --- a/octomap/octomap-config.cmake.in +++ b/octomap/octomap-config.cmake.in @@ -17,18 +17,16 @@ # LINK_DIRECTORIES with this path is NOT needed. # - OCTOMAP_INCLUDE_DIRS : The OctoMap include directories. # -# Based on the example CMake Tutorial -# http://www.vtk.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file -# and OpenCVConfig.cmake.in from OpenCV # =================================================================================== - -set(OCTOMAP_INCLUDE_DIRS "@OCTOMAP_INCLUDE_DIRS@") -set(OCTOMAP_LIBRARY_DIRS "@OCTOMAP_LIB_DIR@") +@PACKAGE_INIT@ + +set(OCTOMAP_INCLUDE_DIRS "@PACKAGE_OCTOMAP_INCLUDE_DIRS@") +set(OCTOMAP_LIBRARY_DIRS "@PACKAGE_OCTOMAP_LIB_DIR@") # Set library names set(OCTOMAP_LIBRARIES - "@OCTOMAP_LIB_DIR@/@OCTOMAP_LIBRARY@" - "@OCTOMAP_LIB_DIR@/@OCTOMATH_LIBRARY@" + "@PACKAGE_OCTOMAP_LIB_DIR@/@OCTOMAP_LIBRARY@" + "@PACKAGE_OCTOMAP_LIB_DIR@/@OCTOMATH_LIBRARY@" ) diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt index 87fb9a51..8d1a0636 100644 --- a/octovis/CMakeLists.txt +++ b/octovis/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) PROJECT( octovis ) # # version (e.g. for packaging) @@ -61,6 +61,7 @@ SET( BUILD_VIEWER 0) # Look for required libraries: FIND_PACKAGE(OpenGL) FIND_PACKAGE(Qt4) + IF (OpenGL-NOTFOUND OR Qt4-NOTFOUND) MESSAGE ( "OpenGL and QT4 are required for octovis but could not be found.") ELSE() @@ -84,7 +85,7 @@ IF(BUILD_VIEWER) INCLUDE( CMakeLists_src.txt ) # Create an octovis-config.cmake file for the use from the build tree - set(OCTOVIS_INCLUDE_DIR "${INCLUDE_DIRS}") + set(OCTOVIS_INCLUDE_DIRS "${INCLUDE_DIRS}") set(OCTOVIS_LIB_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") # Set library names as absolute paths # Windows, spec. MSVC requires the .lib suffix for imported libs @@ -98,28 +99,44 @@ IF(BUILD_VIEWER) ) ENDIF() + include(CMakePackageConfigHelpers) + + CONFIGURE_PACKAGE_CONFIG_FILE( + octovis-config.cmake.in + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octovis/octovis-config.cmake" + PATH_VARS OCTOVIS_INCLUDE_DIRS OCTOVIS_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octovis) + + WRITE_BASIC_PACKAGE_VERSION_FILE( + "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octovis/octovis-config-version.cmake" + VERSION ${OCTOVIS_VERSION} + COMPATIBILITY AnyNewerVersion) + # not used right now (export depends?) #set(OCTOMAP_CMAKE_DIR "${PROJECT_BINARY_DIR}") - configure_file(octovis-config.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octovis/octovis-config.cmake" @ONLY) - configure_file(octovis-config-version.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octovis/octovis-config-version.cmake" @ONLY) # Create a octovis-config.cmake file for the use from the install tree # and install it set(OCTOVIS_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include") set(OCTOVIS_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") #set(OCTOMAP_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake") - configure_file(octovis-config.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake" @ONLY) - configure_file(octovis-config-version.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake" @ONLY) + + CONFIGURE_PACKAGE_CONFIG_FILE( + octovis-config.cmake.in + "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake" + PATH_VARS OCTOVIS_INCLUDE_DIRS OCTOVIS_LIB_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octovis) + + WRITE_BASIC_PACKAGE_VERSION_FILE( + "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake" + VERSION ${OCTOVIS_VERSION} + COMPATIBILITY AnyNewerVersion) + install(FILES "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake" "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake" DESTINATION share/octovis/) - - + # #installation: # # store all header files to install: file(GLOB octovis_HDRS *.h *.hxx *.hpp) diff --git a/octovis/octovis-config-version.cmake.in b/octovis/octovis-config-version.cmake.in deleted file mode 100644 index c8263826..00000000 --- a/octovis/octovis-config-version.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -set(PACKAGE_VERSION "@OCTOVIS_VERSION@") - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() \ No newline at end of file diff --git a/octovis/octovis-config.cmake.in b/octovis/octovis-config.cmake.in index 89425d5d..7969b521 100644 --- a/octovis/octovis-config.cmake.in +++ b/octovis/octovis-config.cmake.in @@ -1,17 +1,17 @@ -# - Config file for the OctoMap package -# (example from http://www.vtk.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file) # It defines the following variables # OCTOVIS_INCLUDE_DIRS - include directories for OctoMap viewer # OCTOVIS_LIBRARY_DIRS - library directories for OctoMap viewer # OCTOVIS_LIBRARIES - libraries to link against -set(OCTOVIS_INCLUDE_DIRS "@QGLViewer_INCLUDE_DIR@" "@OCTOVIS_INCLUDE_DIR@") -set(OCTOVIS_LIBRARY_DIRS "@QGLViewer_LIBRARY_DIR@" "@OCTOVIS_LIB_DIR@") +@PACKAGE_INIT@ + +set(OCTOVIS_INCLUDE_DIRS "@QGLViewer_INCLUDE_DIR@" "@PACKAGE_OCTOVIS_INCLUDE_DIRS@") +set(OCTOVIS_LIBRARY_DIRS "@QGLViewer_LIBRARY_DIR@" "@PACKAGE_OCTOVIS_LIB_DIR@") # Set library names as absolute paths: set(OCTOVIS_LIBRARIES "@QGLViewer_LIBRARIES@" "@QT_LIBRARIES@" - "@OCTOVIS_LIB_DIR@/@OCTOVIS_LIBRARY@" + "@PACKAGE_OCTOVIS_LIB_DIR@/@OCTOVIS_LIBRARY@" )