diff --git a/.gitmodules b/.gitmodules index d45eff0..41f2cf0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,7 @@ url = git://github.com/roboptim/roboptim-shared-tests.git [submodule "cmake"] path = cmake - url = git://github.com/jrl-umi3218/jrl-cmakemodules.git + url = https://github.com/jrl-umi3218/jrl-cmakemodules [submodule ".travis"] path = .travis url = git://github.com/jrl-umi3218/jrl-travis.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d59719..5c087ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,16 +14,21 @@ # along with roboptim-core. If not, see . # Requires at least CMake 2.8 to configure the package. -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +CMAKE_MINIMUM_REQUIRED(VERSION 3.16) -INCLUDE(cmake/base.cmake) -INCLUDE(cmake/boost.cmake) -INCLUDE(cmake/cpack.cmake) SET(PROJECT_NAME roboptim-core-plugin-ipopt) SET(PROJECT_DESCRIPTION "RobOptim core IPOPT plug-in") SET(PROJECT_URL "https://github.com/roboptim/roboptim-core-plugin-ipopt") +set(PROJECT_USE_CMAKE_EXPORT TRUE) + +INCLUDE(cmake/base.cmake) +INCLUDE(cmake/boost.cmake) + +compute_project_args(PROJECT_ARGS LANGUAGES CXX C) +project(${PROJECT_NAME} ${PROJECT_ARGS}) +CHECK_MINIMAL_CXX_STANDARD(14) # Use MathJax for Doxygen formulae SET(DOXYGEN_USE_MATHJAX "YES") @@ -37,7 +42,6 @@ SET(HEADERS SET(PKG_CONFIG_ADDITIONAL_VARIABLES plugindir relplugindir ${PKG_CONFIG_ADDITIONAL_VARIABLES}) -SETUP_PROJECT() # If compiler support symbol visibility, enable it. INCLUDE(CheckCCompilerFlag) @@ -68,8 +72,9 @@ IF (NOT LTDL_H_FOUND) ENDIF() # Search for roboptim-core. -ADD_REQUIRED_DEPENDENCY("roboptim-core >= 3.2") - +ADD_REQUIRED_DEPENDENCY(roboptim-core) +ADD_PROJECT_DEPENDENCY(roboptim-core) +add_project_dependency(Eigen3) # Workaround Ipopt package issue. # It does not define HAVE_STDDEF even when it is needed, so we will do # it manually. @@ -143,6 +148,3 @@ ELSE() MESSAGE(WARNING "Tests should only be disabled for speficic cases. Do it at your own risk.") ENDIF() - -SETUP_PROJECT_FINALIZE() -SETUP_PROJECT_CPACK() diff --git a/cmake b/cmake index d869404..51a0ab3 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit d8694045bd7da779d2360c950404c6583174b40a +Subproject commit 51a0ab31bc9b12b3cc8b45f9a36327dcb3e3fe4e diff --git a/package.xml b/package.xml new file mode 100644 index 0000000..07a7943 --- /dev/null +++ b/package.xml @@ -0,0 +1,20 @@ + + + roboptim-core-plugin-ipopt + 3.2 + This plus provides the interface from roboptim to ipopt. + + Guilhem Saurel + + LGPL-3.0 + + ament_cmake + + rclcpp + roboptim-core + coinor-libipopt-dev + + rclcpp + roboptim-core + + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index decd64f..a5d887b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,10 +36,12 @@ MACRO(IPOPT_PLUGIN NAME) PROPERTIES VERSION 3.2.0 SOVERSION 3) ENDIF() INSTALL(TARGETS roboptim-core-plugin-${NAME} + EXPORT ${TARGETS_EXPORT_NAME} DESTINATION ${PLUGINDIR}) PKG_CONFIG_USE_DEPENDENCY(roboptim-core-plugin-${NAME} ipopt) - PKG_CONFIG_USE_COMPILE_DEPENDENCY(roboptim-core-plugin-${NAME} roboptim-core) - + #PKG_CONFIG_USE_COMPILE_DEPENDENCY(roboptim-core-plugin-${NAME} roboptim-core) + TARGET_LINK_LIBRARIES(roboptim-core-plugin-${NAME} roboptim-core::roboptim-core Eigen3::Eigen) + # Make sure all symbols are defined. # See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=592752 IF(CMAKE_SYSTEM_NAME MATCHES "Linux"