X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=d35c17e74bd530ef008b28c7b5f68551591ec25c;hb=c0208be2fdd6d30d59b534b848c1f4ce39a764d5;hp=ee398e0135b06002463c51589d4fb2f72d16b9c6;hpb=8ab10aaafc6fb3dc7bbad755dce9b4bdaa41f287;p=apps%2Fagl-service-windowmanager.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ee398e0..d35c17e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,6 @@ # # Copyright (c) 2017 TOYOTA MOTOR CORPORATION +# Copyright (C) 2020 Konsulko Group # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,67 +15,38 @@ # limitations under the License. # -wlproto(IVI_CON ivi-wm) - -include(FindPkgConfig) -pkg_check_modules(AFB REQUIRED afb-daemon) -pkg_check_modules(SD REQUIRED libsystemd>=222) - -# We do not want a prefix for our module -set(CMAKE_SHARED_MODULE_PREFIX "") - -set(TARGETS_WM windowmanager-service) - -add_library(${TARGETS_WM} MODULE - main.cpp - wayland_ivi_wm.cpp - util.cpp - layout.cpp - ${IVI_CON_PROTO} - json_helper.cpp - window_manager.cpp - layers.cpp - wm_client.cpp - wm_error.cpp - wm_config.cpp - applist.cpp - request.cpp) - -target_include_directories(${TARGETS_WM} - PRIVATE - ${AFB_INCLUDE_DIRS} - ${SD_INCLUDE_DIRS} - ../include - ../src) - -target_link_libraries(${TARGETS_WM} - PRIVATE - ${AFB_LIBRARIES} - ${WLC_LIBRARIES} - ${SD_LIBRARIES}) - -target_compile_definitions(${TARGETS_WM} - PRIVATE - AFB_BINDING_VERSION=2 +PROJECT_TARGET_ADD(windowmanager-service) + +# Define project Targets +add_library(${TARGET_NAME} MODULE + main.cpp + util.cpp + json_helper.cpp + applist.cpp + request.cpp + pm_wrapper.cpp + window_manager.cpp + wm_client.cpp + wm_error.cpp + wm_layer.cpp + wm_layer_control.cpp) + +target_include_directories(${TARGET_NAME} PRIVATE + ../${PLUGIN_PM}) + +target_compile_definitions(${TARGET_NAME} PRIVATE + AFB_BINDING_VERSION=3 # We do not want source location of messages AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS - WINMAN_VERSION_STRING="${PACKAGE_VERSION}" - _GNU_SOURCE) - -if(NOT ${CMAKE_BUILD_TYPE} STREQUAL "Release") - target_compile_definitions(${TARGETS_WM} - PRIVATE - _GLIBCXX_DEBUG) -endif() - -target_compile_options(${TARGETS_WM} - PRIVATE - -Wall -Wextra -Wno-unused-parameter -Wno-comment) + WINMAN_VERSION_STRING="${PACKAGE_VERSION}") -set_target_properties(${TARGETS_WM} - PROPERTIES - # INTERPROCEDURAL_OPTIMIZATION ON +set_target_properties(${TARGET_NAME} PROPERTIES + LABELS "BINDING" + PREFIX "" + LINK_FLAGS ${BINDINGS_LINK_FLAG} + OUTPUT_NAME ${TARGET_NAME} + # INTERPROCEDURAL_OPTIMIZATION ON CXX_EXTENSIONS OFF CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON @@ -82,40 +54,23 @@ set_target_properties(${TARGETS_WM} C_EXTENSIONS OFF C_STANDARD 99 C_STANDARD_REQUIRED ON +) - LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../export.map") +target_link_libraries(${TARGET_NAME} PRIVATE ${PLUGIN_PM}) -if (LINK_LIBCXX) - set_target_properties(${TARGETS_WM} - PROPERTIES - LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../export.map -lc++") -endif() +target_link_options(${TARGET_NAME} PRIVATE "-Wl,-rpath,'$ORIGIN'") if (NOT ${SANITIZER_MODE} STREQUAL "none" AND NOT ${SANITIZER_MODE} STREQUAL "") - target_compile_options(${TARGETS_WM} - PRIVATE - -fsanitize=${SANITIZER_MODE} -g -fno-omit-frame-pointer) - set_target_properties(${TARGETS_WM} - PROPERTIES - LINK_FLAGS "-fsanitize=${SANITIZER_MODE} -g") + target_compile_options(${TARGET_NAME} PRIVATE + -fsanitize=${SANITIZER_MODE} -g -fno-omit-frame-pointer) + set_target_properties(${TARGET_NAME} PROPERTIES + LINK_FLAGS "-fsanitize=${SANITIZER_MODE} -g") endif() -if(NOT EXISTS ${PROJECT_BINARY_DIR}/package) - add_custom_command(TARGET ${TARGETS_WM} POST_BUILD - COMMAND cp -rf ${PROJECT_SOURCE_DIR}/package ${PROJECT_BINARY_DIR} - ) -endif() - -add_custom_command(TARGET ${TARGETS_WM} POST_BUILD - COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/lib - COMMAND cp -rf ${PROJECT_BINARY_DIR}/src/${TARGETS_WM}.so ${PROJECT_BINARY_DIR}/package/root/lib - COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/etc - COMMAND cp -f ${PROJECT_SOURCE_DIR}/layers.json ${PROJECT_BINARY_DIR}/package/root/etc - COMMAND cp -f ${PROJECT_SOURCE_DIR}/src/db/old_roles.db ${PROJECT_BINARY_DIR}/package/root/etc - COMMAND cp -f ${PROJECT_SOURCE_DIR}/src/db/areas.db ${PROJECT_BINARY_DIR}/package/root/etc - COMMAND cp -f ${PROJECT_SOURCE_DIR}/conf/setting.json ${PROJECT_BINARY_DIR}/package/root/etc +add_custom_command(TARGET ${TARGET_NAME} POST_BUILD + COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/etc + COMMAND cp -f ${CMAKE_SOURCE_DIR}/conf/layers.json ${PROJECT_BINARY_DIR}/package/etc + COMMAND cp -f ${CMAKE_SOURCE_DIR}/conf/areas.json ${PROJECT_BINARY_DIR}/package/etc ) -add_custom_target(package DEPENDS ${PROJECT_BINARY_DIR}/package/root - COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/${TARGETS_WM}-2017.wgt ${PROJECT_BINARY_DIR}/package/root -) +