X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=9e3e81e223250693792a7a4135f5687858c70125;hb=725c5a0587e9db420b1ffaa3f8bf05c42fb443b4;hp=558d66c12449b28462705acb50c347550e8a070a;hpb=d5d24ffe67db56e09f581c6f3b9c73c803f1dec5;p=profile%2Fivi%2Flayer-management.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 558d66c..9e3e81e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ ############################################################################ # -# Copyright 2010, 2011 BMW Car IT GmbH +# Copyright 2010-2012 BMW Car IT GmbH +# Copyright (C) 2011 DENSO CORPORATION and Robert Bosch Car Multimedia Gmbh # # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,80 +21,276 @@ cmake_minimum_required (VERSION 2.6) project (LayerManager) +#=========================================================================================================== +# cmake configuration +#=========================================================================================================== set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/") +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/DefaultSettings.txt) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/CMakeVersions.txt) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/CustomMacros.txt) +add_subdirectory(cmake/optionalFeatures) -SET( ${PROJECT_NAME}_MAJOR_VERSION 0 ) -SET( ${PROJECT_NAME}_MINOR_VERSION 8 ) -SET( ${PROJECT_NAME}_PATCH_LEVEL 1 ) -set(VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}) +#=========================================================================================================== +build_flag (WITH_FORCE_COPY "Force Software Copy of Pixmaps (compatibility for VMs)" OFF) +#=========================================================================================================== +# no dedicated actions required here -set(LICENSE "APACHE 2.0") +#=========================================================================================================== +build_flag (WITH_DLT "Build with DLT logging support" OFF) +#=========================================================================================================== +# no dedicated actions required here -set(GENIVI_PROJECT_VERSION ${VERSION}) +#=========================================================================================================== +build_flag (WITH_STATIC_LIBRARIES "Link all plugins and libraries statically" OFF) +#=========================================================================================================== +# no dedicated actions required here +#=========================================================================================================== +build_flag (WITH_STYLE_CHECKING "Report styleguide problems during build (requires python)" OFF) +#=========================================================================================================== +if (WITH_STYLE_CHECKING) + set(CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}; ${CMAKE_SOURCE_DIR}/scripts/check_all_styles.py ") + set(CMAKE_CXX_COMPILE_OBJECT "${CMAKE_CXX_COMPILE_OBJECT}; ${CMAKE_SOURCE_DIR}/scripts/check_all_styles.py ") +endif (WITH_STYLE_CHECKING) +add_custom_target(check-style COMMAND ${CMAKE_SOURCE_DIR}/scripts/check_style.sh) -##################### RPM CONFIG ######################## -set(GENIVI_RPM_RELEASE "1${SVN_REVISION}") -set(SPEC_DIR ".") -######################################################### +#=========================================================================================================== +build_flag (WITH_DOCUMENTATION "Generate documentation during build (requires doxygen)" OFF) +#=========================================================================================================== +if (WITH_DOCUMENTATION) + add_custom_target(doc ALL + COMMAND ${CMAKE_SOURCE_DIR}/generate_specification.sh + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +else (WITH_DOCUMENTATION) + add_custom_target(doc + COMMAND ${CMAKE_SOURCE_DIR}/generate_specification.sh + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +endif (WITH_DOCUMENTATION) +#=========================================================================================================== +build_flag (WITH_CPPCHECK "Run cppcheck during build (requires cppcheck)" OFF) +# add build target 'cppcheck' to run pre-defined configuration of cppcheck +#=========================================================================================================== +if (WITH_CPPCHECK) + set(CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}; cppcheck ${CPPCHECK_CONFIG_STRING}") + set(CMAKE_CXX_COMPILE_OBJECT "${CMAKE_CXX_COMPILE_OBJECT}; cppcheck ${CPPCHECK_CONFIG_STRING}") +endif (WITH_CPPCHECK) +add_custom_target(cppcheck COMMAND cppcheck ${CMAKE_SOURCE_DIR}/LayerManager*/ ${CPPCHECK_CONFIG}) -# Platforms / A set of indiviual options at once -# Choose only ONE of these!! +#=========================================================================================================== +build_flag (WITH_TESTS "Build unit test binaries for all enabled components" OFF) +#=========================================================================================================== +if (WITH_TESTS) + # enable ctest if building with tests, run 'make test' after build to run all tests + # be aware that some tests require a running layermanager + enable_testing() + add_subdirectory_once (3rdParty/gtest) + add_subdirectory_once (3rdParty/gmock) +endif(WITH_TESTS) -option (WITH_X11_GLES - "Build for X11 with GLES 2.0" ON) - -option (WITH_DESKTOP - "Build for Desktop / GLX" OFF) +#=========================================================================================================== +build_flag (WITH_EGL_EXAMPLE "Build examples for GLES/X11 based platforms" ON) +#=========================================================================================================== +if (WITH_EGL_EXAMPLE) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerClient/ilmClient) + add_subdirectory_once (LayerManagerClient/ilmControl) + add_subdirectory_once (LayerManagerExamples/EGLX11ApplicationExample) + add_subdirectory_once (LayerManagerExamples/EGLX11MockNavigation) +endif(WITH_EGL_EXAMPLE) + +#=========================================================================================================== +build_flag (WITH_GLX_EXAMPLE "Build examples for OpenGL/X11 based platforms" OFF) +#=========================================================================================================== +if (WITH_GLX_EXAMPLE) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerClient/ilmClient) + add_subdirectory_once (LayerManagerExamples/GLXApplicationExample) +endif(WITH_GLX_EXAMPLE) -option (WITH_EGL_EXAMPLE - "Build EGL_EXAMPLE " ON) +#=========================================================================================================== +build_flag (WITH_CLIENTEXAMPLES "Build examples for client library usage" ON) +#=========================================================================================================== +if (WITH_CLIENTEXAMPLES) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerClient/ilmClient) + add_subdirectory_once (LayerManagerExamples/LayerManagerClientExample) +endif(WITH_CLIENTEXAMPLES) -option (WITH_GLX_EXAMPLE - "Build GLX_EXAMPLE " OFF) - -option (WITH_TESTS - "Build Available Tests " OFF) - -option (WITH_XTHREADS - "Build with usage of X11 Threading" ON) +#=========================================================================================================== +build_flag (WITH_WL_EXAMPLE "Build examples for GLES/Wayland based platforms" OFF) +#=========================================================================================================== +if (WITH_WL_EXAMPLE) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerClient/ilmClient) + add_subdirectory_once (LayerManagerExamples/EGLWLApplicationExample) + add_subdirectory_once (LayerManagerExamples/EGLWLMockNavigation) + add_subdirectory_once (LayerManagerExamples/WLChromakeyExample) + add_subdirectory_once (LayerManagerExamples/EGLWLInputEventExample) +endif(WITH_WL_EXAMPLE) -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic") +#=========================================================================================================== +build_flag (WITH_CONTROL_BIN "Build LayerManagerControl binary" ON) +#=========================================================================================================== +if (WITH_CONTROL_BIN) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerClient/ilmClient) + add_subdirectory_once (LayerManagerClient/ilmControl) + add_subdirectory_once (LayerManagerControl) +endif(WITH_CONTROL_BIN) -option (WITH_FORCE_COPY - "Force Software Copy of Pixmaps" OFF) - -if (WITH_XTHREADS) -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_XTHREADS" CACHE STRING "" FORCE) -endif(WITH_XTHREADS) - -if (WITH_FORCE_COPY) -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGLX_GRAPHICSYSTEM_FORCE_COPY -DGLES_FORCE_COPY" CACHE STRING "" FORCE) -endif(WITH_FORCE_COPY) +#=========================================================================================================== +build_flag (WITH_EXAMPLE_SCENE_PROVIDER "Build scene provider plugin to run example applications" OFF) +#=========================================================================================================== +if (WITH_EXAMPLE_SCENE_PROVIDER) + add_subdirectory_once (LayerManagerCommands) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/SceneProvider/ExampleSceneProvider) +endif(WITH_EXAMPLE_SCENE_PROVIDER) -add_subdirectory (LayerManagerPlugins/Communicators/DBUSCommunicator) -add_subdirectory (LayerManagerClient/ilmClient) -add_subdirectory (LayerManagerUtils) -add_subdirectory (LayerManagerCommands) -add_subdirectory (LayerManagerService) -add_subdirectory (LayerManagerExamples/LayerManagerClientExample) +#=========================================================================================================== +build_flag (WITH_SYSTEMD_HEALTH_MONITOR "Build plugin for systemd based health monitoring" OFF) +#=========================================================================================================== +if (WITH_SYSTEMD_HEALTH_MONITOR) + add_subdirectory_once (3rdParty/systemd) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor) +endif(WITH_SYSTEMD_HEALTH_MONITOR) - +#=========================================================================================================== +build_flag (WITH_GENERIC_COMMUNICATOR "Build Generic Communicator Plugin based on IpcModules" ON) +#=========================================================================================================== +if (WITH_GENERIC_COMMUNICATOR) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/IpcModules) + add_subdirectory_once (LayerManagerCommands) + add_subdirectory_once (LayerManagerPlugins/Communicators/GenericCommunicator) +endif(WITH_GENERIC_COMMUNICATOR) + +#=========================================================================================================== +build_flag (WITH_DESKTOP "Build renderer plugin for OpenGL/X11 based platforms" OFF) +#=========================================================================================================== if (WITH_DESKTOP) - add_subdirectory (LayerManagerPlugins/Renderers/Platform/GLXRenderer) -endif(WITH_DESKTOP) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLX) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/GLXRenderer) +endif(WITH_DESKTOP) + +#=========================================================================================================== +build_flag (WITH_GLX_LIB "Build development library for OpenGL/X11 based renderers" OFF) +#=========================================================================================================== +if (WITH_GLX_LIB) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLX) +endif(WITH_GLX_LIB) + +#=========================================================================================================== +build_flag (WITH_WAYLAND_X11 "Build renderer plugin for GLES/Wayland with X11 backend" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_X11) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandX11GLESv2) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer) +endif(WITH_WAYLAND_X11) + +#=========================================================================================================== +build_flag (WITH_WAYLAND_X11_LIB "Build development library for GLES/Wayland X11 based renderers" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_X11_LIB) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandX11GLESv2) +endif(WITH_WAYLAND_X11_LIB) + +#=========================================================================================================== +build_flag (WITH_WAYLAND_DRM "Build renderer plugin for GLES/Wayland with DRM backend" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_DRM) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandDrmGLESv2) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer) +endif(WITH_WAYLAND_DRM) +#=========================================================================================================== +build_flag (WITH_WAYLAND_DRM_LIB "Build development library for GLES/Wayland DRM based renderers" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_DRM_LIB) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandDrmGLESv2) +endif(WITH_WAYLAND_DRM_LIB) + +#=========================================================================================================== +build_flag (WITH_WAYLAND_FBDEV "Build renderer plugin for GLES/Wayland with FBDEV backend" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_FBDEV) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandFbdevGLESv2) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer) +endif(WITH_WAYLAND_FBDEV) + +#=========================================================================================================== +build_flag (WITH_WAYLAND_FBDEV_LIB "Build development library for GLES/Wayland FBDEV based renderers" OFF) +#=========================================================================================================== +if (WITH_WAYLAND_FBDEV_LIB) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandFbdevGLESv2) +endif(WITH_WAYLAND_FBDEV_LIB) + +#=========================================================================================================== +build_flag (WITH_X11_GLES "Build renderer plugin for GLES/X11 based platforms" ON) +#=========================================================================================================== if (WITH_X11_GLES) - add_subdirectory (LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) -endif(WITH_X11_GLES) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLESv2) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) +endif(WITH_X11_GLES) -if (WITH_EGL_EXAMPLE) - add_subdirectory (LayerManagerExamples/EGLX11ApplicationExample) -endif(WITH_EGL_EXAMPLE) +#=========================================================================================================== +build_flag (WITH_GLESv2_LIB "Build development library for GLES/X11 based renderers" OFF) +#=========================================================================================================== +if (WITH_GLESv2_LIB) + add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLESv2) +endif(WITH_GLESv2_LIB) -if (WITH_GLX_EXAMPLE) - add_subdirectory (LayerManagerExamples/GLXApplicationExample) -endif(WITH_GLX_EXAMPLE) +#=========================================================================================================== +build_flag (WITH_TEXT_RENDERER "Build renderer plugin with pure logging (no rendering)" OFF) +#=========================================================================================================== +if (WITH_TEXT_RENDERER) + add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/TextRenderer) +endif(WITH_TEXT_RENDERER) + +#=========================================================================================================== +build_flag (WITH_SERVICE_BIN "Build LayerManagerService binary" ON) +#=========================================================================================================== +if (WITH_SERVICE_BIN) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerBase) + add_subdirectory_once (LayerManagerService) +endif (WITH_SERVICE_BIN) + +#=========================================================================================================== +build_flag (WITH_CLIENT_LIB "Build LayerManagement client library" ON) +#=========================================================================================================== +if (WITH_CLIENT_LIB) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerPlugins/IpcModules) + add_subdirectory_once (LayerManagerClient/ilmCommon) + add_subdirectory_once (LayerManagerClient/ilmClient) +endif (WITH_CLIENT_LIB) + +#=========================================================================================================== +build_flag (WITH_CONTROL_LIB "Build LayerManagement control library" ON) +#=========================================================================================================== +if (WITH_CONTROL_LIB) + add_subdirectory_once (LayerManagerUtils) + add_subdirectory_once (LayerManagerPlugins/IpcModules) + add_subdirectory_once (LayerManagerClient/ilmCommon) + add_subdirectory_once (LayerManagerClient/ilmControl) +endif (WITH_CONTROL_LIB) +#=========================================================================================================== +# store used build configuration +#=========================================================================================================== +add_subdirectory_once(config)