diff --git a/CMakeLists.txt b/CMakeLists.txt index 539ea627ad532ca844f1985ae68e8a97c3522336..cd4eafae752e3e8f025131e908c924722437be8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,8 @@ if(COMMAND cmake_policy) endif(COMMAND cmake_policy) # The project name and the type of project -PROJECT(iri-autonomous-driving-tools) +PROJECT(iri_autonomous_driving_tools) +SET(PACKAGE_NAME iri-autonomous-driving-tools) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) @@ -55,6 +56,8 @@ IF (UNIX) ADD_CUSTOM_COMMAND( COMMENT "uninstall package" COMMAND xargs ARGS rm < install_manifest.txt + COMMAND rm -rd ${CMAKE_INSTALL_PREFIX}/lib/iri/${PROJECT_NAME} + COMMAND rm -rd ${CMAKE_INSTALL_PREFIX}/include/iri/${PROJECT_NAME} TARGET uninstall ) @@ -65,4 +68,24 @@ ELSE(UNIX) ) ENDIF(UNIX) +IF (UNIX) + SET(CPACK_PACKAGE_FILE_NAME "iri-${PACKAGE_NAME}-dev-${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") + SET(CPACK_PACKAGE_NAME "iri-${PACKAGE_NAME}-dev") + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Part of IRI-laboratory libraries. More information at https://gitlab.iri.upc.edu/labrobotica") + SET(CPACK_PACKAGING_INSTALL_PREFIX /usr) + SET(CPACK_GENERATOR "DEB") + SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "labrobotica - labrobotica@iri.upc.edu") + + #Uncomment to add the necessary mantainer scripts + #SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/scripts/debian/preinst;${CMAKE_SOURCE_DIR}/scripts/debian/postinst;${CMAKE_SOURCE_DIR}/scripts/debian/prerm;${CMAKE_SOURCE_DIR}/scripts/debian/postrm") + #Uncomment to add dependencies comma separated + #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "iri-dep1-dev (>= 1.0~${DISTRIB}), iri-dep2-dev (>= 1.0~${DISTRIB})") + + INCLUDE(CPack) +ELSE(UNIX) + ADD_CUSTOM_COMMAND( + COMMENT "packaging only implemented in unix" + TARGET uninstall + ) +ENDIF(UNIX) \ No newline at end of file diff --git a/Findiri_autonomous_driving_tools.cmake b/Findiri_autonomous_driving_tools.cmake index beb5b24bc553455e396c4743d5894ce2fd7481aa..ce7fbf4b4d6f4c83e97ffb4ce839b65dc22d98f8 100644 --- a/Findiri_autonomous_driving_tools.cmake +++ b/Findiri_autonomous_driving_tools.cmake @@ -1,21 +1,24 @@ #edit the following line to add the librarie's header files -FIND_PATH(iri_autonomous_driving_tools_INCLUDE_DIR gradient.h g2_spline.h dijkstra.h /usr/include/iridrivers /usr/local/include/iridrivers) +SET(name iri_autonomous_driving_tools) +FIND_PATH(${name}_INCLUDE_DIRS gradient.h g2_spline.h dijkstra.h /usr/local/include/iri/${name} /usr/include/iri/${name}) -FIND_LIBRARY(iri_autonomous_driving_tools_LIBRARY - NAMES iri_autonomous_driving_tools - PATHS /usr/lib /usr/local/lib /usr/local/lib/iridrivers) +FIND_LIBRARY(${name}_LIBRARIES + NAMES ${name} + PATHS /usr/local/lib/iri/${name} /usr/lib/iri/${name}) -IF (iri_autonomous_driving_tools_INCLUDE_DIR AND iri_autonomous_driving_tools_LIBRARY) - SET(iri_autonomous_driving_tools_FOUND TRUE) -ENDIF (iri_autonomous_driving_tools_INCLUDE_DIR AND iri_autonomous_driving_tools_LIBRARY) +SET(${name}_INCLUDE_DIR ${${name}_INCLUDE_DIRS}) +SET(${name}_LIBRARY ${${name}_LIBRARIES}) -IF (iri_autonomous_driving_tools_FOUND) - IF (NOT iri_autonomous_driving_tools_FIND_QUIETLY) - MESSAGE(STATUS "Found iri_autonomous_driving_tools: ${iri_autonomous_driving_tools_LIBRARY}") - ENDIF (NOT iri_autonomous_driving_tools_FIND_QUIETLY) -ELSE (iri_autonomous_driving_tools_FOUND) - IF (iri_autonomous_driving_tools_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find iri_autonomous_driving_tools") - ENDIF (iri_autonomous_driving_tools_FIND_REQUIRED) -ENDIF (iri_autonomous_driving_tools_FOUND) +IF (${name}_INCLUDE_DIRS AND ${name}_LIBRARIES) + SET(${name}_FOUND TRUE) +ENDIF (${name}_INCLUDE_DIRS AND ${name}_LIBRARIES) +IF (${name}_FOUND) + IF (NOT ${name}_FIND_QUIETLY) + MESSAGE(STATUS "Found ${name}: ${${name}_LIBRARIES}") + ENDIF (NOT ${name}_FIND_QUIETLY) +ELSE (${name}_FOUND) + IF (${name}_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find ${name}") + ENDIF (${name}_FIND_REQUIRED) +ENDIF (${name}_FOUND) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2e81c312be360872aee9bb7a47b378fffa276fc8..bd96a3d729561645a4cd92611a3f2750af046ef4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,20 +1,30 @@ # driver source files SET(sources gradient.cpp g2_spline.cpp dijkstra.cpp) + # application header files SET(headers ../include/gradient.h ../include/g2_spline.h ../include/dijkstra.h) + # locate the necessary dependencies find_package(Eigen3 REQUIRED) + # add the necessary include directories INCLUDE_DIRECTORIES(../include) INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) # create the shared library -ADD_LIBRARY(iri_autonomous_driving_tools SHARED ${sources}) +ADD_LIBRARY(${PROJECT_NAME} SHARED ${sources}) + # link necessary libraries -INSTALL(TARGETS iri_autonomous_driving_tools +INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin - LIBRARY DESTINATION lib/iridrivers - ARCHIVE DESTINATION lib/iridrivers) -INSTALL(FILES ${headers} DESTINATION include/iridrivers) -INSTALL(FILES ../Findiri_autonomous_driving_tools.cmake DESTINATION ${CMAKE_ROOT}/Modules/) + LIBRARY DESTINATION lib/iri/${PROJECT_NAME} + ARCHIVE DESTINATION lib/iri/${PROJECT_NAME}) +INSTALL(FILES ${headers} DESTINATION include/iri/${PROJECT_NAME}) +INSTALL(FILES ../Find${PROJECT_NAME}.cmake DESTINATION ${CMAKE_ROOT}/Modules/) + +#Install script files if needed +#INSTALL(FILES ../scripts/<script_name> +# DESTINATION share/iri +# PERMISSIONS OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) + ADD_SUBDIRECTORY(examples) diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index 596f57cee7361a107137c397009d1e92be5fb9b7..a5d59c32efb18bbef22bf47912ccc8d7c08bd4d0 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -1,4 +1,4 @@ # create an example application ADD_EXECUTABLE(dijkstra_test dijkstra_test.cpp) # link necessary libraries -TARGET_LINK_LIBRARIES(dijkstra_test iri_autonomous_driving_tools) +TARGET_LINK_LIBRARIES(dijkstra_test ${PROJECT_NAME})