diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-05-27 14:24:22 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2020-05-27 14:27:56 -0400 |
commit | c0208be2fdd6d30d59b534b848c1f4ce39a764d5 (patch) | |
tree | e98eaded50026086d934b27ad6363db15151de33 /src | |
parent | e81c43b394aba2766cea5ce7f410d56f70e7464a (diff) |
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 <scott.murray@konsulko.com>
Change-Id: I88c438ed4dafd631646769d7b6dc3debd1ccd6de
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 127 |
1 files changed, 39 insertions, 88 deletions
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) |