From 7cdf18a2a3e134850e8a05b031d47d7d6fbec322 Mon Sep 17 00:00:00 2001 From: fherrero <fherrero@iri.upc.edu> Date: Tue, 19 Mar 2019 14:56:03 +0100 Subject: [PATCH] Change install paths, now is .../iri/<library_name instead of .../iridrivers. Find cmake: switch to plural cmake variables, _INCLUDE_DIRS and _LIBRARIES, although. Fix project_name: underscore _ instead of dash -. Removed old template.tar.gz, no needed anymore singular names are kept for backward compatibility --- Findlib_template.cmake | 15 +++++++++------ ReadMe_template.md | 4 ++-- new_project.sh | 10 +++++----- template.tar.gz | Bin 7086 -> 0 bytes 4 files changed, 16 insertions(+), 13 deletions(-) delete mode 100755 template.tar.gz diff --git a/Findlib_template.cmake b/Findlib_template.cmake index 7b5fefb..91b373b 100755 --- a/Findlib_template.cmake +++ b/Findlib_template.cmake @@ -1,17 +1,20 @@ #edit the following line to add the librarie's header files -FIND_PATH(library_name_INCLUDE_DIR header_file /usr/include/iridrivers /usr/local/include/iridrivers) +FIND_PATH(library_name_INCLUDE_DIRS header_file /usr/include/iri/library_name /usr/local/include/iri/library_name) -FIND_LIBRARY(library_name_LIBRARY +FIND_LIBRARY(library_name_LIBRARIES NAMES library_name - PATHS /usr/lib /usr/local/lib /usr/local/lib/iridrivers) + PATHS /usr/lib /usr/lib/iri/library_name /usr/local/lib /usr/local/lib/iri/library_name) -IF (library_name_INCLUDE_DIR AND library_name_LIBRARY) +SET(library_name_INCLUDE_DIR ${library_name_INCLUDE_DIRS}) +SET(library_name_LIBRARY ${library_name_LIBRARIES}) + +IF (library_name_INCLUDE_DIRS AND library_name_LIBRARIES) SET(library_name_FOUND TRUE) -ENDIF (library_name_INCLUDE_DIR AND library_name_LIBRARY) +ENDIF (library_name_INCLUDE_DIRS AND library_name_LIBRARIES) IF (library_name_FOUND) IF (NOT library_name_FIND_QUIETLY) - MESSAGE(STATUS "Found library_name: ${library_name_LIBRARY}") + MESSAGE(STATUS "Found library_name: ${library_name_LIBRARIES}") ENDIF (NOT library_name_FIND_QUIETLY) ELSE (library_name_FOUND) IF (library_name_FIND_REQUIRED) diff --git a/ReadMe_template.md b/ReadMe_template.md index 800bac7..f745621 100755 --- a/ReadMe_template.md +++ b/ReadMe_template.md @@ -68,11 +68,11 @@ To use this library in an other library or application, in the CMakeLists.txt fi In the case that the package is present, it is necessary to add the header files directory to the include directory path by using -``` INCLUDE_DIRECTORIES(${project_name_INCLUDE_DIR}) ``` +``` INCLUDE_DIRECTORIES(${project_name_INCLUDE_DIRS}) ``` and it is also necessary to link with the desired libraries by using the following command -``` TARGET_LINK_LIBRARIES(<executable name> ${project_name_LIBRARY}) ``` +``` TARGET_LINK_LIBRARIES(<executable name> ${project_name_LIBRARIES}) ``` ## Disclaimer diff --git a/new_project.sh b/new_project.sh index 0238dd7..dfba67b 100755 --- a/new_project.sh +++ b/new_project.sh @@ -160,7 +160,8 @@ rm tmp3.md rm ReadMe_template.md #Set the project name on the CMakeLists.txt script file -NEW_NAME=$(echo $NAME | sed 's/_/-/g') +#NEW_NAME=$(echo $NAME | sed 's/_/-/g') +NEW_NAME=$NAME if [ $TEST = 1 ] then sed 's/project_name/'$NEW_NAME'/g' <CMakeLists_test_template.txt >./CMakeLists.txt @@ -227,9 +228,9 @@ else done echo "INSTALL(TARGETS $NAME" >> CMakeLists.tmp echo " RUNTIME DESTINATION bin" >> CMakeLists.tmp - echo " LIBRARY DESTINATION lib/iridrivers" >> CMakeLists.tmp - echo " ARCHIVE DESTINATION lib/iridrivers)" >> CMakeLists.tmp - echo "INSTALL(FILES "'${'"headers"'}' "DESTINATION include/iridrivers)" >> CMakeLists.tmp + echo " LIBRARY DESTINATION lib/iri/${NAME}" >> CMakeLists.tmp + echo " ARCHIVE DESTINATION lib/iri/${NAME})" >> CMakeLists.tmp + echo "INSTALL(FILES "'${'"headers"'}' "DESTINATION include/iri/${NAME})" >> CMakeLists.tmp echo "INSTALL(FILES ../Find$NAME.cmake DESTINATION "'${'"CMAKE_ROOT"'}'"/Modules/)" >> CMakeLists.tmp echo "ADD_SUBDIRECTORY(examples)" >> CMakeLists.tmp mv CMakeLists.tmp ./src/CMakeLists.txt @@ -281,6 +282,5 @@ rm driver_src_template.cpp rm driver_header_template.h rm driver_example_src_template.cpp rm Findlib_template.cmake -rm template.tar.gz rm new_project.sh rm -rf .git diff --git a/template.tar.gz b/template.tar.gz deleted file mode 100755 index f1ad7d0bf7012d32d1c527a67767709b319c1c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7086 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 YC{Un4fdT~z6zG?t?@VtcX#k)A0DB&(ivR!s -- GitLab