summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-05-27 14:24:22 -0400
committerScott Murray <scott.murray@konsulko.com>2020-05-27 14:27:56 -0400
commitc0208be2fdd6d30d59b534b848c1f4ce39a764d5 (patch)
treee98eaded50026086d934b27ad6363db15151de33 /src
parente81c43b394aba2766cea5ce7f410d56f70e7464a (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.txt127
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)