CMakeLists.txt 16.3 KB
Newer Older
1
2
3
# CMake version check. 3.14 mimimum available from EPEL.
# 3.15 is required on Windows, but is not available in EPEL yet.
cmake_minimum_required(VERSION 3.14)
4
5

# Define the project name.
6
project(Mantid)
7

8
# Policy settings
9
10
11
if(POLICY CMP0022)
  cmake_policy(SET CMP0022 NEW)
endif()
12

13
14
15
if(POLICY CMP0072)
  cmake_policy(SET CMP0072 OLD)
endif()
16

17
18
19
if(POLICY CMP0074)
  cmake_policy(SET CMP0074 NEW)
endif()
20

21
22
23
24
# System package target is important for the windows builds as it allows us to
# package only the dlls and exes and exclude libs. Defaults to empty for other
# platforms.
set(SYSTEM_PACKAGE_TARGET "")
25

26
# Add the path to our custom 'find' modules
27
28
29
30
31
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/buildconfig/CMake")
# Send libraries to common place, reference in several places so must be at top
# level
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
32

33
option(ENABLE_MANTIDPLOT "Enable Qt4-based gui & components" OFF)
34
option(ENABLE_WORKBENCH "Enable Qt5-based gui & components" ON)
35

36
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR}" "Mantid" "ALL" "/")
37

38
39
40
41
# Ensure that if we are running any sanitizers the compiler options are
# known in sub targets
include(Sanitizers)

42
# Quick exit if we only want data targets
43
44
if(DATA_TARGETS_ONLY)
  include(SetupDataTargets)
45
  # System test config files
46
  add_subdirectory(Testing/SystemTests/scripts)
47
48
49
  return()
endif()

50
# Packaging configuration
51
52
set(CPACK_PACKAGE_SUFFIX "unstable"
    CACHE STRING "suffix used to determine the deployment type")
53
54
55
56
57
58
set_property(CACHE CPACK_PACKAGE_SUFFIX
             PROPERTY STRINGS
                      nightly
                      unstable
                      "")
# empty string and release are treated as the same thing
59
60
61
62
63
64
65
if(CPACK_PACKAGE_SUFFIX)
  # Camelcase version of suffix for Windows/Mac
  string(TOUPPER ${CPACK_PACKAGE_SUFFIX} CPACK_PACKAGE_SUFFIX_CAMELCASE)
  string(SUBSTRING ${CPACK_PACKAGE_SUFFIX_CAMELCASE} 0 1 CPACK_PACKAGE_SUFFIX_CAMELCASE)
  string(SUBSTRING ${CPACK_PACKAGE_SUFFIX} 1 -1 _tmp_suffix_remainder)
  string(CONCAT CPACK_PACKAGE_SUFFIX_CAMELCASE ${CPACK_PACKAGE_SUFFIX_CAMELCASE} ${_tmp_suffix_remainder})
endif()
66

67
68
# Set package name here
set(CPACK_PACKAGE_NAME "mantid${CPACK_PACKAGE_SUFFIX}")
69

70
# Bootstrap any dependencies
71
include(Bootstrap)
72

73
# Configure Eigen early
74
include(Eigen)
75

Hahn, Steven's avatar
Hahn, Steven committed
76
77
include(Span)

78
79
# Set ParaView information since later items depend on it
# VATES flag. Requires ParaView
80
option(MAKE_VATES "Switch for compiling the Vates project" Off)
Peterson, Peter's avatar
Peterson, Peter committed
81
82

if(ENABLE_MANTIDPLOT OR MAKE_VATES)
83
  message( STATUS "ParaView is no longer used")
84
85
endif()

Martyn Gigg's avatar
Martyn Gigg committed
86
87
88
if( MSVC )
  include ( MSVCSetup )
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
89
90
  include(DarwinSetup)
endif()
91

92
# Cross-platform setup
93
include(CommonSetup)
94

