1
- cmake_minimum_required (VERSION 3.9 )
1
+ cmake_minimum_required (VERSION 3.0.2 )
2
+ project (limbo VERSION 2.1 DESCRIPTION "limbo LIbrary for Model-Based Optimization" )
2
3
3
- project (limbo )
4
+ # Cpp standard
5
+ set (CMAKE_CXX_STANDARD 14 )
4
6
5
- # Default to C99
6
- if (NOT CMAKE_C_STANDARD )
7
- set (CMAKE_C_STANDARD 99 )
8
- endif ()
7
+ # # Compiler options
8
+ # add_compile_options(-Wall -Wextra -Wpedantic)
9
9
10
- # Default to C++14
11
- if (NOT CMAKE_CXX_STANDARD )
12
- set (CMAKE_CXX_STANDARD 14 )
13
- endif ()
10
+ # # Dependencies
11
+ # # Eigen
12
+ # find_package(Eigen3 REQUIRED)
14
13
15
- if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
16
- add_compile_options (-Wall -Wextra -Wpedantic )
17
- endif ()
14
+ # # Boost
15
+ # set(Boost_USE_STATIC_LIBS OFF)
16
+ # set(Boost_USE_MULTITHREADED ON)
17
+ # set(Boost_USE_STATIC_RUNTIME OFF)
18
+ # find_package(Boost 1.45.0 REQUIRED COMPONENTS system filesystem thread unit_test_framework)
19
+ # if(Boost_FOUND)
20
+ # include_directories(${Boost_INCLUDE_DIRS})
21
+ # endif()
18
22
19
- file (GLOB headers src/limbo/*.hpp )
23
+ # # TBB
24
+ # find_package(TBB REQUIRED)
20
25
21
- find_package (Eigen3 REQUIRED )
26
+ # # # NLOpt
27
+ # find_package(NLopt REQUIRED)
28
+ # if(NLopt_FOUND)
29
+ # include_directories(${NLOPT_INCLUDE_DIRS})
30
+ # add_definitions(-DUSE_NLOPT)
31
+ # endif()
22
32
23
- set (Boost_USE_STATIC_LIBS OFF )
24
- set (Boost_USE_MULTITHREADED ON )
25
- set (Boost_USE_STATIC_RUNTIME OFF )
26
- find_package (Boost 1.45.0 REQUIRED COMPONENTS system filesystem thread unit_test_framework )
33
+ # # Add library
34
+ # add_library(limbo INTERFACE IMPORTED GLOBAL) # Interface because it's header only
27
35
28
- if (Boost_FOUND )
29
- include_directories (${Boost_INCLUDE_DIRS} )
30
- endif ()
36
+ include (ExternalProject )
37
+ ExternalProject_Add (limbo_src
38
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
39
+ CONFIGURE_COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ./waf configure
40
+ BUILD_COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ./waf build
41
+ INSTALL_COMMAND ""
42
+ )
43
+
44
+ # Install
45
+ include (GNUInstallDirs )
46
+ # Install binaries
47
+ install (
48
+ FILES ${CMAKE_CURRENT_SOURCE_DIR} /build/src/liblimbo.a
49
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
50
+ )
51
+ # Install headers
52
+ install (DIRECTORY
53
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/limbo
54
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/external
55
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/hv
56
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/ehvi
57
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
58
+ )
31
59
32
- # add the binary tree to the search path for include files
33
- # so that we will find TutoriConfig.h
34
- include_directories (src/ )
60
+ # Export
61
+ include (CMakePackageConfigHelpers )
62
+ set (INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
63
+ set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} )
35
64
36
- add_library (${PROJECT_NAME} INTERFACE )
65
+ configure_package_config_file (cmake/limboConfig.cmake.in
66
+ ${CMAKE_CURRENT_BINARY_DIR} /limboConfig.cmake
67
+ INSTALL_DESTINATION ${LIB_INSTALL_DIR} /limbo/cmake
68
+ PATH_VARS INCLUDE_INSTALL_DIR LIB_INSTALL_DIR )
37
69
38
- install (DIRECTORY src/
39
- DESTINATION include )
70
+ write_basic_package_version_file (
71
+ ${CMAKE_CURRENT_BINARY_DIR} /limboConfigVersion.cmake
72
+ VERSION 0.0.0
73
+ COMPATIBILITY SameMajorVersion )
40
74
41
- install (TARGETS ${PROJECT_NAME}
42
- ARCHIVE DESTINATION lib
43
- LIBRARY DESTINATION lib
44
- RUNTIME DESTINATION bin
45
- )
75
+ install (FILES ${CMAKE_CURRENT_BINARY_DIR} /limboConfig.cmake
76
+ ${CMAKE_CURRENT_BINARY_DIR} /limboConfigVersion.cmake
77
+ DESTINATION ${LIB_INSTALL_DIR} /limbo/cmake )
0 commit comments