# 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}) |