diff --git a/CMakeLists.txt b/CMakeLists.txt index 187ccea5..c7362612 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,24 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT( octomap-distribution ) -ENABLE_TESTING() # enable CTest environment +ENABLE_TESTING() # enable CTest environment of subprojects ADD_SUBDIRECTORY( octomap ) ADD_SUBDIRECTORY( octovis ) +# make complete package release from source +SET(PKG_NAME "${PROJECT_NAME}.tar.gz") +SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist") +ADD_CUSTOM_TARGET("dist" + rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${PKG_NAME}" + COMMAND mkdir "${DIST_DIR}" + COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}" + COMMAND tar -czf "${CMAKE_BINARY_DIR}/${PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" +) + +# also build subproject's dist for completeness +ADD_DEPENDENCIES(dist dist-octomap dist-octovis) diff --git a/octomap/CMakeLists.txt b/octomap/CMakeLists.txt index 0a1a40c0..619cec43 100644 --- a/octomap/CMakeLists.txt +++ b/octomap/CMakeLists.txt @@ -122,11 +122,12 @@ ENDIF(DOXYGEN_FOUND) # make package release from source SET(OCTOMAP_PKG_NAME "${PROJECT_NAME}-${OCTOMAP_VERSION}.tar.gz") -ADD_CUSTOM_TARGET(dist - rm -rf "${CMAKE_BINARY_DIR}/dist" "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" - COMMAND mkdir "${CMAKE_BINARY_DIR}/dist" - COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/dist/${PROJECT_NAME}" - COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" -C "${CMAKE_BINARY_DIR}/dist" --exclude=".hidden" "${PROJECT_NAME}" +SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}") +ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}" + rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" + COMMAND mkdir "${DIST_DIR}" + COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}" + COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" ) @@ -134,7 +135,7 @@ ADD_CUSTOM_TARGET(dist INCLUDE(CPackSettings) # Finished: -MESSAGE (STATUS "\n") +MESSAGE ("\n") MESSAGE (STATUS "Compile octomap using: make") MESSAGE (STATUS "Install octomap using: make install") MESSAGE ( " (be sure to set the correct CMAKE_INSTALL_PREFIX before)") diff --git a/octomap/CMakeModules/CompilerSettings.cmake b/octomap/CMakeModules/CompilerSettings.cmake index 590800a6..337ee42a 100644 --- a/octomap/CMakeModules/CompilerSettings.cmake +++ b/octomap/CMakeModules/CompilerSettings.cmake @@ -5,8 +5,7 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) MESSAGE ("\n") -MESSAGE (STATUS "Building as ${CMAKE_BUILD_TYPE}") -MESSAGE ("\n") +MESSAGE (STATUS "${PROJECT_NAME} building as ${CMAKE_BUILD_TYPE}") # COMPILER FLAGS IF (CMAKE_COMPILER_IS_GNUCC) diff --git a/octomap/ros/ROS_README.txt b/octomap/ros/ROS_README.txt deleted file mode 100644 index 730490de..00000000 --- a/octomap/ros/ROS_README.txt +++ /dev/null @@ -1,11 +0,0 @@ -For better integration, OctoMap's ROS integration is now moved into its own -octomap_mapping stack, available in Freiburg's ROS repository at - - http://code.google.com/p/alufr-ros-pkg/ - -The "octomap" package in that stack will provide ROS integration by checking -out the OctoMap code from SVN and building it. More information is available at: - - http://www.ros.org/wiki/octomap_mapping - - diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt index 88077666..c1143cd6 100644 --- a/octovis/CMakeLists.txt +++ b/octovis/CMakeLists.txt @@ -2,10 +2,10 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT( octovis ) # # version (e.g. for packaging) -# set(OCTOMAP_MAJOR_VERSION 1) -# set(OCTOMAP_MINOR_VERSION 1) -# set(OCTOMAP_PATCH_VERSION 0) -# set(OCTOMAP_VERSION ${OCTOMAP_MAJOR_VERSION}.${OCTOMAP_MINOR_VERSION}.${OCTOMAP_PATCH_VERSION}) +set(OCTOVIS_MAJOR_VERSION 1) +set(OCTOVIS_MINOR_VERSION 2) +set(OCTOVIS_PATCH_VERSION 0) +set(OCTOVIS_VERSION ${OCTOVIS_MAJOR_VERSION}.${OCTOVIS_MINOR_VERSION}.${OCTOVIS_PATCH_VERSION}) # get rid of a useless warning: if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) @@ -81,9 +81,35 @@ IF(BUILD_VIEWER) # not used right now (export depends?) #set(OCTOMAP_CMAKE_DIR "${PROJECT_BINARY_DIR}") configure_file(octovis-config.cmake.in - "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octovis-config.cmake" @ONLY) + "${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) + install(FILES + "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake" + "${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake" + DESTINATION lib/cmake/octovis/) + + # make package release from source + SET(OCTOVIS_PKG_NAME "${PROJECT_NAME}-${OCTOVIS_VERSION}.tar.gz") + SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}") + ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}" + rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}" + COMMAND mkdir "${DIST_DIR}" + COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}" + COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + ) - # #installation: # # store all header files to install: file(GLOB octovis_HDRS *.h *.hxx *.hpp) diff --git a/octovis/CMakeModules/CompilerSettings.cmake b/octovis/CMakeModules/CompilerSettings.cmake index 590800a6..337ee42a 100644 --- a/octovis/CMakeModules/CompilerSettings.cmake +++ b/octovis/CMakeModules/CompilerSettings.cmake @@ -5,8 +5,7 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) MESSAGE ("\n") -MESSAGE (STATUS "Building as ${CMAKE_BUILD_TYPE}") -MESSAGE ("\n") +MESSAGE (STATUS "${PROJECT_NAME} building as ${CMAKE_BUILD_TYPE}") # COMPILER FLAGS IF (CMAKE_COMPILER_IS_GNUCC) diff --git a/octovis/octovis-config-version.cmake.in b/octovis/octovis-config-version.cmake.in new file mode 100644 index 00000000..c8263826 --- /dev/null +++ b/octovis/octovis-config-version.cmake.in @@ -0,0 +1,11 @@ +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