forked from bareos/bareos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
139 lines (127 loc) · 3.41 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
139
# BAREOS® - Backup Archiving REcovery Open Sourced
#
# Copyright (C) 2019-2022 Bareos GmbH & Co. KG
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of version three of the GNU Affero General Public
# License as published by the Free Software Foundation and included
# in the file LICENSE.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
message("Entering ${CMAKE_CURRENT_SOURCE_DIR}")
cmake_minimum_required(VERSION 3.17)
cmake_policy(VERSION 3.17...3.19)
project(bareos NONE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/core/cmake")
add_custom_target(
uninstall "${CMAKE_COMMAND}" -P
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/uninstall.cmake"
)
set(default_build_type "Debug")
include(CMakePrintHelpers)
find_package(Git)
include(BareosVersionFromGit)
include(BareosExtractVersionInfo)
include(BareosGetDistInfo)
set(BUILDNAME
"${BAREOS_FULL_VERSION}"
CACHE STRING "site name variable for CDash"
)
set(SITE
"${CMAKE_SYSTEM_NAME}-${DISTVER}-${CMAKE_HOST_SYSTEM_PROCESSOR}"
CACHE STRING "build name variable for CDash"
)
# enable "make test"
enable_testing()
set(CMAKE_CTEST_COMMAND ctest -V)
include(CTest)
option(BUILD_UNIVERSAL_CLIENT
"Override build-options to produce a limited, but universal client" OFF
)
if(BUILD_UNIVERSAL_CLIENT)
if(CMAKE_VERSION VERSION_LESS 3.18.0)
message(
FATAL_ERROR "Building the universal client requires at least CMake 3.18"
)
endif()
set(ENABLE_PYTHON
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_GFAPI_FD
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_JANSSON
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_LZO
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_CAPABILITY
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_BCONSOLE
OFF
CACHE BOOL "" FORCE
)
set(ENABLE_STATIC_RUNTIME_LIBS
ON
CACHE BOOL "" FORCE
)
set(client-only ON)
endif()
option(ENABLE_WEBUI "Build with WEBUI" ON)
if(docs-build-json)
# check for wrong combinations of build flags
if(docs-only)
message(
FATAL_ERROR
"\n\"docs-build-json\" needs bareos-executables and cannot be combined with \"docs-only\""
)
endif()
if(NOT traymonitor)
message(
FATAL_ERROR
"\n\"docs-build-json\" needs the traymonitor executable: add \"-Dtraymonitor=yes\""
)
endif()
endif()
if(docs-only)
set(BUILD_BAREOS_BINARIES no)
else()
set(BUILD_BAREOS_BINARIES yes)
endif()
if(NOT hostname)
site_name(hostname)
endif()
if(BUILD_BAREOS_BINARIES)
add_subdirectory(third-party EXCLUDE_FROM_ALL)
add_subdirectory(core)
if(ENABLE_WEBUI)
add_subdirectory(webui)
endif()
if(NOT client-only AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
add_subdirectory(systemtests)
endif()
add_subdirectory(contrib)
endif()
if(docs
OR docs-only
OR docs-build-json
)
add_subdirectory(docs/manuals)
endif()
set(SITE ${BAREOS_PLATFORM}-${DISTVER})