forked from vle-forge/vle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
138 lines (118 loc) · 4.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(VLE VERSION 2.1.0
LANGUAGES CXX)
# Use the GNU standard installation directories. See
# https://cmake.org/cmake/help/v3.0/module/GNUInstallDirs.html
include(GNUInstallDirs)
# Options
option(WITH_FULL_OPTIMIZATION "disable all logging facilities and active heavy optimization code to speed up simulation. [default: off]" OFF)
option(WITH_DEBUG "enable debug log message. It slows simulation [default: ON]" ON)
option(WITH_GVLE "use QT to build gvle [default: on]" ON)
option(WITH_DOXYGEN "build the documentation with doxygen [default: off]" OFF)
option(WITH_CVLE "build cvle [default: on]" ON)
# Usefull variables
set(VLE_MAJOR ${PROJECT_VERSION_MAJOR})
set(VLE_MINOR ${PROJECT_VERSION_MINOR})
set(VLE_PATCH ${PROJECT_VERSION_PATCH})
set(VLE_VERSION "${VLE_MAJOR}.${VLE_MINOR}.${VLE_PATCH}")
set(VLE_ABI "${VLE_MAJOR}.${VLE_MINOR}")
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
find_package(EXPAT REQUIRED)
if (NOT EXPAT_FOUND)
message(FATAL_ERROR "expat library is required. Install libexpat first (libexpat1-dev Debian/Ubuntu)")
endif ()
find_package(Boost REQUIRED)
if (NOT Boost_FOUND)
message(FATAL_ERROR "boost header only library is required. Install boost-dev first (libboost-dev Debian/Ubuntu)")
endif ()
find_package(EXPAT REQUIRED)
if (NOT EXPAT_FOUND)
message(FATAL_ERROR "expat library is required. Install libexpat first (libexpat1-dev Debian/Ubuntu)")
endif ()
find_package(Threads REQUIRED)
add_library(threads INTERFACE IMPORTED)
set_property(TARGET threads PROPERTY
INTERFACE_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
if (WITH_GVLE)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 COMPONENTS Widgets Xml Gui Help PrintSupport Svg REQUIRED)
if (NOT Qt5_FOUND)
message(FATAL_ERROR "Qt5 is required for gvle. Install Widgets Xml Gui Help PrintSupport Svg")
endif ()
endif ()
if (WITH_CVLE)
find_package(MPI REQUIRED)
if (NOT MPI_FOUND)
message(FATAL_ERROR "MPI is required for cvle. Install openmpi, mpich2")
endif ()
endif ()
# Tries to found asciidoctor to generate manpages of the share/doc directory.
find_program(ASCIIDOCTOR_EXECUTABLE NAMES asciidoctor)
if (ASCIIDOCTOR_EXECUTABLE)
message(STATUS "asciidoctor bin ${ASCIIDOCTOR_EXECUTABLE}")
else ()
message(STATUS "asciidoctor not found.")
endif ()
if (WIN32)
install(FILES README.md
DESTINATION ${CMAKE_INSTALL_DATADIR}/vle-${VLE_ABI}
RENAME Readme.txt)
install(FILES COPYING
DESTINATION ${CMAKE_INSTALL_DATADIR}/vle-${VLE_ABI}
RENAME CopyRight.txt)
else ()
install(FILES README.md
DESTINATION ${CMAKE_INSTALL_DATADIR}/vle-${VLE_ABI}/doc
RENAME README)
install(FILES COPYING
DESTINATION ${CMAKE_INSTALL_DATADIR}/vle-${VLE_ABI}/doc)
endif ()
install(FILES
cmake/FindBoost.cmake
cmake/FindEXPAT.cmake
cmake/FindGVLE.cmake
cmake/FindQwt.cmake
cmake/VleUtilsConfig.cmake
DESTINATION ${CMAKE_INSTALL_DATADIR}/vle-${VLE_ABI}/cmake)
# Gettext utilities
# find_package(Gettext)
# if (GETTEXT_FOUND)
# set(VLE_HAVE_NLS 1 CACHE INTERNAL "" FORCE)
# add_subdirectory(i18n)
# else (GETTEXT_FOUND)
# set(VLE_HAVE_NLS 0 CACHE INTERNAL "" FORCE)
# endif (GETTEXT_FOUND)
# Generating documentation with doxygen
if (WITH_DOXYGEN)
find_package(Doxygen)
if (DOXYGEN)
add_subdirectory(doxygen)
else (DOXYGEN)
message(STATUS "WARNING: Doxygen not found - No reference manual create")
endif (DOXYGEN)
endif (WITH_DOXYGEN)
# Build a generic make uninstall command
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
message(STATUS "- - - -")
message(STATUS "VLE ${VLE_VERSION} configured successfully")
message(STATUS "Using ${CMAKE_INSTALL_PREFIX} for installation")
message(STATUS "Build type ${CMAKE_BUILD_TYPE}")
message(STATUS "Full optimization.............: ${WITH_FULL_OPTIMIZATION}")
message(STATUS "Show debug message............. ${WITH_DEBUG}")
message(STATUS "Build with gvle...............: ${WITH_GVLE}")
message(STATUS "Build with cvle...............: ${WITH_CVLE}")
enable_testing()
add_subdirectory(src)
add_subdirectory(pkgs)
add_subdirectory(apps)
add_subdirectory(tests)
add_subdirectory(share)
include(CMakeCPack.cmake)