Warning, /education/gcompris/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 #============================================================================= 0002 # SPDX-FileCopyrightText: 2014 Johnny Jazeix <jazeix@gmail.com> 0003 # 0004 # SPDX-License-Identifier: BSD-3-Clause 0005 #============================================================================= 0006 cmake_minimum_required(VERSION 3.5) 0007 0008 project(gcompris-qt C CXX) 0009 0010 # get all the redist dll needed for windows when compiling with vc 0011 set(CMAKE_INSTALL_UCRT_LIBRARIES 1) 0012 include(InstallRequiredSystemLibraries) 0013 0014 # Set c++11 support 0015 set(CMAKE_CXX_STANDARD 11) 0016 set(CMAKE_CXX_STANDARD_REQUIRED ON) 0017 set(CMAKE_CXX_EXTENSIONS OFF) 0018 0019 # enable qml debugging for DEBUG builds: 0020 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQT_QML_DEBUG") 0021 0022 set(GCOMPRIS_MAJOR_VERSION 2) 0023 set(GCOMPRIS_MINOR_VERSION 4) 0024 set(GCOMPRIS_PATCH_VERSION 0) 0025 0026 if("${CMAKE_ANDROID_ARCH}" STREQUAL "arm64") 0027 set(GCOMPRIS_PATCH_VERSION 1) 0028 endif() 0029 0030 # Set the BUILD_DATE 0031 string(TIMESTAMP BUILD_DATE %Y%m) 0032 0033 # cmake modules setup 0034 find_package(ECM 1.4.0 QUIET NO_MODULE) 0035 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake/) 0036 set(CMAKE_PREFIX_PATH "${Qt5_DIR}/") 0037 0038 # KDE po to qm tools 0039 if(ECM_FOUND) 0040 include(kdeFetchTranslation) 0041 include(ECMAddTests) 0042 0043 option(BUILD_TESTING "Build and enable unit tests" OFF) 0044 include(ECMCoverageOption) 0045 endif() 0046 0047 # add tools (cppcheck, clang-tidy...) if build on testing mode only 0048 # (slower compilation) 0049 if(BUILD_TESTING) 0050 include(CodeQualityUtils) 0051 endif() 0052 0053 set(QT_REQUIRED_VERSION 5.9.0) 0054 0055 if(CMAKE_SYSTEM_NAME STREQUAL Android) 0056 find_package(ECM) 0057 set(ANDROID 1) 0058 # Require ndk minimum version to 21 0059 if(ANDROID_NDK_REVISION VERSION_LESS "21.0.0") 0060 message(FATAL_ERROR "android ndk 21 minimal required, actually using ${ANDROID_NDK_REVISION}") 0061 endif() 0062 # TODO: possibly should be setup by toolchain one day 0063 set(QT_QMAKE_EXECUTABLE "${_qt5Core_install_prefix}/bin/qmake") 0064 if(ECM_VERSION VERSION_GREATER "5.55.0") 0065 set(QT_REQUIRED_VERSION 5.12.0) 0066 endif() 0067 0068 # workaround until this fix is in released ECM 0069 if(ECM_VERSION VERSION_LESS "5.15.0") 0070 add_definitions(-DANDROID) 0071 endif() 0072 endif() 0073 0074 # Set executable filename 0075 if(ANDROID) 0076 set(GCOMPRIS_EXECUTABLE_NAME GCompris) 0077 elseif(SAILFISHOS) 0078 set(GCOMPRIS_EXECUTABLE_NAME harbour-gcompris-qt) 0079 elseif(WIN32) 0080 set(GCOMPRIS_EXECUTABLE_NAME GCompris) 0081 else() 0082 set(GCOMPRIS_EXECUTABLE_NAME gcompris-qt) 0083 endif() 0084 0085 set(GCOMPRIS_VERSION ${GCOMPRIS_MAJOR_VERSION}.${GCOMPRIS_MINOR_VERSION}) 0086 0087 # An integer value that represents the version of the application 0088 # Increase it at each release 0089 math(EXPR GCOMPRIS_VERSION_CODE "${GCOMPRIS_MAJOR_VERSION}*10000 + ${GCOMPRIS_MINOR_VERSION}*100 + ${GCOMPRIS_PATCH_VERSION}") 0090 0091 # prevent build in source directory 0092 if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") 0093 message(SEND_ERROR "Building in the source directory is not supported.") 0094 message(FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" 0095 directory and create a build directory and call \"${CMAKE_COMMAND} <path to the sources>\".") 0096 endif() 0097 0098 find_package(Qt5 ${QT_REQUIRED_VERSION} REQUIRED 0099 Qml Quick Gui Multimedia Core Svg LinguistTools Sensors) 0100 0101 if(ANDROID) 0102 find_package(Qt5 ${QT_REQUIRED_VERSION} REQUIRED AndroidExtras) 0103 endif() 0104 0105 if(SAILFISHOS) 0106 find_package(Qt5 ${QT_REQUIRED_VERSION} REQUIRED Widgets) 0107 endif() 0108 0109 ## For now we workaround CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION to clang with a command variable, so not needed 0110 # if(ANDROID AND ECM_VERSION VERSION_LESS "5.56.0" AND Qt5Core_VERSION VERSION_GREATER "5.11.99") 0111 # message(FATAL_ERROR "ECM ${ECM_VERSION} not compatible with Qt ${Qt5Core_VERSION} version for android.") 0112 # endif() 0113 0114 if((UNIX AND NOT APPLE AND NOT SAILFISHOS AND NOT ANDROID) OR WIN32) 0115 find_package(OpenSSL REQUIRED) 0116 endif() 0117 0118 find_package(KF5 QUIET COMPONENTS 0119 DocTools 0120 ) 0121 if(ECM_FOUND) 0122 include(KDEInstallDirs) 0123 0124 if(ECM_VERSION VERSION_GREATER "1.6.0") 0125 add_subdirectory(images) 0126 install(FILES org.kde.gcompris.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0127 install(FILES org.kde.gcompris.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0128 else() 0129 message(STATUS "ECM_VERSION is ${ECM_VERSION}, icons and desktop files won't be installed.") 0130 endif() 0131 endif() 0132 0133 # Tell CMake to run moc when necessary: 0134 set(CMAKE_AUTOMOC ON) 0135 0136 # As moc files are generated in the binary dir, tell CMake 0137 # to always look for includes there: 0138 set(CMAKE_INCLUDE_CURRENT_DIR ON) 0139 0140 #get_cmake_property(_variableNames VARIABLES) 0141 #foreach (_variableName ${_variableNames}) 0142 # message("${_variableName}=${${_variableName}}") 0143 #endforeach() 0144 0145 option(WITH_DOWNLOAD "Internal download" ON) 0146 # @FIXME These permissions should be removed if download is disable 0147 # but it makes the application crash on exit (tested on Android 6) 0148 set(ANDROID_INTERNET_PERMISSION "<uses-permission android:name=\"android.permission.INTERNET\" />") 0149 set(ANDROID_ACCESS_NETWORK_STATE_PERMISSION "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />") 0150 0151 set(GRAPHICAL_RENDERER "auto" CACHE STRING "Policy for choosing the renderer backend [opengl|software|auto]") 0152 0153 # Set output directory 0154 if(CMAKE_HOST_APPLE) 0155 set(_bundle_bin gcompris-qt.app/Contents/MacOS) 0156 set(_data_dest_dir bin/${_bundle_bin}/../Resources) 0157 else() 0158 set(_data_dest_dir share/${GCOMPRIS_EXECUTABLE_NAME}) 0159 endif() 0160 if(ANDROID) 0161 # Android .so output 0162 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/android/libs/${ANDROID_ABI}/) 0163 set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir} CACHE INTERNAL "" FORCE) 0164 set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/android/assets/${_data_dest_dir}/rcc CACHE INTERNAL "" FORCE) 0165 set(ANDROID_PACKAGE "net.gcompris.full") 0166 add_subdirectory(android) 0167 elseif(CMAKE_HOST_APPLE) 0168 # MacOSX build 0169 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 0170 set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/translations CACHE INTERNAL "" FORCE) 0171 set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/rcc CACHE INTERNAL "" FORCE) 0172 else() 0173 # Desktop build 0174 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 0175 set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/translations CACHE INTERNAL "" FORCE) 0176 set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/rcc CACHE INTERNAL "" FORCE) 0177 endif() 0178 0179 # Always create these folders 0180 add_custom_command( 0181 OUTPUT shareFolders 0182 COMMAND cmake -E make_directory ${GCOMPRIS_TRANSLATIONS_DIR} 0183 COMMAND cmake -E make_directory ${GCOMPRIS_RCC_DIR} 0184 ) 0185 add_custom_target( 0186 createShareFolders ALL 0187 DEPENDS shareFolders 0188 ) 0189 0190 include(cmake/rcc.cmake) 0191 0192 # Translations handling 0193 0194 # Simple command calling the python script 0195 add_custom_command( 0196 OUTPUT retrievePoFilesFromSvn 0197 COMMAND python3 tools/l10n-fetch-po-files.py 0198 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0199 ) 0200 # Install translations 0201 add_custom_target(getSvnTranslations 0202 DEPENDS retrievePoFilesFromSvn 0203 COMMENT "Re-run cmake after this to be able to run BuildTranslations with the latest files" 0204 ) 0205 0206 # Get all supported locales by GCompris from LanguageList.qml file, excluded the commented ones 0207 file(STRINGS "${CMAKE_SOURCE_DIR}/src/core/LanguageList.qml" handledGComprisLocaleList ENCODING UTF-8 REGEX "[^//]{.*UTF-8") 0208 foreach(localeLine ${handledGComprisLocaleList}) 0209 # We match the pattern locale.UTF-8 0210 string(REGEX MATCH ".*\"([a-zA-Z_@]*)\.UTF-8.*" _ ${localeLine}) 0211 set(localeFull ${CMAKE_MATCH_1}) 0212 list(APPEND gcomprisLocales ${localeFull}) 0213 # Add simplified locale 0214 string(REGEX MATCH "([a-zA-Z@]*)_.*" _ ${localeFull}) 0215 set(localeShort ${CMAKE_MATCH_1}) 0216 list(APPEND gcomprisLocales ${localeShort}) 0217 endforeach() 0218 # Remove all duplicated shortened locales 0219 list(REMOVE_DUPLICATES gcomprisLocales) 0220 0221 # Get all po files in po/. You can get them doing: python3 tools/l10n-fetch-po-files.py 0222 file(GLOB TRANSLATIONS_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "po/*/gcompris_qt.po") 0223 foreach(PoSource ${TRANSLATIONS_FILES}) 0224 # Get the locale 0225 string(REGEX MATCH "po/([a-zA-Z@_]*)/gcompris_qt.po" _ ${PoSource}) 0226 set(locale ${CMAKE_MATCH_1}) 0227 0228 # search in src/core/LanguageList the line corresponding to the locale. If exists, then add the custom_command 0229 if(NOT ${locale} IN_LIST gcomprisLocales) 0230 message(STATUS "Locale ${locale} not supported by GCompris") 0231 continue() 0232 endif() 0233 message(STATUS "Locale ${locale} is supported by GCompris") 0234 0235 # Changes the .po extension to .ts 0236 string(REPLACE ".po" ".ts" TsSource ${PoSource}) 0237 # Replace qt in gcompris_qt.po with the locale 0238 string(REPLACE "qt" "${locale}" TsSource ${TsSource}) 0239 # Removes the po/${locale} folder prefix 0240 string(REPLACE "po/${locale}/" "" TsSource ${TsSource}) 0241 # qm extension filename 0242 string(REPLACE ".ts" ".qm" QmOutput ${TsSource}) 0243 0244 set(OutTsFile ${CMAKE_BINARY_DIR}/tmp/${TsSource}) 0245 0246 add_custom_command( 0247 OUTPUT ${QmOutput} 0248 COMMAND cmake -E make_directory ${GCOMPRIS_TRANSLATIONS_DIR} 0249 COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/tmp 0250 # Remove the obsolete translations and set po in the ts output file 0251 COMMAND msgattrib --no-obsolete ${CMAKE_CURRENT_SOURCE_DIR}/${PoSource} -o ${OutTsFile} 0252 # Convert the po into ts 0253 COMMAND Qt5::lconvert -if po -of ts -i ${OutTsFile} -o ${OutTsFile} 0254 # Convert the ts in qm removing non finished translations 0255 COMMAND Qt5::lrelease -compress -nounfinished ${OutTsFile} -qm ${GCOMPRIS_TRANSLATIONS_DIR}/${QmOutput} 0256 ) 0257 list(APPEND QM_FILES ${QmOutput}) 0258 endforeach() 0259 0260 # Install translations 0261 if(WIN32) 0262 add_custom_target(BuildTranslations 0263 DEPENDS ${QM_FILES} 0264 COMMENT "If you don't have the .po, you need to run make getSvnTranslations first then re-run cmake" 0265 ) 0266 else() 0267 add_custom_target(BuildTranslations ALL 0268 DEPENDS ${QM_FILES} 0269 COMMENT "If you don't have the .po, you need to run make getSvnTranslations first then re-run cmake" 0270 ) 0271 endif() 0272 0273 add_custom_command( 0274 OUTPUT doBundleTranslations 0275 COMMAND 7z a -w${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME} 0276 ${CMAKE_BINARY_DIR}/translations-${GCOMPRIS_VERSION}.7z 0277 ${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME}/translations 0278 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0279 ) 0280 # Bundle translations 0281 add_custom_target(BundleTranslations 0282 DEPENDS doBundleTranslations 0283 COMMENT "If you want to provide a zip of the translations on a server (run make BuildTranslations first)" 0284 ) 0285 0286 add_custom_command( 0287 OUTPUT doDlAndInstallBundledTranslations 0288 COMMAND curl -fsS -o translations-${GCOMPRIS_VERSION}.7z 0289 https://gcompris.net/download/translations-${GCOMPRIS_VERSION}.7z 0290 COMMAND 7z x -y -o${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME} 0291 translations-${GCOMPRIS_VERSION}.7z 0292 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 0293 ) 0294 # Download and install bundled translations 0295 add_custom_target(DlAndInstallBundledTranslations 0296 DEPENDS doDlAndInstallBundledTranslations 0297 COMMENT "Download the bundled translation and install them in the build dir" 0298 ) 0299 0300 if(CMAKE_HOST_APPLE) 0301 install(DIRECTORY ${GCOMPRIS_TRANSLATIONS_DIR} DESTINATION ${_bundle_bin}) 0302 elseif(ANDROID) 0303 install(DIRECTORY ${GCOMPRIS_TRANSLATIONS_DIR} DESTINATION "share") 0304 else() 0305 install(DIRECTORY ${GCOMPRIS_TRANSLATIONS_DIR} DESTINATION ${_data_dest_dir}) 0306 endif() 0307 0308 # Build standalone package option -> if ON, we will copy the required Qt files in the build package. 0309 # If OFF, "make install" will not copy Qt files so only GCompris files will be packaged. 0310 # By default, it is true on Windows (as we deliver NSIS package), macOS (bundled), android (apk) and false on linux (to do make install) 0311 # If you want to create a STGZ package for linux (auto-extractible), override this variable by typing : cmake -DBUILD_STANDALONE=ON 0312 if(UNIX AND NOT ANDROID AND NOT APPLE) 0313 option(BUILD_STANDALONE "Build a standalone package when typing 'make package'" OFF) 0314 else() 0315 option(BUILD_STANDALONE "Build a standalone package when typing 'make package'" ON) 0316 endif() 0317 0318 option(WITH_KIOSK_MODE "Set the kiosk mode by default" OFF) 0319 0320 if(WIN32) 0321 set(COMPRESSED_AUDIO "mp3" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") 0322 elseif(APPLE) 0323 set(COMPRESSED_AUDIO "aac" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") 0324 else() 0325 set(COMPRESSED_AUDIO "ogg" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") 0326 endif() 0327 0328 file(GLOB_RECURSE OGG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/ "*.ogg") 0329 0330 foreach(OGG_FILE ${OGG_FILES}) 0331 # This should only replace the extension 0332 string(REGEX REPLACE "ogg$" "aac" AAC_FILE ${OGG_FILE}) 0333 add_custom_command( 0334 OUTPUT ${AAC_FILE} 0335 # Put the good line depending on your installation 0336 COMMAND avconv -v warning -i ${OGG_FILE} -acodec libvo_aacenc ${AAC_FILE} 0337 #COMMAND ffmpeg -v warning -i ${OGG_FILE} -acodec aac -strict -2 ${AAC_FILE} 0338 ) 0339 list(APPEND AAC_FILES ${AAC_FILE}) 0340 0341 # This should only replace the extension 0342 string(REGEX REPLACE "ogg$" "mp3" MP3_FILE ${OGG_FILE}) 0343 add_custom_command( 0344 OUTPUT ${MP3_FILE} 0345 # Put the good line depending on your installation 0346 #COMMAND avconv -v warning -i ${OGG_FILE} -acodec mp3 ${MP3_FILE} 0347 COMMAND ffmpeg -v warning -i ${OGG_FILE} -acodec mp3 -strict -2 ${MP3_FILE} 0348 ) 0349 list(APPEND MP3_FILES ${MP3_FILE}) 0350 endforeach() 0351 0352 add_custom_target( 0353 createAacFromOgg 0354 DEPENDS ${AAC_FILES} 0355 ) 0356 0357 add_custom_target( 0358 createMp3FromOgg 0359 DEPENDS ${MP3_FILES} 0360 ) 0361 0362 if(ANDROID) 0363 set(GCOMPRIS_ASSETS_DIR ${GCOMPRIS_RCC_DIR}/../../../ CACHE INTERNAL "" FORCE) 0364 else() 0365 set(GCOMPRIS_ASSETS_DIR ${GCOMPRIS_RCC_DIR} CACHE INTERNAL "" FORCE) 0366 endif() 0367 0368 # predownload assets (voices and images) and install them in the rcc folder 0369 set(DOWNLOAD_ASSETS "" CACHE STRING "Download and packages images and voices. use a list like: words,en,fr,pt_BR,music to retrieve multiple files") 0370 add_custom_command( 0371 OUTPUT predownloadAssets 0372 COMMAND python3 tools/download-assets.py ${DOWNLOAD_ASSETS} ${COMPRESSED_AUDIO} ${GCOMPRIS_ASSETS_DIR} 0373 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0374 ) 0375 0376 add_custom_command( 0377 OUTPUT assetsFolders 0378 COMMAND cmake -E make_directory "${GCOMPRIS_ASSETS_DIR}/data2" 0379 COMMAND cmake -E make_directory "${GCOMPRIS_ASSETS_DIR}/data2/voices-${COMPRESSED_AUDIO}" 0380 COMMAND cmake -E make_directory "${GCOMPRIS_ASSETS_DIR}/data2/words" 0381 COMMAND cmake -E make_directory "${GCOMPRIS_ASSETS_DIR}/data2/backgroundMusic" 0382 ) 0383 # Install assets 0384 add_custom_target(getAssets 0385 DEPENDS assetsFolders predownloadAssets 0386 ) 0387 0388 add_custom_command( 0389 OUTPUT doBundleConvertedOggs 0390 COMMAND 7z a converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z '-ir!src/*${COMPRESSED_AUDIO}' 0391 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0392 ) 0393 # Bundle oggs ready to be uploaded on a server. This ease build on system without the appropriate audio 0394 # convertion tools. 0395 add_custom_target(BundleConvertedOggs 0396 DEPENDS doBundleConvertedOggs 0397 COMMENT "Bundle the converted oggs to upload them on a server. First set COMPRESSED_AUDIO appropriately." 0398 ) 0399 0400 add_custom_command( 0401 OUTPUT doDlAndInstallBundledConvertedOggs 0402 COMMAND curl -fsS -o converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z 0403 https://gcompris.net/download/converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z 0404 COMMAND 7z x -y converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z 0405 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0406 ) 0407 # Download and install bundled converted oggs 0408 add_custom_target(DlAndInstallBundledConvertedOggs 0409 DEPENDS doDlAndInstallBundledConvertedOggs 0410 COMMENT "Download the bundled converted oggs and install them in the source dir" 0411 ) 0412 0413 if(${GCOMPRIS_PATCH_VERSION} STREQUAL 0) 0414 set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${GCOMPRIS_VERSION}) 0415 else() 0416 set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${GCOMPRIS_VERSION}.${GCOMPRIS_PATCH_VERSION}) 0417 endif() 0418 0419 add_custom_target(dist 0420 COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD 0421 | xz > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.xz 0422 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 0423 0424 if(KF5_FOUND) 0425 add_subdirectory(docs/docbook) 0426 endif() 0427 0428 # qml-box2d 0429 include(cmake/box2d.cmake) 0430 0431 add_subdirectory(src) 0432 0433 if(SAILFISHOS) 0434 # Need to be done at the end, after src 0435 add_subdirectory(platforms/sailfishOS) 0436 endif() 0437 0438 if (UBUNTU_TOUCH) 0439 add_subdirectory(platforms/ubuntutouch) 0440 endif () 0441 0442 # only enable unit tests for linux 0443 if(BUILD_TESTING) 0444 enable_testing() 0445 add_subdirectory(tests) 0446 endif() 0447 0448 add_custom_target(binaries) 0449 add_dependencies(binaries ${GCOMPRIS_EXECUTABLE_NAME} rcc_core rcc_menu rcc_activities all_activities)