95
# Find OpenGL
Dan Nixon's avatar
Dan Nixon committed
96
97
98
99
100
101
if(ENABLE_OPENGL)
  find_package(OpenGL REQUIRED)
  # FindOpenGL does not (as of CMake 2.6.4) take notice of the REQUIRED
  if(NOT OPENGL_FOUND)
    message(FATAL_ERROR "OpenGL was not found.")
  endif()
102
endif()
103

104
105
find_package(TBB REQUIRED)

Hahn, Steven's avatar
Hahn, Steven committed
106
107
108
# We probably don't want this to run on every build.
option(COVERALLS "Generate coveralls data" OFF)

109
110
111
if(COVERALLS)
  include(Coveralls)
  coveralls_turn_on_coverage()
Hahn, Steven's avatar
Hahn, Steven committed
112
113
endif()

114
# Qt/Qwt/PyQt/sip
115
116
117
118
if(ENABLE_MANTIDPLOT)
  set(QT_USE_IMPORTED_TARGETS ON)
  find_package(Qt4
               COMPONENTS QtCore
Martyn Gigg's avatar
Martyn Gigg committed
119
                          QtDesigner
120
121
                          QtGui
                          QtOpenGL
Martyn Gigg's avatar
Martyn Gigg committed
122
                          QtScript
123
                          QtSvg
Martyn Gigg's avatar
Martyn Gigg committed
124
                          QtXml
125
               REQUIRED)
Martyn Gigg's avatar
Martyn Gigg committed
126
  find_package(QScintillaQt4 REQUIRED)
127
128
129
130
131
  find_package(Qwt5 REQUIRED)
  if(QWT5_VERSION VERSION_LESS 5.0
     OR QWT5_VERSION VERSION_EQUAL 6.0
     OR QWT5_VERSION VERSION_GREATER 6.0)
    message(FATAL_ERROR "Qwt version 5 is required, found: ${QWT5_VERSION}")
132
  endif()
133

Martyn Gigg's avatar
Martyn Gigg committed
134
  if(UNIX_DIST MATCHES "RedHatEnterprise" AND UNIX_RELEASE MATCHES "7\..*")
135
136
137
138
139
140
    set(USE_PRIVATE_SIPPYQT4 ON)
    include(ExternalSipPyQt4)
  else()
    find_package(PyQt4 REQUIRED)
    find_package(SIP REQUIRED)
  endif()
141
  separate_arguments(PYQT4_SIP_FLAGS)
142
endif()
143

144
145
146
147
148
149
150
151
152
if(ENABLE_WORKBENCH)
  find_package(Qt5
               COMPONENTS Core
                          Gui
                          Widgets
                          OpenGL
               REQUIRED)
  if(Qt5_FOUND)
    message(STATUS "Found Qt ${Qt5_VERSION}: ${Qt5_DIR}")
153
  endif()
154
  find_package(QScintillaQt5 REQUIRED)
155
156
157
  find_package(PyQt5 REQUIRED)
  find_package(SIP REQUIRED)
  separate_arguments(PYQT5_SIP_FLAGS)
158
159
endif()

160
# Now add in all the components
Alice Russell's avatar
Alice Russell committed
161

162
# Flag that this is a full build, i.e not framework only
163
164
165
166
set(FULL_PACKAGE_BUILD 1)
# Set the path to the built docs directory here so that it can be used in the
# Kernel project for populating the properties file
set(DOCS_BUILDDIR ${CMAKE_BINARY_DIR}/docs)
167

168
# Framework Build options
169
170
option(CXXTEST_ADD_PERFORMANCE
       "Switch to add Performance tests to the list of tests run by ctest?")
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187

add_subdirectory(Framework)

include_directories(Framework/Kernel/inc)
include_directories(Framework/HistogramData/inc)
include_directories(Framework/Indexing/inc)
include_directories(Framework/Parallel/inc)
include_directories(Framework/Beamline/inc)
include_directories(Framework/Geometry/inc)
include_directories(Framework/API/inc)
include_directories(Framework/Types/inc)
include_directories(Framework/NexusGeometry/inc)

