1 ############################################################################
3 # Copyright 2010-2012 BMW Car IT GmbH
4 # Copyright (C) 2011 DENSO CORPORATION and Robert Bosch Car Multimedia Gmbh
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
19 ############################################################################
21 cmake_minimum_required (VERSION 2.6)
22 project (LayerManager)
24 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
26 include(${CMAKE_MODULE_PATH}/CMakeVersions.txt)
28 # set default build type, if not defined by user
29 if (NOT CMAKE_BUILD_TYPE)
30 set(CMAKE_BUILD_TYPE Release CACHE STRING
31 "Choose build type: Debug, Release, RelWithDebInfo, MinSizeRel."
33 message(STATUS "Build type not defined. Using default build type 'Release'.")
34 endif (NOT CMAKE_BUILD_TYPE)
36 # Platforms / A set of indiviual options at once
38 option (WITH_X11_GLES "Build for X11 with GLES 2.0" ON )
39 option (WITH_GLESv2_LIB "Build development library for GLES2 Based Renderers" OFF)
40 option (WITH_EGL_EXAMPLE "Build EGL_EXAMPLE / X11" ON )
41 option (WITH_WL_EXAMPLE "Build EGL_EXAMPLE / Wayland" OFF)
42 option (WITH_DESKTOP "Build for Desktop / GLX" OFF)
43 option (WITH_GLX_LIB "Build development library for GLX Based Renderers" OFF)
44 option (WITH_GLX_EXAMPLE "Build GLX_EXAMPLE " OFF)
45 option (WITH_INPUT_EVENTS "Activate input events handling" OFF)
46 option (WITH_FORCE_COPY "Force Software Copy of Pixmaps" OFF)
47 option (WITH_XTHREADS "Build with usage of X11 Threading" ON )
48 option (WITH_CLIENTEXAMPLES "Build client examples " ON )
49 option (WITH_TESTS "Build Available Tests " OFF)
50 option (WITH_DLT "Build with DLT support " OFF)
51 option (WITH_WAYLAND_FBDEV "Build Wayland with FBDEV backend" OFF)
52 option (WITH_WAYLAND_X11 "Build Wayland with X11 backend" OFF)
53 option (WITH_WAYLAND_DRM "Build Wayland with drm backend" OFF)
55 # check and resolve option dependencies
56 # make sure, only one walynad based renderer was selected
59 set (WITH_GLX_LIB ON CACHE BOOL "Build development library for GLX Based Renderers" FORCE)
63 set (WITH_GLESv2_LIB ON CACHE BOOL "Build development library for GLES2 Based Renderers" FORCE)
66 set(NumberOfWaylandRenderers 0)
69 set (WITH_GLESv2_LIB ON CACHE BOOL "Build development library for GLES2 Based Renderers" FORCE)
71 MATH(EXPR NumberOfWaylandRenderers "${NumberOfWaylandRenderers} + 1")
72 endif(WITH_WAYLAND_X11)
74 if (WITH_WAYLAND_FBDEV)
75 set (WITH_GLESv2_LIB ON CACHE BOOL "Build development library for GLES2 Based Renderers" FORCE)
77 MATH(EXPR NumberOfWaylandRenderers "${NumberOfWaylandRenderers} + 1")
78 endif(WITH_WAYLAND_FBDEV)
81 set (WITH_GLESv2_LIB ON CACHE BOOL "Build development library for GLES2 Based Renderers" FORCE)
83 MATH(EXPR NumberOfWaylandRenderers "${NumberOfWaylandRenderers} + 1")
84 endif(WITH_WAYLAND_DRM)
86 if(NumberOfWaylandRenderers GREATER 1)
87 MESSAGE(FATAL_ERROR "More than one Wayland based renderer was selected. This is not supported.")
88 endif(NumberOfWaylandRenderers GREATER 1)
92 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
94 add_subdirectory(cmake/optionalFeatures)
96 add_subdirectory(config)
98 include_directories ("${PROJECT_SOURCE_DIR}/3rdParty/")
100 add_subdirectory (3rdParty)
101 add_subdirectory (LayerManagerPlugins/Communicators/GenericCommunicator)
102 add_subdirectory (LayerManagerPlugins/IpcModules)
103 add_subdirectory (LayerManagerClient/ilmClient)
104 add_subdirectory (LayerManagerCommands)
105 add_subdirectory (LayerManagerService)
106 add_subdirectory (LayerManagerUtils)
107 add_subdirectory (LayerManagerPlugins/Renderers/Graphic)
110 add_subdirectory (LayerManagerPlugins/Renderers/Platform/GLXRenderer)
114 if (WITH_WAYLAND_VIVANTE_GAL)
115 add_subdirectory (LayerManagerPlugins/Renderers/Platform/WaylandVivanteRenderer)
116 else (WITH_WAYLAND_VIVANTE_GAL)
117 add_subdirectory (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer)
118 endif (WITH_WAYLAND_VIVANTE_GAL)
122 add_subdirectory (LayerManagerPlugins/Renderers/Platform/X11GLESRenderer)
125 if (WITH_EGL_EXAMPLE)
126 add_subdirectory (LayerManagerExamples/EGLX11ApplicationExample)
127 add_subdirectory (LayerManagerExamples/EGLX11MockNavigation)
128 endif(WITH_EGL_EXAMPLE)
130 if (WITH_GLX_EXAMPLE)
131 add_subdirectory (LayerManagerExamples/GLXApplicationExample)
132 endif(WITH_GLX_EXAMPLE)
134 if (WITH_CLIENTEXAMPLES)
135 add_subdirectory (LayerManagerExamples/LayerManagerClientExample)
136 add_subdirectory (LayerManagerExamples/LayerManagerToolBox)
137 add_subdirectory (LayerManagerExamples/LayerManagerControl)
138 add_subdirectory (LayerManagerExamples/LayerSceneDescriptionExample)
139 endif(WITH_CLIENTEXAMPLES)
142 add_subdirectory (LayerManagerExamples/EGLWLApplicationExample)
143 add_subdirectory (LayerManagerExamples/EGLWLMockNavigation)
144 endif(WITH_WL_EXAMPLE)
146 # enable ctest if building with tests
147 # run 'make test' after build to run all tests
148 # be aware that some tests require a running layermanager