Skip to content

Commit 8b9c97a

Browse files
committed
CMake export
1 parent 25242f0 commit 8b9c97a

File tree

4 files changed

+33
-55
lines changed

4 files changed

+33
-55
lines changed

CMakeLists.txt

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2019 CNRS
2+
# Copyright (c) 2019-2020 CNRS
33
#
44
# This file is part of eiquadprog.
55
#
@@ -17,37 +17,45 @@
1717
# along with eiquadprog. If not, see <https://www.gnu.org/licenses/>.
1818
#
1919

20-
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
20+
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
2121

22-
SET(PROJECT_NAMESPACE stack-of-tasks)
22+
# Project properties
23+
SET(PROJECT_ORG stack-of-tasks)
2324
SET(PROJECT_NAME eiquadprog)
2425
SET(PROJECT_DESCRIPTION "C++ reimplementation of eiquadprog")
25-
SET(PROJECT_URL "https://gepgitlab.laas.fr/${PROJECT_NAMESPACE}/${PROJECT_NAME}")
26+
SET(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}")
27+
28+
# Project configuration
29+
SET(PROJECT_USE_CMAKE_EXPORT TRUE)
30+
SET(CXX_DISABLE_WERROR TRUE)
31+
SET(CMAKE_VERBOSE_MAKEFILE TRUE)
2632
SET(PROJECT_CUSTOM_HEADER_EXTENSION "hpp")
2733

34+
# JRL-cmakemodule setup
2835
INCLUDE(cmake/base.cmake)
2936
INCLUDE(cmake/boost.cmake)
30-
INCLUDE(cmake/eigen.cmake)
31-
INCLUDE(cmake/test.cmake)
32-
33-
# Disable -Werror on Unix for now.
34-
SET(CXX_DISABLE_WERROR True)
35-
SET(CMAKE_VERBOSE_MAKEFILE True)
3637

37-
CMAKE_POLICY(SET CMP0048 NEW)
38-
PROJECT(${PROJECT_NAME} VERSION ${PROJECT_VERSION_FULL} LANGUAGES CXX)
39-
40-
# ----------------------------------------------------
41-
# --- DEPENDENCIES -----------------------------------
42-
# ----------------------------------------------------
43-
ADD_REQUIRED_DEPENDENCY("eigen3 >= 3.2.92")
38+
# Project definition
39+
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
40+
PROJECT(${PROJECT_NAME} ${PROJECT_ARGS})
4441

42+
# Project dependencies
43+
ADD_PROJECT_DEPENDENCY(Eigen3 3.2.92 REQUIRED PKG_CONFIG_REQUIRES "eigen3 >= 3.2.92")
4544
SET(BOOST_COMPONENTS unit_test_framework)
4645
SEARCH_FOR_BOOST()
47-
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
4846

49-
# --- PACKAGING ----------------------------------------------------------------
50-
PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
47+
# Main Library
48+
SET(${PROJECT_NAME}_HEADERS
49+
include/${PROJECT_NAME}/eiquadprog.hpp
50+
include/${PROJECT_NAME}/eiquadprog-fast.hpp
51+
include/${PROJECT_NAME}/eiquadprog-fast.hxx
52+
include/${PROJECT_NAME}/eiquadprog-rt.hpp
53+
include/${PROJECT_NAME}/eiquadprog-rt.hxx
54+
)
55+
56+
ADD_LIBRARY(${PROJECT_NAME} INTERFACE)
57+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} SYSTEM INTERFACE ${EIGEN3_INCLUDE_DIRS})
58+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
59+
INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib)
5160

52-
ADD_SUBDIRECTORY(include/${PROJECT_NAME})
5361
ADD_SUBDIRECTORY(unittest)

include/eiquadprog/CMakeLists.txt

Lines changed: 0 additions & 29 deletions
This file was deleted.

unittest/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,13 @@
1818
ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN)
1919

2020
#test paths and names (without .cpp extension)
21-
SET (TESTS
21+
SET(TESTS
2222
eiquadprog-basic
2323
eiquadprog-fast
2424
eiquadprog-rt
2525
)
2626

2727
FOREACH(test ${TESTS})
28-
ADD_UNIT_TEST(${test} ${test})
29-
TARGET_LINK_LIBRARIES(${test} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
30-
PKG_CONFIG_USE_DEPENDENCY(${test} eigen3)
28+
ADD_UNIT_TEST(${test} ${test}.cpp)
29+
TARGET_LINK_LIBRARIES(${test} ${PROJECT_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
3130
ENDFOREACH(test ${TESTS})

0 commit comments

Comments
 (0)