set(CORE_MANTIDLIBS Kernel HistogramData Indexing Beamline Geometry API Types)

if(UNIX)
  # Experimental feature. Unix only at this point.
188
189
  option(UNITY_BUILD
         "Switch for utilising unity builds. Faster builds for selected components.")
190
endif(UNIX)
191

192
193
194
if(MSVC)
  add_definitions(-DQWT_DLL)
endif()
195

196
197
add_custom_target(AllTests)
add_dependencies(AllTests FrameworkTests)
198

199
200
201
if(ENABLE_MANTIDPLOT OR ENABLE_WORKBENCH)
  add_custom_target(GUITests)
  add_dependencies(check GUITests)
202
  # Collect all tests together
203
204
  add_dependencies(AllTests GUITests)
  add_subdirectory(qt)
205
endif()
206

207
if(ENABLE_MANTIDPLOT)
208
  message( FATAL_ERROR "MantidPlot has been removed from the source code")
209
endif()
210

211
add_subdirectory(scripts)
212

213
# Docs requirements
214
215
option(ENABLE_DOCS "Enable Building user and developer documentation" ON)
if (ENABLE_DOCS)
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
  find_package(Sphinx REQUIRED)
  # run python to see if the theme is installed
  execute_process(COMMAND ${Python_EXECUTABLE} -c
                          "import sphinx_bootstrap_theme"
                  OUTPUT_VARIABLE SPHINX_BOOTSTRAP_THEME_OUT
                  ERROR_VARIABLE SPHINX_BOOTSTRAP_THEME_ERR
                  OUTPUT_STRIP_TRAILING_WHITESPACE
                  ERROR_STRIP_TRAILING_WHITESPACE)
  if(SPHINX_BOOTSTRAP_THEME_ERR)
    message(ERROR " Did not find sphinx_bootstrap_theme")
    message(STATUS "${Python_EXECUTABLE} -c \"import sphinx_bootstrap_theme\"")
    message(STATUS "${SPHINX_BOOTSTRAP_THEME_ERR}")
    message(
      FATAL_ERROR
        " Install instructions at https://pypi.python.org/pypi/sphinx-bootstrap-theme/"
      )
232
  endif()
233
234
235

  add_subdirectory(dev-docs)
  add_subdirectory(docs)
236
endif()
237

238
# System test data target
239
add_subdirectory(Testing/SystemTests/scripts)
240

241
if(COVERALLS)
242
  get_property(ALL_SRCS GLOBAL PROPERTY COVERAGE_SRCS)
