-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
78 lines (62 loc) · 2.37 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
project(Stochy)
cmake_minimum_required(VERSION 3.10)
set (CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# generate compile_commands.json, useful for language servers
set(CMAKE_EXPORT_COMPILE_COMMANDS true)
# nlopt compatibility
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE)
# group output targets by type (executables and libraries)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# set RPATH relative to location of executable for install directories
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib")
add_subdirectory(src)
#-------------------------------------------------------------------------------
# THIRD-PARTY LIBS
#-------------------------------------------------------------------------------
# overwrite install() command with a dummy macro that is a nop.
# this prevents third-parties from polluting install directory
macro (install)
endmacro ()
# only third-party libs that support cmake should be added here
option (NLOPT_PYTHON "build python bindings" OFF)
option (NLOPT_OCTAVE "build octave bindings" OFF)
option (NLOPT_MATLAB "build matlab bindings" OFF)
option (NLOPT_GUILE "build guile bindings" OFF)
option (NLOPT_SWIG "use SWIG to build bindings" OFF)
add_subdirectory(lib/nlopt)
add_subdirectory(lib/cubature)
# restore install() command
macro (install)
_install(${ARGV})
endmacro(install)
#-------------------------------------------------------------------------------
# CPACK
#-------------------------------------------------------------------------------
set(CPACK_GENERATOR "ZIP")
set(CPACK_BINARY_7Z "OFF")
set(CPACK_BINARY_BUNDLE "OFF")
set(CPACK_BINARY_CYGWIN "OFF")
set(CPACK_BINARY_DEB "OFF")
set(CPACK_BINARY_DRAGNDROP "OFF")
set(CPACK_BINARY_FREEBSD "OFF")
set(CPACK_BINARY_IFW "OFF")
set(CPACK_BINARY_NSIS "OFF")
set(CPACK_BINARY_NUGET "OFF")
set(CPACK_BINARY_OSXX11 "OFF")
set(CPACK_BINARY_TBZ2 "OFF")
set(CPACK_BINARY_TGZ "OFF")
set(CPACK_BINARY_TXZ "OFF")
set(CPACK_BINARY_TZ "OFF")
set(CPACK_BINARY_ZIP "ON")
set(CPACK_PACKAGE_NAME "stochy")
set(CPACK_PACKAGE_FILE_NAME "stochy-1.0.0")
set(CPACK_PACKAGE_VENDOR "Nathalie Cauchi")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
include(CPack)