# HG changeset patch
# User Alpar Juttner <alpar@cs.elte.hu>
# Date 1284112223 -7200
# Node ID 16a62b1bedb9059fee4cb3511cce47c3504fd305
# Parent 4bc24dc3056519699fc8cfa21024f7ee1a124a53
Add 'Maintainer' build type (#391)
- some extra warning and debugs options
- build stops on warning (-Werror)
- tests are built and run by default
diff --git a/CMakeLists.txt b/CMakeLists.txt
a
|
b
|
|
72 | 72 | |
73 | 73 | SET(CMAKE_CXX_FLAGS ${LEMON_CXX_WARNING_FLAGS}) |
74 | 74 | |
| 75 | SET( CMAKE_CXX_FLAGS_MAINTAINER "-Werror -ggdb" CACHE STRING |
| 76 | "Flags used by the C++ compiler during maintainer builds." |
| 77 | FORCE ) |
| 78 | SET( CMAKE_C_FLAGS_MAINTAINER "-Werror" CACHE STRING |
| 79 | "Flags used by the C compiler during maintainer builds." |
| 80 | FORCE ) |
| 81 | SET( CMAKE_EXE_LINKER_FLAGS_MAINTAINER |
| 82 | "-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING |
| 83 | "Flags used for linking binaries during maintainer builds." |
| 84 | FORCE ) |
| 85 | SET( CMAKE_SHARED_LINKER_FLAGS_MAINTAINER |
| 86 | "-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING |
| 87 | "Flags used by the shared libraries linker during maintainer builds." |
| 88 | FORCE ) |
| 89 | MARK_AS_ADVANCED( |
| 90 | CMAKE_CXX_FLAGS_MAINTAINER |
| 91 | CMAKE_C_FLAGS_MAINTAINER |
| 92 | CMAKE_EXE_LINKER_FLAGS_MAINTAINER |
| 93 | CMAKE_SHARED_LINKER_FLAGS_MAINTAINER ) |
| 94 | |
| 95 | IF(CMAKE_CONFIGURATION_TYPES) |
| 96 | LIST(APPEND CMAKE_CONFIGURATION_TYPES Maintainer) |
| 97 | LIST(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES) |
| 98 | SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING |
| 99 | "Add the configurations that we need" |
| 100 | FORCE) |
| 101 | endif() |
| 102 | |
75 | 103 | IF(NOT CMAKE_BUILD_TYPE) |
76 | | SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) |
| 104 | SET(CMAKE_BUILD_TYPE "Release") |
77 | 105 | ENDIF() |
78 | 106 | |
| 107 | SET( CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING |
| 108 | "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel Maintainer." |
| 109 | FORCE ) |
| 110 | |
79 | 111 | |
80 | 112 | INCLUDE(CheckTypeSize) |
81 | 113 | CHECK_TYPE_SIZE("long long" LONG_LONG) |
… |
… |
|
83 | 115 | |
84 | 116 | ENABLE_TESTING() |
85 | 117 | |
86 | | ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND}) |
| 118 | IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer") |
| 119 | ADD_CUSTOM_TARGET(check ALL COMMAND ${CMAKE_CTEST_COMMAND}) |
| 120 | ELSE() |
| 121 | ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND}) |
| 122 | ENDIF() |
87 | 123 | |
88 | 124 | ADD_SUBDIRECTORY(lemon) |
89 | 125 | IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) |
… |
… |
|
110 | 146 | ) |
111 | 147 | ENDIF() |
112 | 148 | |
113 | | IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32) |
| 149 | IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) |
114 | 150 | SET(CPACK_PACKAGE_NAME ${PROJECT_NAME}) |
115 | 151 | SET(CPACK_PACKAGE_VENDOR "EGRES") |
116 | 152 | SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY |
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
a
|
b
|
|
117 | 117 | ENDIF() |
118 | 118 | |
119 | 119 | FOREACH(TEST_NAME ${TESTS}) |
120 | | ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc) |
| 120 | IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer") |
| 121 | ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc) |
| 122 | ELSE() |
| 123 | ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc) |
| 124 | ENDIF() |
121 | 125 | TARGET_LINK_LIBRARIES(${TEST_NAME} lemon) |
122 | 126 | ADD_TEST(${TEST_NAME} ${TEST_NAME}) |
123 | 127 | ADD_DEPENDENCIES(check ${TEST_NAME}) |