From c0208be2fdd6d30d59b534b848c1f4ce39a764d5 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Wed, 27 May 2020 14:24:22 -0400 Subject: Update to use CMake app template Rework CMake files to actually use the CMake app template macros, with an update of the autobuild script to fix test widget building to match the state of the other bindings. Bug-AGL: SPEC-2049 Signed-off-by: Scott Murray Change-Id: I88c438ed4dafd631646769d7b6dc3debd1ccd6de --- src/CMakeLists.txt | 127 ++++++++++++++++------------------------------------- 1 file changed, 39 insertions(+), 88 deletions(-) (limited to 'src') 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) -- cgit 1.2.3-korg