243
244
245
246
247
248
  set(SRCS_FILE "")
  foreach(SRC ${ALL_SRCS})
    set(SRCS_FILE "${SRCS_FILE}\n${SRC}")
  endforeach()
  # remove initial \n
  string(SUBSTRING ${SRCS_FILE}
249
250
251
252
                   1
                   -1
                   SRCS_FILE)
  set(SRCS_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/sources.txt")
253
  file(WRITE ${SRCS_FILENAME} ${SRCS_FILE})
254
  coveralls_setup(${SRCS_FILENAME} OFF "${CMAKE_SOURCE_DIR}/buildconfig/CMake")
255
256
endif()

257
# Installation settings
258

259
# N.B. INBUNDLE variable is empty except on Mac (set in DarwinSetup.cmake)
260
261
install(DIRECTORY installers/colormaps/ DESTINATION ${INBUNDLE}colormaps)

262
263
264
265
266
267
268
269
270
271
# Install the files (.desktop and icon) to create a menu items
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
  function(uppercase_first_letter output_var input)
  string(LENGTH ${input} _inputlen)
  string(TOUPPER ${input} _allupper)
  string(SUBSTRING ${_allupper} 0 1 _first)
  string(SUBSTRING ${input} 1 ${_inputlen} _rest)
  set(${output_var} ${_first}${_rest} PARENT_SCOPE)
  endfunction()

272
  function(install_desktop_files filename app_name exec_cmd icon_file icon_install_file)
273
274
    set(DESKTOP_NAME ${app_name})
    set(DESKTOP_EXEC_CMD ${exec_cmd})
275
    get_filename_component(DESKTOP_ICON ${icon_install_file} NAME_WE)
276
277
278
279
280
281
282
283
284
    set(_output_file ${CMAKE_CURRENT_BINARY_DIR}/${filename}.install)
    configure_file(
      ${CMAKE_CURRENT_SOURCE_DIR}/installers/LinuxInstaller/launcher-template.desktop.in
      ${_output_file} @ONLY)
    install(FILES ${_output_file}
            DESTINATION /usr/share/applications
            RENAME ${filename})
    install(FILES ${icon_file}
            DESTINATION /usr/share/pixmaps
285
            RENAME ${icon_install_file})
286
287
  endfunction()

288
289
290
291
292
293
294
295
  set(_icon_suffix)
  if(CPACK_PACKAGE_SUFFIX)
    if (${CPACK_PACKAGE_SUFFIX} STREQUAL "nightly" OR
        ${CPACK_PACKAGE_SUFFIX} STREQUAL "unstable")
      set(_icon_suffix ${CPACK_PACKAGE_SUFFIX})
    endif()
  endif()

296
297
298
299
300
301
302
  set( IMAGES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/images )
  set(_app_name_suffix)
  if(CPACK_PACKAGE_SUFFIX)
    uppercase_first_letter(_app_name_suffix ${CPACK_PACKAGE_SUFFIX})
  endif()
  if(ENABLE_MANTIDPLOT)
    set(_icon_filename ${IMAGES_DIR}/mantidplot)
303
304
    if(_icon_suffix)
      set(_icon_filename ${_icon_filename}${_icon_suffix})
305
306
    endif()
    install_desktop_files(mantidplot${CPACK_PACKAGE_SUFFIX}.desktop
307
                          "Mantid Plot ${_app_name_suffix}"
308
                          ${CMAKE_INSTALL_PREFIX}/bin/MantidPlot
309
310
                          ${_icon_filename}.png
                          mantidplot${CPACK_PACKAGE_SUFFIX}.png )
311
  endif()
312
313
314

  if(ENABLE_WORKBENCH)
    set(_icon_filename ${IMAGES_DIR}/mantid_workbench)
315
316
    if(_icon_suffix)
      set(_icon_filename ${_icon_filename}${_icon_suffix})
317
318
    endif()
    install_desktop_files(mantidworkbench${CPACK_PACKAGE_SUFFIX}.desktop
319
                          "Mantid Workbench ${_app_name_suffix}"
320
                          ${CMAKE_INSTALL_PREFIX}/bin/mantidworkbench
321
322
                          ${_icon_filename}.png
                          mantid_workbench${CPACK_PACKAGE_SUFFIX}.png)
323
  endif()
324
325
endif()

326
327
328
# THIS MUST BE THE LAST SUB_DIRECTORY ADDED. See
# Framework/PostInstall/CMakeLists for an explanation
add_subdirectory(Framework/PostInstall)
329
330

# Conda
331
option(ENABLE_CONDA "Switch to enable conda package generation")
332
333
334
if(ENABLE_CONDA)
  include(conda)
endif(ENABLE_CONDA)
335

336
337
338
# CPack settings

# Keep this in a defaulted-to-off option
339
option(ENABLE_CPACK "Switch to enable CPack package generation")
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
if(ENABLE_CPACK)
  include(CPackCommon)

  # Mac package settings
  set(CPACK_RESOURCE_FILE_LICENSE
      ${CMAKE_SOURCE_DIR}/installers/WinInstaller/License.txt)

  if(CMAKE_HOST_WIN32)
    include(WindowsNSIS)
  elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
    include(CPackLinuxSetup)

    # rhel requirements - only used if package requested is rpm
    set(
      CPACK_RPM_PACKAGE_REQUIRES
355
356
357
358
359
360
361
      "boost169-date-time,"
      "boost169-regex,"
      "boost169-serialization,"
      "boost169-filesystem,"
      "boost169-system,"
      "nexus >= 4.3.1,gsl,glibc,muParser,tbb,librdkafka,"
      "OCE-draw,OCE-foundation,OCE-modeling,OCE-ocaf,OCE-visualization,"
362
363
364
365
      "poco-crypto,poco-data,poco-mysql,poco-sqlite,poco-odbc,poco-util,poco-xml,poco-zip,poco-net,poco-netssl,poco-foundation,"
      "hdf,hdf5,jsoncpp >= 0.7.0")
    if(ENABLE_MANTIDPLOT)
      set(CPACK_RPM_PACKAGE_REQUIRES
366
          "${CPACK_RPM_PACKAGE_REQUIRES},qt4 >= 4.2,qscintilla,qwt5-qt4,qwtplot3d-qt4")
367
368
369
    endif()
    if(ENABLE_WORKBENCH)
      set(CPACK_RPM_PACKAGE_REQUIRES
370
          "${CPACK_RPM_PACKAGE_REQUIRES},qt5-qtbase,qscintilla-qt5")
371
    endif()
Martyn Gigg's avatar
Martyn Gigg committed
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
    # python requirements
    set(
      CPACK_RPM_PACKAGE_REQUIRES
      "${CPACK_RPM_PACKAGE_REQUIRES},"
      "boost169-python3,"
      "python36-numpy,python36-scipy,python36-h5py,python36-PyCifRW,"
      "python36-six,python36-PyYAML,python36-requests,python36-toml,"
      "python36-ipython,python36-ipython-notebook"
    )
    if(ENABLE_MANTIDPLOT)
      set(CPACK_RPM_PACKAGE_REQUIRES
          "${CPACK_RPM_PACKAGE_REQUIRES},python36-QtPy,"
          "python36-matplotlib-qt4,python36-ipython-gui")
    endif()
    if(ENABLE_WORKBENCH)
      set(CPACK_RPM_PACKAGE_REQUIRES
          "${CPACK_RPM_PACKAGE_REQUIRES},python36-qt5,python36-QtPy,"
          "python36-matplotlib-qt5,python36-psutil,python36-ipython-gui")
390
    endif()
391

392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
    string(REPLACE ";"
                   ","
                   CPACK_RPM_PACKAGE_REQUIRES
                   ${CPACK_RPM_PACKAGE_REQUIRES}) # fix up the fact that it was
                                                  # made as an array
    string(REPLACE ",,"
                   ","
                   CPACK_RPM_PACKAGE_REQUIRES
                   ${CPACK_RPM_PACKAGE_REQUIRES})

    # ubuntu requirements - only used if package requested is deb
    set(
      CPACK_DEBIAN_PACKAGE_DEPENDS
      "libboost-date-time${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION},"
      "libboost-regex${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION},"
      "libboost-python${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION},"
      "libboost-serialization${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION},"
      "libboost-filesystem${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION},"
      "libnexus0v5 (>= 4.3),"
      "libjsoncpp1 (>=0.7.0),"
      "libmuparser2v5,"
      "libtbb2,"
      "librdkafka1,librdkafka++1,"
      "libpocofoundation${POCO_SOLIB_VERSION},libpocoutil${POCO_SOLIB_VERSION},libpoconet${POCO_SOLIB_VERSION},libpoconetssl${POCO_SOLIB_VERSION},libpococrypto${POCO_SOLIB_VERSION},libpocoxml${POCO_SOLIB_VERSION}"
      )
    if(ENABLE_MANTIDPLOT)
      set(CPACK_DEBIAN_PACKAGE_DEPENDS
          "${CPACK_DEBIAN_PACKAGE_DEPENDS},libqtcore4 (>= 4.2),"
          "libqtgui4 (>= 4.2),"
          "libqt4-opengl (>= 4.2),"
          "libqt4-xml (>= 4.2),"
          "libqt4-svg (>= 4.2),"
          "libqt4-qt3support (>= 4.2),"
          "qt4-dev-tools,"
          "libqwt5-qt4,"
          "libqwtplot3d-qt4-0v5,"
          "libqtwebkit4")
    endif()
430

Martyn Gigg's avatar
Martyn Gigg committed
431
    if("${UNIX_CODENAME}" STREQUAL "bionic")
432
433
434
435
436
437
438
439
440
      set(CPACK_DEBIAN_PACKAGE_DEPENDS
          "${CPACK_DEBIAN_PACKAGE_DEPENDS},libgsl23,"
          "liboce-foundation11,liboce-modeling11,"
          "libqscintilla2-qt4-13,"
          "jupyter-notebook,"
          "libhdf5-cpp-100")
      if(ENABLE_WORKBENCH)
        set(CPACK_DEBIAN_PACKAGE_DEPENDS
            "${CPACK_DEBIAN_PACKAGE_DEPENDS},libqscintilla2-qt5-13")
441
      endif()
442
    elseif ( "${UNIX_DIST}" MATCHES "Ubuntu" )
Martyn Gigg's avatar
Martyn Gigg committed
443
      message(WARNING "Unsupported Debian-like OS: ${UNIX_CODENAME}. Packaging is unlikely to work correctly.")
444
    endif()
Martyn Gigg's avatar
Martyn Gigg committed
445
446
447
448
449
450
451
452
453
454
455
456
457
458
    # python requirements
    set(CPACK_DEBIAN_PACKAGE_DEPENDS
        "${CPACK_DEBIAN_PACKAGE_DEPENDS},python3-h5py,"
        "python3-numpy,"
        "python3-requests,"
        "python3-sip,"
        "python3-six,"
        "python3-matplotlib,"
        "python3-qtpy,"
        "python3-scipy,"
        "python3-toml,"
        "python3-pycifrw (>= 4.2.1),"
        "python3-yaml,"
        "ipython3-qtconsole") # transitional package for bionic
459

Martyn Gigg's avatar
Martyn Gigg committed
460
    if(ENABLE_MANTIDPLOT)
461
      set(CPACK_DEBIAN_PACKAGE_DEPENDS
Martyn Gigg's avatar
Martyn Gigg committed
462
463
464
          "${CPACK_DEBIAN_PACKAGE_DEPENDS},python3-pyqt4")
    endif()
    if(ENABLE_WORKBENCH)
465
      set(CPACK_DEBIAN_PACKAGE_DEPENDS
Martyn Gigg's avatar
Martyn Gigg committed
466
          "${CPACK_DEBIAN_PACKAGE_DEPENDS},python3-pyqt5,python3-psutil")
467
    endif()
Martyn Gigg's avatar
Martyn Gigg committed
468

469
470
471
472
473
474
475
476
477
478
479
    # parse list to string required for deb package
    string(REPLACE ";"
                   ","
                   CPACK_DEBIAN_PACKAGE_DEPENDS
                   ${CPACK_DEBIAN_PACKAGE_DEPENDS}) # fix up the fact that it
                                                    # was made as an array
    string(REPLACE ",,"
                   ","
                   CPACK_DEBIAN_PACKAGE_DEPENDS
                   ${CPACK_DEBIAN_PACKAGE_DEPENDS})
  endif()
480

Mathieu Tillet's avatar
Mathieu Tillet committed
481
482
483
  # soft requirement of jemalloc if selected
  if(USE_JEMALLOC)
    message(STATUS "Adding jemalloc to the package requirements")
484
    set(CPACK_RPM_PACKAGE_REQUIRES
485
        "${CPACK_RPM_PACKAGE_REQUIRES}, jemalloc >= 3.0")
486
    set(CPACK_DEBIAN_PACKAGE_DEPENDS
487
        "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libjemalloc1 (>= 3.0)")
488
489
490
491
492
493
494
495
  endif()

  # run cpack configuration
  include(CPack)
  # let people know what is coming out the other end - must be after cpack
  # generates value for rpm
  message(STATUS "CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}")
endif()