summaryrefslogtreecommitdiff
path: root/config/CMakeLists.txt
blob: 5393626d3d8db54c160f1ff36033bd55731d124f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
############################################################################
# 
# Copyright 2010, 2011 BMW Car IT 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.
#
############################################################################

cmake_minimum_required (VERSION 2.6)

# check configuration

message(STATUS "Checking configuration, if valid.")
if (WITH_TESTS AND WITH_STATIC_LIBRARIES)
    message(FATAL_ERROR "unit tests (WITH_TESTS=ON) are not supported with static linking (WITH_STATIC_LIBRARIES=ON)")
endif (WITH_TESTS AND WITH_STATIC_LIBRARIES)


# generate cmake configuration header file, includes information on the
# project configuration, compiler settings, ...

message(STATUS "Generating config.h header file with build system configuration.")

foreach(FLAG ${BUILD_FLAG_LIST})
    SET(EXPORTED_BUILD_FLAGS "${EXPORTED_BUILD_FLAGS}${FLAG}\n")
endforeach(FLAG ${BUILD_FLAG_LIST})

LIST(SORT BUILD_FLAG_ARRAY)
foreach(FLAG ${BUILD_FLAG_ARRAY})
    SET(EXPORTED_BUILD_FLAG_ARRAY "${EXPORTED_BUILD_FLAG_ARRAY}    { DEBUG_FLAG, \"${FLAG} = ${${FLAG}}\" },\n")
endforeach(FLAG ${BUILD_FLAG_ARRAY})

foreach(PLUGIN ${STATICALLY_LINKED_PLUGINS})
    SET(STATIC_PLUGIN_REGISTRATION "${STATIC_PLUGIN_REGISTRATION} \\\n        REGISTER_PLUGIN(${PLUGIN})")
endforeach(PLUGIN ${STATICALLY_LINKED_PLUGINS})

configure_file(
    ${CMAKE_SOURCE_DIR}/config/res/config.h.cmake
    ${CMAKE_SOURCE_DIR}/config/config.h.1stpass
)

configure_file(
    ${CMAKE_SOURCE_DIR}/config/config.h.1stpass
    ${CMAKE_SOURCE_DIR}/config/config.h
)