Move all nlohmann::json to json_helper.cpp
[staging/windowmanager.git] / src / CMakeLists.txt
1 wlproto(IVI_CON ivi-controller)
2
3 include(FindPkgConfig)
4 pkg_check_modules(AFB REQUIRED afb-daemon==1.0)
5 pkg_check_modules(SD REQUIRED libsystemd>=222)
6
7 # We do not want a prefix for our module
8 set(CMAKE_SHARED_MODULE_PREFIX "")
9
10 add_library(winman MODULE
11    main.cpp
12    wayland.cpp
13    wayland.hpp
14    util.cpp
15    util.hpp
16    ${IVI_CON_PROTO} json_helper.cpp json_helper.hpp)
17
18 target_include_directories(winman
19     PRIVATE
20         ${AFB_INCLUDE_DIRS}
21         ${SD_INCLUDE_DIRS}
22         ../include)
23
24 target_link_libraries(winman
25     PRIVATE
26         ${AFB_LIBRARIES}
27         ${WLC_LIBRARIES}
28         ${SD_LIBRARIES})
29
30 target_compile_definitions(winman
31     PRIVATE
32         WINMAN_VERSION_STRING="${PACKAGE_VERSION}"
33         _GNU_SOURCE)  # XXX should I define this here?!
34
35 if(NOT ${CMAKE_BUILD_TYPE} STREQUAL "Release")
36    target_compile_definitions(winman
37        PRIVATE
38            _GLIBCXX_DEBUG)
39 endif()
40
41 target_compile_options(winman
42     PRIVATE
43         -Wall -Wextra -Wno-unused-parameter -Wno-comment)
44
45 set_target_properties(winman
46     PROPERTIES
47         INTERPROCEDURAL_OPTIMIZATION ON
48
49         CXX_EXTENSIONS OFF
50         CXX_STANDARD 14
51         CXX_STANDARD_REQUIRED ON
52
53         C_EXTENSIONS OFF
54         C_STANDARD 99
55         C_STANDARD_REQUIRED ON
56
57         LINK_FLAGS "-Wl,--version-script=../../export.map")
58
59 if (NOT ${SANITIZER_MODE} STREQUAL "none" AND NOT ${SANITIZER_MODE} STREQUAL "")
60    target_compile_options(winman
61       PRIVATE
62          -fsanitize=${SANITIZER_MODE} -g -fno-omit-frame-pointer)
63    set_target_properties(winman
64       PROPERTIES
65          LINK_FLAGS "-fsanitize=${SANITIZER_MODE} -g")
66 endif()