From e755a92daa52cb3005e0cf1d3b943a4ce466a409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu> Date: Tue, 17 May 2022 12:55:30 +0200 Subject: [PATCH] still debuging --- CMakeLists.txt | 108 +++++++++++++++++++------------------- test/CMakeLists.txt | 18 +------ test/gtest/CMakeLists.txt | 13 +++-- 3 files changed, 64 insertions(+), 75 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cdda9cb..6736c5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,13 +4,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10) # The project name and the type of project PROJECT(laser_scan_utils) +# Paths SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) set(INCLUDE_INSTALL_DIR include/iri-algorithms) set(LIB_INSTALL_DIR lib/) +# Build type IF (NOT CMAKE_BUILD_TYPE) - #SET(CMAKE_BUILD_TYPE "DEBUG") SET(CMAKE_BUILD_TYPE "RELEASE") ENDIF (NOT CMAKE_BUILD_TYPE) message(STATUS "Configured to compile in ${CMAKE_BUILD_TYPE} mode.") @@ -19,7 +20,34 @@ message(STATUS "Configured to compile in ${CMAKE_BUILD_TYPE} mode.") SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall -D_REENTRANT") SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -D_REENTRANT") -#find dependencies +#Set compiler according C++11 support +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +if(COMPILER_SUPPORTS_CXX11) + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++11 support.") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +else() + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") +endif() + +# Options +IF(NOT BUILD_TESTS) + OPTION(BUILD_TESTS "Build Unit tests" ON) +ENDIF(NOT BUILD_TESTS) + +IF(NOT BUILD_DEMOS) + OPTION(BUILD_DEMOS "Build demos" ON) +ENDIF(NOT BUILD_DEMOS) + +if(BUILD_TESTS) + # Enables testing for this directory and below. + # Note that ctest expects to find a test file in the build directory root. + # Therefore, this command should be in the source directory root. + #include(CTest) # according to http://public.kitware.com/pipermail/cmake/2012-June/050853.html + enable_testing() +endif() + +# ============ DEPENDENCIES ============ FIND_PACKAGE(Eigen3 3.3 REQUIRED CONFIG) FIND_PACKAGE(falkolib QUIET) find_package(PkgConfig) @@ -28,37 +56,16 @@ link_directories(${csm_LIBRARY_DIRS}) message(csm_LIBRARY_DIRS: ${csm_LIBRARY_DIRS}) #Â keep only the files in a lib folder: by default the "." is in csm_LIBRARY_DIRS, # which is not acceptable for target_link_directories -string(REPLACE "./" "/" csm_LIBRARY_DIRS ${csm_LIBRARY_DIRS}) -# SET(csm_LIBRARY_DIRS_LENGTH "0") -# list(LENGTH csm_LIBRARY_DIRS csm_LIBRARY_DIRS_LENGTH ) -message(csm_LIBRARY_DIRS: ${csm_LIBRARY_DIRS}) -# list(FILTER csm_LIBRARY_DIRS EXCLUDE REGEX ".") -# message(csm_LIBRARY_DIRS: ${csm_LIBRARY_DIRS}) +foreach (my_entry IN LISTS csm_LIBRARY_DIRS) + message("csm_LIBRARY_DIRS has ${my_entry}") +endforeach() +list(FILTER csm_LIBRARY_DIRS INCLUDE REGEX "lib") +foreach (my_entry IN LISTS csm_LIBRARY_DIRS) + message("csm_LIBRARY_DIRS has ${my_entry}") +endforeach() -#Build tests -IF(NOT BUILD_TESTS) - OPTION(BUILD_TESTS "Build Unit tests" ON) -ENDIF(NOT BUILD_TESTS) -#Build demos -IF(NOT BUILD_DEMOS) - OPTION(BUILD_DEMOS "Build demos" ON) -ENDIF(NOT BUILD_DEMOS) - -#Set compiler according C++11 support -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++11 support.") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++0x support.") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -else() - message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") -endif() # ============ INCLUDES ============ @@ -152,12 +159,19 @@ ENDIF(falkolib_FOUND) #Build tests -#===============EXAMPLE========================= +#======================================== IF(BUILD_DEMOS) MESSAGE("Building examples.") ADD_SUBDIRECTORY(examples) ENDIF(BUILD_DEMOS) +#Build tests +IF(BUILD_TESTS) + MESSAGE("Building tests.") + set(_LASER_SCAN_UTILS_ROOT_DIR ${CMAKE_SOURCE_DIR}) + add_subdirectory(test) +ENDIF(BUILD_TESTS) + #install library #============================================================= INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets @@ -168,12 +182,6 @@ INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets install(EXPORT ${PROJECT_NAME}Targets DESTINATION lib/${PROJECT_NAME}/cmake) -#install headers -INSTALL(FILES ${HDRS_BASE} - DESTINATION include/iri-algorithms/laser_scan_utils) -INSTALL(FILES ${HDRS} - DESTINATION include/iri-algorithms/laser_scan_utils) - #Â Configure the package installation include(CMakePackageConfigHelpers) configure_package_config_file( @@ -192,25 +200,17 @@ install( # Specifies include directories to use when compiling the plugin target # This way, include_directories does not need to be called in plugins depending on this one -# target_include_directories(${PROJECT_NAME} INTERFACE -# $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}> -# ) -target_include_directories(${PROJECT_NAME} PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/laser_scan_utils> - $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}> +target_include_directories(${PROJECT_NAME} INTERFACE + $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}> ) -#Build tests -IF(BUILD_TESTS) - # Enables testing for this directory and below. - # Note that ctest expects to find a test file in the build directory root. - # Therefore, this command should be in the source directory root. - #include(CTest) # according to http://public.kitware.com/pipermail/cmake/2012-June/050853.html - MESSAGE("Building tests.") - enable_testing() - set(_LASER_SCAN_UTILS_ROOT_DIR ${CMAKE_SOURCE_DIR}) - add_subdirectory(test) -ENDIF(BUILD_TESTS) +#install headers +INSTALL(FILES ${HDRS_BASE} + DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}) +INSTALL(FILES ${HDRS} + DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}) + +export(PACKAGE ${PROJECT_NAME}) FIND_PACKAGE(Doxygen MODULE) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7358d24..3234bd9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,20 +1,10 @@ # Retrieve googletest from github & compile add_subdirectory(gtest) -#Include directories -INCLUDE_DIRECTORIES(../src) -INCLUDE_DIRECTORIES(/data) -FIND_PACKAGE(Eigen3 3.3 REQUIRED CONFIG) -FIND_PACKAGE(PythonLibs QUIET) -INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${csm_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${falkolib_INCLUDE_DIRS}) - ############# USE THIS TEST AS AN EXAMPLE #################### # # # Create a specific test executable for gtest_example # # laser_scan_utils_add_gtest(gtest_example gtest_example.cpp)# -# target_link_libraries(gtest_example ${PROJECT_NAME}) # # # ############################################################## @@ -24,14 +14,8 @@ laser_scan_utils_add_gtest(gtest_example gtest_example.cpp) # gtest icp IF(csm_FOUND) laser_scan_utils_add_gtest(gtest_icp gtest_icp.cpp) - IF(python_FOUND) - target_link_libraries(gtest_icp ${PROJECT_NAME} ${PYTHON_LIBRARIES}) - ELSE(python_FOUND) - target_link_libraries(gtest_icp ${PROJECT_NAME}) - ENDIF(python_FOUND) ENDIF(csm_FOUND) IF(falkolib_FOUND) - laser_scan_utils_add_gtest(gtest_loop_closure_falko gtest_loop_closure_falko.cpp ${PROJECT_SOURCE_DIR}/test/data) - target_link_libraries(gtest_loop_closure_falko ${PROJECT_NAME}) + laser_scan_utils_add_gtest(gtest_loop_closure_falko gtest_loop_closure_falko.cpp) ENDIF(falkolib_FOUND) \ No newline at end of file diff --git a/test/gtest/CMakeLists.txt b/test/gtest/CMakeLists.txt index cbcb594..22f0f7c 100644 --- a/test/gtest/CMakeLists.txt +++ b/test/gtest/CMakeLists.txt @@ -63,18 +63,23 @@ else() GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG main) - FetchContent_MakeAvailable(googletest) - + #FetchContent_MakeAvailable(googletest) + FetchContent_GetProperties(googletest) + if(NOT googletest_POPULATED) + FetchContent_Populate(googletest) + add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + endif() function(laser_scan_utils_add_gtest target) add_executable(${target} ${ARGN}) if(${CMAKE_VERSION} VERSION_LESS "3.11.0") add_dependencies(${target} libgtest) - target_link_libraries(${target} libgtest ${PLUGIN_NAME}) + target_link_libraries(${target} PUBLIC libgtest ${PROJECT_NAME}) target_include_directories(${target} PUBLIC ${GTEST_INCLUDE_DIRS}) else() - target_link_libraries(${target} gtest_main ${PLUGIN_NAME}) + target_link_libraries(${target} PUBLIC gtest_main ${PROJECT_NAME}) endif() add_test(NAME ${target} COMMAND ${target}) endfunction() -- GitLab