Changeset 5971 for branches/newapi

Show
Ignore:
Timestamp:
12/31/07 09:03:01 (11 months ago)
Author:
erijo
Message:

Refactored cmake code

Location:
branches/newapi/licq
Files:
4 added
1 modified

Legend:

Unmodified
Added
Removed
  • branches/newapi/licq/CMakeLists.txt

    r5820 r5971  
    88include(DetermineDlopenBinding) 
    99include(MacroEnsureVersion) 
    10 include(TestCXXAcceptsFlag) 
    1110 
     11# Default settings 
     12include(DefineProjectDefaults) 
    1213 
    13 # Use DEBUG as default build type for now 
    14 if (NOT CMAKE_BUILD_TYPE) 
    15   set(CMAKE_BUILD_TYPE Debug CACHE STRING 
    16     "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel Coverage." 
    17     FORCE) 
    18 endif (NOT CMAKE_BUILD_TYPE) 
     14# Configure compiler flags 
     15include(DefineCompilerFlags) 
    1916 
    20 # Define DEBUG when doing debug builds. 
    21 set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG" CACHE STRING 
    22   "Flags used by the compiler during debug builds." FORCE) 
    23 set(CMAKE_C_FLAGS_DEBUG "-g -DDEBUG" CACHE STRING 
    24   "Flags used by the compiler during debug builds." FORCE) 
     17# Adds a new build type: coverage 
     18include(BuildTypeCoverage) 
    2519 
    26  
    27 ################################################################################ 
    28 # Adds a new build type: coverage 
    29 ################################################################################ 
    30  
    31 set(CMAKE_CXX_FLAGS_COVERAGE "-g -DDEBUG -O0 -Wall -fprofile-arcs -ftest-coverage" 
    32   CACHE STRING "Flags used by the C++ compiler during coverage builds." FORCE) 
    33  
    34 set(CMAKE_C_FLAGS_COVERAGE "-g -DDEBUG -O0 -Wall -fprofile-arcs -ftest-coverage" 
    35   CACHE STRING "Flags used by the C compiler during coverage builds." FORCE) 
    36  
    37 set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "-fprofile-arcs -ftest-coverage" 
    38   CACHE STRING "Flags used for linking binaries during coverage builds." FORCE) 
    39  
    40 set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "-fprofile-arcs -ftest-coverage" 
    41   CACHE STRING "Flags used by the shared libraries linker during coverage builds." 
    42   FORCE) 
    43  
    44 mark_as_advanced(CMAKE_CXX_FLAGS_COVERAGE CMAKE_C_FLAGS_COVERAGE 
    45   CMAKE_EXE_LINKER_FLAGS_COVERAGE CMAKE_SHARED_LINKER_FLAGS_COVERAGE) 
    46  
     20# Unit-test stuff 
    4721string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) 
    4822string(COMPARE EQUAL ${CMAKE_BUILD_TYPE} "COVERAGE" UNIT_TESTS_COVERAGE) 
     
    5630endif (UNIT_TESTS_COVERAGE) 
    5731 
    58  
    5932# Option to control building and running of unit-tests 
    6033option(BUILD_UNIT_TESTS "Build unit-tests" ON) 
     
    6740  set(RUN_UNIT_TESTS OFF) 
    6841endif (BUILD_UNIT_TESTS) 
    69  
    70  
    71 # Don't link executable with -rpath 
    72 SET(CMAKE_SKIP_RPATH ON) 
    73  
    74  
    75 # Configure compiler flags 
    76 check_cxx_accepts_flag(-Wall CXX_ACCEPTS_WALL) 
    77 if (CXX_ACCEPTS_WALL) 
    78   add_definitions(-Wall) 
    79 endif (CXX_ACCEPTS_WALL) 
    80  
    81 check_cxx_accepts_flag(-Wextra CXX_ACCEPTS_WEXTRA) 
    82 if (CXX_ACCEPTS_WEXTRA) 
    83   add_definitions(-Wextra) 
    84 endif (CXX_ACCEPTS_WEXTRA) 
    85  
    86 ## -fvisibility=hidden does not work with all boost libs yet 
    87 # if (CMAKE_COMPILER_IS_GNUCXX) 
    88 #   check_cxx_accepts_flag(-fvisibility=hidden CXX_ACCEPTS_FVISIBILITY) 
    89 #   if (CXX_ACCEPTS_FVISIBILITY) 
    90 #     add_definitions(-fvisibility=hidden) 
    91 #     add_definitions(-DLICQ_HAVE_GCC_VISIBILITY)     
    92 # 
    93 #     # Only add -fvisibility-inlines-hidden for g++ versions >= 4.2  
    94 #     exec_program(${CMAKE_CXX_COMPILER} ARGS -dumpversion 
    95 #       OUTPUT_VARIABLE gxx_version) 
    96 #     macro_ensure_version("4.2.0" "${gxx_version}" GXX_IS_NEWER_THAN_4_2) 
    97 #     if (GXX_IS_NEWER_THAN_4_2) 
    98 #       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") 
    99 #     endif (GXX_IS_NEWER_THAN_4_2) 
    100 #   endif (CXX_ACCEPTS_FVISIBILITY) 
    101 # endif (CMAKE_COMPILER_IS_GNUCXX) 
    10242 
    10343 
     
    14686check_function_exists(strerror HAVE_STRERROR) 
    14787 
    148  
    14988# To find licq directory (public headers) 
    15089include_directories(BEFORE ${PROJECT_SOURCE_DIR}) 
     
    15796include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) 
    15897 
    159  
    16098# Generate config.h 
    16199configure_file( 
     
    167105include(cmake/LicqVersion.cmake) 
    168106 
    169  
    170 # Command to generate doxygen docs (make docs) 
    171 add_custom_target(docs 
    172   doxygen ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile  
    173   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 
    174   COMMENT "Generating doxygen documentation" VERBATIM 
    175 ) 
    176  
    177 configure_file( 
    178   ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake 
    179   ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile 
    180   @ONLY 
    181 ) 
    182  
     107# Target to generate doxygen docs (make docs) 
     108include(DoxygenDocsTarget) 
    183109 
    184110add_subdirectory(bin)