From 5ceb14fbfebb82b704b4c8629b9a4d0e300f3153 Mon Sep 17 00:00:00 2001 From: Arnaud TANGUY Date: Mon, 16 Mar 2026 23:23:45 +0100 Subject: [PATCH] build(v2): switch to jrl-cmakemodules v2 --- .gitmodules | 3 - CMakeLists.txt | 158 ++++++++++++++++++++++++++----- cmake | 1 - cmake/get-jrl-cmakemodules.cmake | 49 ++++++++++ src/CMakeLists.txt | 158 ------------------------------- 5 files changed, 185 insertions(+), 184 deletions(-) delete mode 100644 .gitmodules delete mode 160000 cmake create mode 100644 cmake/get-jrl-cmakemodules.cmake delete mode 100644 src/CMakeLists.txt diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 8d62d4a..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "cmake"] - path = cmake - url = git@github.com:jrl-umi3218/jrl-cmakemodules.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 5bb6e01..54ec9b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,30 +1,144 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.22) -set(CXX_DISABLE_WERROR 1) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_EXTENSIONS OFF) +include(cmake/get-jrl-cmakemodules.cmake) -set(PROJECT_NAME DCM_VRPTask) -set(PROJECT_VERSION 0.1.0) -set(PROJECT_DESCRIPTION "") -set(PROJECT_URL "") +project(DCM_VRPTask LANGUAGES CXX VERSION 0.1.0) -# jrl-cmakemodules minimal settings -set(PROJECT_USE_CMAKE_EXPORT TRUE) -set(CXX_DISABLE_WERROR 1) +# jrl_find_package(eigen-qld REQUIRED NO_MODULE) -include(cmake/base.cmake) +jrl_find_package(mc_rtc REQUIRED) +jrl_find_package(gram_savitzky_golay REQUIRED NO_MODULE) +jrl_find_package(eigen-quadprog REQUIRED) -project(${PROJECT_NAME} LANGUAGES CXX VERSION ${PROJECT_VERSION}) +# Tasks -add_project_dependency(RBDyn REQUIRED NO_MODULE) -add_project_dependency(eigen-qld REQUIRED NO_MODULE) -add_project_dependency(Boost REQUIRED COMPONENTS filesystem timer ${BOOST_STACKTRACE}) -add_project_dependency(gram_savitzky_golay REQUIRED NO_MODULE) +set(Tasks_SRC + src/Tasks/DCM_VRPTask.cpp +) -find_package(mc_rtc REQUIRED) -find_package(SpaceVecAlg REQUIRED) -find_package(Tasks REQUIRED) -find_package(eigen-quadprog REQUIRED) +add_library(Tasks_DCM_VRPTask SHARED ${Tasks_SRC}) -add_subdirectory(src) +target_link_libraries(Tasks_DCM_VRPTask + PUBLIC + SpaceVecAlg::SpaceVecAlg + eigen-quadprog::eigen-quadprog + Tasks::Tasks + ) + +target_include_directories(Tasks_DCM_VRPTask + PUBLIC "$" + "$") + +jrl_target_headers(Tasks_DCM_VRPTask PUBLIC HEADERS + include/Tasks/DCM_VRPTask.h + BASE_DIRS include) + +# TVM + +# set(TVM_SRC +# tvm/task_dynamics/ProportionalFF.cpp +# ) + +# set(TVM_HDR +# ../include/tvm/task_dynamics/ProportionalFF.h +# ) + +# add_library(TVM_DCM_VRPTask SHARED ${TVM_SRC} ${TVM_HDR}) + +# target_link_libraries(TVM_DCM_VRPTask +# PUBLIC +# SpaceVecAlg::SpaceVecAlg +# ${Boost_LIBRARIES} +# eigen-quadprog::eigen-quadprog +# TVM::TVM +# ) + +# set_target_properties(TVM_DCM_VRPTask PROPERTIES +# OUTPUT_NAME TVM_DCM_VRPTask +# VERSION TVM_DCM_VRPTask +# PUBLIC_HEADER "${TVM_DCM_VRPTask_HDR}" +# ) + +# target_include_directories(TVM_DCM_VRPTask PUBLIC "$" +# "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install(TARGETS TVM_DCM_VRPTask +# EXPORT "${TARGETS_EXPORT_NAME}" +# RUNTIME DESTINATION bin +# LIBRARY DESTINATION lib +# ARCHIVE DESTINATION lib) + +# mc_tvm + +set(mc_tvm_SRC + src/mc_tvm/DCM_VRPFunction.cpp + src/mc_tvm/VRPFunction.cpp + src/mc_tvm/DCMBoundingFunction.cpp + src/mc_tvm/DummyDynamicFunction.cpp +) + +add_library(mc_tvm_DCM_VRPTask SHARED ${mc_tvm_SRC}) + +target_link_libraries(mc_tvm_DCM_VRPTask + PUBLIC + mc_rtc::mc_rbdyn) + +target_include_directories(mc_tvm_DCM_VRPTask + PUBLIC + "$" + "$") + +jrl_target_headers(mc_tvm_DCM_VRPTask PUBLIC HEADERS + include/mc_tvm/DCM_VRPFunction.h + include/mc_tvm/VRPFunction.h + include/mc_tvm/DCMBoundingFunction.h + include/mc_tvm/DummyDynamicFunction.h + BASE_DIRS include) + +# mc_tasks + +set(mc_tasks_SRC + src/mc_tasks/DCM_VRPTask.cpp + src/DCM_VRPUtils/DCM_VRPtracker.cpp + src/DCM_VRPUtils/LinearProblems.cpp + src/mc_tasks/DCMTask.cpp + src/mc_tasks/VRPTask.cpp +) + +add_library(mc_tasks_DCM_VRPTask SHARED ${mc_tasks_SRC}) + +target_link_libraries(mc_tasks_DCM_VRPTask + PUBLIC + SpaceVecAlg::SpaceVecAlg + eigen-quadprog::eigen-quadprog + gram_savitzky_golay::gram_savitzky_golay + mc_rtc::mc_tasks + mc_rtc::mc_rbdyn + mc_tvm_DCM_VRPTask + Tasks_DCM_VRPTask) + # TVM_DCM_VRPTask) + + +target_include_directories(mc_tasks_DCM_VRPTask + PUBLIC + "$" + "$") + +jrl_target_headers(mc_tasks_DCM_VRPTask + PUBLIC HEADERS + include/mc_tasks/DCM_VRPTask.h + include/DCM_VRPUtils/DCM_VRPtracker.h + include/DCM_VRPUtils/LinearProblems.h + include/DCM_VRPUtils/GUIInterpolator.h + include/mc_tasks/DCMTask.h + include/mc_tasks/VRPTask.h + BASE_DIRS include) + +jrl_add_export_component(NAME DCM_VRPTask TARGETS Tasks_DCM_VRPTask mc_tvm_DCM_VRPTask mc_tasks_DCM_VRPTask) + + +#### Exporting targets and installing #### +jrl_export_package() + +jrl_print_dependencies_summary() +jrl_print_options_summary() diff --git a/cmake b/cmake deleted file mode 160000 index b3c2af1..0000000 --- a/cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b3c2af1b68686dc9d5f459fb617647e37a15a76d diff --git a/cmake/get-jrl-cmakemodules.cmake b/cmake/get-jrl-cmakemodules.cmake new file mode 100644 index 0000000..c23f6b7 --- /dev/null +++ b/cmake/get-jrl-cmakemodules.cmake @@ -0,0 +1,49 @@ +# Get jrl-cmakemodules package + +# Option 1: pass -DJRL_CMAKEMODULES_SOURCE_DIR=... to cmake command line +if(JRL_CMAKEMODULES_SOURCE_DIR) + message( + DEBUG + "JRL_CMAKEMODULES_SOURCE_DIR variable set, adding jrl-cmakemodules from source directory: ${JRL_CMAKEMODULES_SOURCE_DIR}" + ) + add_subdirectory(${JRL_CMAKEMODULES_SOURCE_DIR} jrl-cmakemodules) + return() +endif() + +# Option 2: use JRL_CMAKEMODULES_SOURCE_DIR environment variable (pixi might unset it, prefer option 1) +if(ENV{JRL_CMAKEMODULES_SOURCE_DIR}) + message( + DEBUG + "JRL_CMAKEMODULES_SOURCE_DIR environement variable set, adding jrl-cmakemodules from source directory: ${JRL_CMAKEMODULES_SOURCE_DIR}" + ) + add_subdirectory(${JRL_CMAKEMODULES_SOURCE_DIR} jrl-cmakemodules) + return() +endif() + +# Try to look for the installed package +message(DEBUG "Looking for jrl-cmakemodules using find_package().") +find_package(jrl-cmakemodules 1.2.0 CONFIG QUIET) + +# If we have the package, we are done. +if(jrl-cmakemodules_FOUND) + message(DEBUG "Found jrl-cmakemodules package via find_package().") + return() +else() + message(DEBUG "jrl-cmakemodules package not found using find_package().") +endif() + +# Fallback to FetchContent if not found +set(JRL_GIT_REPOSITORY "https://github.com/ahoarau/jrl-cmakemodules.git") +set(JRL_GIT_TAG "jrl-next") + +message( + DEBUG + "Fetching jrl-cmakemodules using FetchContent: + GIT_REPOSITORY: ${JRL_GIT_REPOSITORY} + GIT_TAG : ${JRL_GIT_TAG} +" +) + +include(FetchContent) +FetchContent_Declare(jrl-cmakemodules GIT_REPOSITORY ${JRL_GIT_REPOSITORY} GIT_TAG ${JRL_GIT_TAG}) +FetchContent_MakeAvailable(jrl-cmakemodules) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 4628e38..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,158 +0,0 @@ -# Tasks - -set(Tasks_SRC - Tasks/DCM_VRPTask.cpp -) - -set(Tasks_HDR - ../include/Tasks/DCM_VRPTask.h -) - -add_library(Tasks_${PROJECT_NAME} SHARED ${Tasks_SRC} ${Tasks_HDR}) - -target_link_libraries(Tasks_${PROJECT_NAME} - PUBLIC - SpaceVecAlg::SpaceVecAlg - ${Boost_LIBRARIES} - eigen-quadprog::eigen-quadprog - Tasks::Tasks - ) - -set_target_properties(Tasks_${PROJECT_NAME} PROPERTIES - OUTPUT_NAME Tasks_${PROJECT_NAME} - VERSION Tasks_${PROJECT_NAME} - PUBLIC_HEADER "${Tasks_${PROJECT_NAME}_HDR}" - ) - -target_include_directories(Tasks_${PROJECT_NAME} PUBLIC "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}>") - -install(TARGETS Tasks_${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - -# TVM - -# set(TVM_SRC -# tvm/task_dynamics/ProportionalFF.cpp -# ) - -# set(TVM_HDR -# ../include/tvm/task_dynamics/ProportionalFF.h -# ) - -# add_library(TVM_${PROJECT_NAME} SHARED ${TVM_SRC} ${TVM_HDR}) - -# target_link_libraries(TVM_${PROJECT_NAME} -# PUBLIC -# SpaceVecAlg::SpaceVecAlg -# ${Boost_LIBRARIES} -# eigen-quadprog::eigen-quadprog -# TVM::TVM -# ) - -# set_target_properties(TVM_${PROJECT_NAME} PROPERTIES -# OUTPUT_NAME TVM_${PROJECT_NAME} -# VERSION TVM_${PROJECT_NAME} -# PUBLIC_HEADER "${TVM_${PROJECT_NAME}_HDR}" -# ) - -# target_include_directories(TVM_${PROJECT_NAME} PUBLIC "$" -# "$/${CMAKE_INSTALL_INCLUDEDIR}>") - -# install(TARGETS TVM_${PROJECT_NAME} -# EXPORT "${TARGETS_EXPORT_NAME}" -# RUNTIME DESTINATION bin -# LIBRARY DESTINATION lib -# ARCHIVE DESTINATION lib) - -# mc_tvm - -set(mc_tvm_SRC - mc_tvm/DCM_VRPFunction.cpp - mc_tvm/VRPFunction.cpp - mc_tvm/DCMBoundingFunction.cpp - mc_tvm/DummyDynamicFunction.cpp -) - -set(mc_tvm_HDR - ../include/mc_tvm/DCM_VRPFunction.h - ../include/mc_tvm/VRPFunction.h - ../include/mc_tvm/DCMBoundingFunction.h - ../include/mc_tvm/DummyDynamicFunction.h -) - -add_library(mc_tvm_${PROJECT_NAME} SHARED ${mc_tvm_SRC} ${mc_tvm_HDR}) - -target_link_libraries(mc_tvm_${PROJECT_NAME} - PUBLIC - mc_rtc::mc_rbdyn) - -set_target_properties(mc_tvm_${PROJECT_NAME} PROPERTIES - OUTPUT_NAME mc_tvm_${PROJECT_NAME} - VERSION mc_tvm_${PROJECT_NAME} - PUBLIC_HEADER "${mc_tvm_${PROJECT_NAME}_HDR}") - -target_include_directories(mc_tvm_${PROJECT_NAME} PUBLIC "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}>") - -install(TARGETS mc_tvm_${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - - - -# mc_tasks - -set(mc_tasks_SRC - mc_tasks/DCM_VRPTask.cpp - DCM_VRPUtils/DCM_VRPtracker.cpp - DCM_VRPUtils/LinearProblems.cpp - mc_tasks/DCMTask.cpp - mc_tasks/VRPTask.cpp -) - -set(mc_tasks_HDR - ../include/mc_tasks/DCM_VRPTask.h - ../include/DCM_VRPUtils/DCM_VRPtracker.h - ../include/DCM_VRPUtils/LinearProblems.h - ../include/DCM_VRPUtils/GUIInterpolator.h - ../include/mc_tasks/DCMTask.h - ../include/mc_tasks/VRPTask.h -) - -add_library(mc_tasks_${PROJECT_NAME} SHARED ${mc_tasks_SRC} ${mc_tasks_HDR}) - -target_link_libraries(mc_tasks_${PROJECT_NAME} - PUBLIC - SpaceVecAlg::SpaceVecAlg - eigen-quadprog::eigen-quadprog - gram_savitzky_golay::gram_savitzky_golay) -target_link_libraries(mc_tasks_${PROJECT_NAME} - PUBLIC - mc_rtc::mc_tasks - mc_rtc::mc_rbdyn - mc_tvm_${PROJECT_NAME} - Tasks_${PROJECT_NAME}) - # TVM_${PROJECT_NAME}) - - -set_target_properties(mc_tasks_${PROJECT_NAME} PROPERTIES - OUTPUT_NAME mc_tasks_${PROJECT_NAME} - VERSION mc_tasks_${PROJECT_NAME} - PUBLIC_HEADER "${mc_tasks_${PROJECT_NAME}_HDR}") - -target_include_directories(mc_tasks_${PROJECT_NAME} PUBLIC "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}>") - -install(TARGETS mc_tasks_${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - -install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include)