+#
+# 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.
+#
+
wlproto(IVI_CON ivi-controller)
include(FindPkgConfig)
-pkg_check_modules(AFB REQUIRED afb-daemon==1.0)
+pkg_check_modules(AFB REQUIRED afb-daemon)
pkg_check_modules(SD REQUIRED libsystemd>=222)
# We do not want a prefix for our module
set(CMAKE_SHARED_MODULE_PREFIX "")
add_custom_command(
- OUTPUT afb_api.hpp afb_binding.inl
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../generate-binding.py
- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/../generate-binding.py)
+ OUTPUT afb_binding_api.hpp afb_binding_glue.inl
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../generate-binding-glue.py
+ COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/../generate-binding-glue.py)
add_library(winman MODULE
main.cpp
wayland.hpp
util.cpp
util.hpp
- ${IVI_CON_PROTO} json_helper.cpp json_helper.hpp app.hpp app.cpp result.hpp afb_api.hpp afb_binding.inl)
+ layout.cpp
+ layout.hpp
+ ${IVI_CON_PROTO}
+ json_helper.cpp
+ json_helper.hpp
+ app.hpp app.cpp
+ afb_binding_api.cpp
+ result.hpp
+ afb_binding_api.hpp
+ afb_binding_glue.inl
+ layers.cpp
+ layers.hpp
+ controller_hooks.hpp
+ config.cpp
+ config.hpp
+ policy.hpp)
+
+add_executable(redraw_fixer
+ redraw_fixer.cpp
+ ${IVI_CON_PROTO}
+ wayland.cpp
+ wayland.hpp
+ controller_hooks.hpp
+ util.cpp
+ util.hpp)
target_include_directories(winman
PRIVATE
${AFB_INCLUDE_DIRS}
${SD_INCLUDE_DIRS}
- ../include)
+ ../include
+ ../src)
+
+target_link_libraries(redraw_fixer
+ PRIVATE
+ ${WLC_LIBRARIES})
target_link_libraries(winman
PRIVATE
WINMAN_VERSION_STRING="${PACKAGE_VERSION}"
_GNU_SOURCE) # XXX should I define this here?!
+target_compile_definitions(redraw_fixer
+ PRIVATE
+ DO_NOT_USE_AFB # override log* AFB macros
+ _GNU_SOURCE)
+
if(NOT ${CMAKE_BUILD_TYPE} STREQUAL "Release")
target_compile_definitions(winman
PRIVATE
_GLIBCXX_DEBUG)
+ target_compile_definitions(redraw_fixer
+ PRIVATE
+ _GLIBCXX_DEBUG)
endif()
target_compile_options(winman
set_target_properties(winman
PROPERTIES
- INTERPROCEDURAL_OPTIMIZATION ON
+ # INTERPROCEDURAL_OPTIMIZATION ON
CXX_EXTENSIONS OFF
CXX_STANDARD 14
C_STANDARD 99
C_STANDARD_REQUIRED ON
- LINK_FLAGS "-Wl,--version-script=../../export.map")
+ LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../export.map")
+
+if (LINK_LIBCXX)
+ set_target_properties(winman
+ PROPERTIES
+ LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../export.map -lc++")
+ set_target_properties(redraw_fixer
+ PROPERTIES
+ LINK_FLAGS "-lc++")
+endif()
if (NOT ${SANITIZER_MODE} STREQUAL "none" AND NOT ${SANITIZER_MODE} STREQUAL "")
target_compile_options(winman