From 2c3e2c9868754294af4db0943954d2e0ef3d4d5e Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Tue, 12 Sep 2017 12:17:11 +0200 Subject: client-lib: add cmakelists Signed-off-by: Marcus Fritzsch --- CMakeLists.txt | 1 + client-lib/CMakeLists.txt | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 client-lib/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 1babad4..f5d68e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,4 +78,5 @@ set(SANITIZER_MODE "none" CACHE STRING "Build using a specific sanitizer (e.g. ' set(LINK_LIBCXX OFF CACHE BOOL "Link against LLVMs libc++") +add_subdirectory(client-lib) add_subdirectory(src) diff --git a/client-lib/CMakeLists.txt b/client-lib/CMakeLists.txt new file mode 100644 index 0000000..2478da4 --- /dev/null +++ b/client-lib/CMakeLists.txt @@ -0,0 +1,71 @@ +# +# Copyright (C) 2017 Mentor Graphics Development (Deutschland) GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include(FindPkgConfig) + +pkg_check_modules(AFB REQUIRED afb-daemon) +pkg_check_modules(SD REQUIRED libsystemd>=222) + +add_library(afbclient SHARED + AFBClient.cpp + AFBClient.h) + +target_include_directories(afbclient + PRIVATE + ${AFB_INCLUDE_DIRS} + ${SD_INCLUDE_DIRS}) + +target_link_libraries(afbclient + PRIVATE + ${AFB_LIBRARIES} + ${WLC_LIBRARIES} + ${SD_LIBRARIES}) + +target_compile_definitions(afbclient + PRIVATE + _GNU_SOURCE) # XXX should I define this here?! + +if(NOT ${CMAKE_BUILD_TYPE} STREQUAL "Release") + target_compile_definitions(afbclient + PRIVATE + _GLIBCXX_DEBUG) +endif() + +target_compile_options(afbclient + PRIVATE + -Wall -Wextra -Wno-unused-parameter -Wno-comment) + +set_target_properties(afbclient + PROPERTIES + # INTERPROCEDURAL_OPTIMIZATION ON + CXX_EXTENSIONS OFF + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED ON) + +if (LINK_LIBCXX) + set_target_properties(afbclient + PROPERTIES + LINK_FLAGS "-lc++") +endif() + +if (NOT ${SANITIZER_MODE} STREQUAL "none" AND NOT ${SANITIZER_MODE} STREQUAL "") + target_compile_options(afbclient + PRIVATE + -fsanitize=${SANITIZER_MODE} -g -fno-omit-frame-pointer) + set_target_properties(afbclient + PROPERTIES + LINK_FLAGS "-fsanitize=${SANITIZER_MODE} -g") +endif() -- cgit 1.2.3-korg