X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=d35c17e74bd530ef008b28c7b5f68551591ec25c;hb=HEAD;hp=1449da0cd82f349471c7d9170f8b945dbad7de93;hpb=04be11d71be97fe91591cee18077bd244788a7a0;p=apps%2Fagl-service-windowmanager.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1449da0..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,68 +15,38 @@ # limitations under the License. # -include(FindPkgConfig) -pkg_check_modules(AFB REQUIRED afb-daemon) -pkg_check_modules(ILM REQUIRED ilmControl ilmCommon) -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 - 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(${TARGETS_WM} - PRIVATE - ${AFB_INCLUDE_DIRS} - ${SD_INCLUDE_DIRS} - ${ILM_INCLUDE_DIRS} - ../include - ../src - ../${PLUGIN_PM}) - -target_link_libraries(${TARGETS_WM} - PRIVATE - ${AFB_LIBRARIES} - ${WLC_LIBRARIES} - ${ILM_LIBRARIES} - ${SD_LIBRARIES} - ${PLUGIN_PM}) - -target_compile_definitions(${TARGETS_WM} - PRIVATE +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() + WINMAN_VERSION_STRING="${PACKAGE_VERSION}") -target_compile_options(${TARGETS_WM} - PRIVATE - -Wall -Wextra -Wno-unused-parameter -Wno-comment -Wno-missing-field-initializers) - -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 @@ -83,43 +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 -Wl,-rpath,'$ORIGIN'") +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++ -Wl,-rpath,'$ORIGIN'") -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 ${CMAKE_SOURCE_DIR}/conf/layers.json ${PROJECT_BINARY_DIR}/package/root/etc - COMMAND cp -f ${CMAKE_SOURCE_DIR}/conf/areas.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}.wgt ${PROJECT_BINARY_DIR}/package/root -) -add_custom_target(widget DEPENDS ${PROJECT_BINARY_DIR}/package/${TARGETS_WM}.wgt - COMMAND cp -f ${PROJECT_BINARY_DIR}/package/${TARGETS_WM}.wgt ${PROJECT_BINARY_DIR}/${TARGETS_WM}.wgt -) -add_dependencies(widget package)