X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=blobdiff_plain;f=CMakeLists.txt;h=191725a5812cb41215ceab46849e61ceaaa7e508;hp=c2511af6a873d39f2de3047786e85ae8ccde5bd2;hb=7ea1070ee471141f58e9e4c03df5c95bbcef907d;hpb=d0fdae3af6998efdce4c6ba0c5d650898c9c5b27 diff --git a/CMakeLists.txt b/CMakeLists.txt index c2511af..191725a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ ########################################################################### -# Copyright 2015 IoT.bzh +# Copyright (C) 2015-2020 IoT.bzh # # author: José Bollo # @@ -16,53 +16,86 @@ # limitations under the License. ########################################################################### -project(afm-main C) +cmake_minimum_required(VERSION 3.4.3) -cmake_minimum_required(VERSION 2.8) +project(afm-main C) include(GNUInstallDirs) +include(CTest) + +set(PROJECT_NAME "AFM Main") +set(PROJECT_PRETTY_NAME "Application Framework Main") +set(PROJECT_DESCRIPTION "Secured Application framework for Automotive Grade Linux") +set(AGLVERSION "8.0.0" CACHE STRING "Version of AGL") +set(PROJECT_VERSION ${AGLVERSION} CACHE STRING "Version of the project can override AGLVERSION") +set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-main.git;a=summary") -macro(setc name value) - if(NOT DEFINED ${name}) - set(${name} ${value}) - endif(NOT DEFINED ${name}) -endmacro(setc) +option(DISTINCT_VERSIONS "Should the version of application be distinguished" OFF) +option(USE_LIBZIP "Should try to use libzip?" ON) +option(USE_SIMULATION "If set simulates security manager and smack" OFF) +option(USE_SDK "If set, avoids installating system runtime files" OFF) +option(ALLOW_NO_SIGNATURE "If set, widgets without signature are accepted" OFF) -SET(PROJECT_NAME "AFM Main") -SET(PROJECT_PRETTY_NAME "Application Framework Main") -SET(PROJECT_DESCRIPTION "Secured Application framework") -SET(PROJECT_VERSION "1.0") -SET(PROJECT_URL "https://github.com/iotbzh/afm-main") +option(SIMULATE_SECMGR "If set, the security manager is simulated" OFF) +option(SIMULATE_SMACK "If set, the smack environment is simulated" OFF) -setc(USE_LIBZIP 1) -setc(USE_SIMULATION 1) +option(LEGACY_USER_DAEMON "compile and install the legacy afm-user-daemon" OFF) -setc(afm_name "aglfwk") -setc(afm_confdir "${CMAKE_INSTALL_SYSCONFDIR}/${afm_name}") -setc(afm_datadir "${CMAKE_INSTALL_DATADIR}/${afm_name}") -setc(afm_appdir "${afm_datadir}/applications") -setc(afm_icondir "${afm_datadir}/icons") -setc(afm_prefix "urn:agl:") -setc(afm_prefix_permission "${afm_prefix}perm:") -setc(afm_prefix_plugin "${afm_prefix}plugin:") -setc(afm_user_appdir "app-data") -setc(wgtpkg_trusted_cert_dir "${afm_confdir}/certs") +set(afm_name "afm" CACHE STRING "Name for application framework user") +set(afm_confdir "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${afm_name}" CACHE STRING "Directory for configuration files") +set(afm_datadir "${CMAKE_INSTALL_FULL_DATADIR}/${afm_name}" CACHE STRING "Root directory for installions") +set(afm_libexecdir "${CMAKE_INSTALL_FULL_LIBEXECDIR}/${afm_name}" CACHE STRING "Directory for installing internal binaries") +set(afm_appdir "${afm_datadir}/applications" CACHE STRING "Directory for installing applications") +set(afm_icondir "${afm_datadir}/icons" CACHE STRING "Directory for installing icons") +set(afm_prefix "urn:AGL:" CACHE STRING "Prefix for uniform resource name") +set(afm_user_appdir "app-data" CACHE STRING "User subdirectory for applications") +set(afm_user_appdir_label "User::App-Shared" CACHE STRING "Smack label of the user subdirectory for applications") +set(systemd_units_root "${CMAKE_INSTALL_FULL_LIBDIR}/systemd" CACHE STRING "Place where unit files are to be set") +set(wgtpkg_trusted_cert_dir "${afm_confdir}/certs" CACHE STRING "Path to internal certificates") +set(afm_platform_rundir "/run/platform" CACHE STRING "Path to location of platform runtime sockets") +set(afm_users_rundir "/run/user" CACHE STRING "Path to location of users runtime sockets") +set(afm_scope_platform_dir "/var/scope-platform" CACHE STRING "Path to home of scope-platform apps") -macro(defstr name value) - add_definitions(-D${name}="${value}") -endmacro(defstr) +if(USE_SIMULATION) + set(SIMULATE_SECMGR ON) + set(SIMULATE_SMACK ON) +endif(USE_SIMULATION) -defstr(FWK_CONFIG_DIR "${afm_confdir}") -defstr(FWK_PREFIX_PERMISSION "${afm_prefix_permission}") -defstr(FWK_PREFIX_PLUGIN "${afm_prefix_plugin}") -defstr(FWK_ICON_DIR "${afm_icondir}") -defstr(FWK_APP_DIR "${afm_appdir}") -defstr(FWK_USER_APP_DIR "${afm_user_appdir}") -defstr(WGTPKG_TRUSTED_CERT_DIR "${wgtpkg_trusted_cert_dir}") -defstr(FWK_LAUNCH_CONF "${afm_confdir}/afm-launch.conf") +add_definitions( + -DFWK_CONFIG_DIR="${afm_confdir}" + -DFWK_PREFIX="${afm_prefix}" + -DFWK_ICON_DIR="${afm_icondir}" + -DFWK_APP_DIR="${afm_appdir}" + -DFWK_USER_APP_DIR="${afm_user_appdir}" + -DWGTPKG_TRUSTED_CERT_DIR="${wgtpkg_trusted_cert_dir}" + -DFWK_LAUNCH_CONF="${afm_confdir}/afm-launch.conf" + -DFWK_UNIT_CONF="${afm_confdir}/afm-unit.conf" + -DFWK_USER_APP_DIR_LABEL="${afm_user_appdir_label}" + -DSYSTEMD_UNITS_ROOT="${systemd_units_root}" + -DAFM_VERSION="${PROJECT_VERSION}" +) +if(ALLOW_NO_SIGNATURE) + add_definitions(-DALLOW_NO_SIGNATURE=1) +endif(ALLOW_NO_SIGNATURE) +if(DISTINCT_VERSIONS) + add_definitions(-DDISTINCT_VERSIONS=1) +else(DISTINCT_VERSIONS) + add_definitions(-DDISTINCT_VERSIONS=0) +endif(DISTINCT_VERSIONS) add_subdirectory(src) add_subdirectory(conf) add_subdirectory(scripts) +add_subdirectory(certs) + +############################################################ +# installs the pkgconfig files + +CONFIGURE_FILE(afm-main.pc.in afm-main.pc @ONLY) +INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/afm-main.pc + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/pkgconfig + )