CMakeLists.txt
changeset 901 63e4468c680e
parent 900 659ba4805a48
child 902 a725503acfe9
equal deleted inserted replaced
35:8ba5260cc611 36:668599dd4851
    70 ENDIF()
    70 ENDIF()
    71 SET(LEMON_CXX_WARNING_FLAGS ${CXX_WARNING} CACHE STRING "LEMON warning flags.")
    71 SET(LEMON_CXX_WARNING_FLAGS ${CXX_WARNING} CACHE STRING "LEMON warning flags.")
    72 
    72 
    73 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LEMON_CXX_WARNING_FLAGS}")
    73 SET(CMAKE_CXX_FLAGS "${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 IF(NOT CMAKE_BUILD_TYPE)
   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 ENDIF()
   105 ENDIF()
       
   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 )
    78 
   110 
    79 
   111 
    80 INCLUDE(CheckTypeSize)
   112 INCLUDE(CheckTypeSize)
    81 CHECK_TYPE_SIZE("long long" LONG_LONG)
   113 CHECK_TYPE_SIZE("long long" LONG_LONG)
    82 SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
   114 SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
    83 
   115 
    84 ENABLE_TESTING()
   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 ADD_SUBDIRECTORY(lemon)
   124 ADD_SUBDIRECTORY(lemon)
    89 IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
   125 IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
    90   ADD_SUBDIRECTORY(demo)
   126   ADD_SUBDIRECTORY(demo)
    91   ADD_SUBDIRECTORY(tools)
   127   ADD_SUBDIRECTORY(tools)