Mercurial > dedupe
view CMakeLists.txt @ 73:c9447697609f
Fixed some issues with raise.
100% function code coverage for Exceptions.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 31 Jan 2013 20:33:01 +0100 |
| parents | b4185273c14a |
| children | 8136057988bc |
line wrap: on
line source
PROJECT(DeDupe) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) #INCLUDE(PrecompiledHeader.cmake) OPTION(COVERAGE "Enable code coverage analysis" OFF) IF(COVERAGE) SET(COVERAGE_FLAGS "--coverage") ENDIF() MACRO(NEW_TEST file) STRING(REPLACE "/" "_" TARGET ${file}) ADD_EXECUTABLE(${TARGET} ${file}.cpp ${TEST_SOURCES}) ADD_TEST(${TARGET} ${TARGET}) TARGET_LINK_LIBRARIES(${TARGET} ${QT_LIBRARIES} ${Boost_LIBRARIES} ${COVERAGE_FLAGS}) ENDMACRO() SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake_Modules/") SET(USE_HEADERS_FOR_BOOST_TEST OFF) SET(Boost_USE_MULTITHREADED ON) SET(Boost_USE_STATIC_RUNTIME OFF) IF(USE_HEADERS_FOR_BOOST_TEST) SET(Boost_USE_STATIC_LIBS OFF) FIND_PACKAGE(Boost COMPONENTS filesystem system) ADD_DEFINITIONS( "-DBOOSTTEST_HEADER_INCLUDE" ) ELSE() SET(Boost_USE_STATIC_LIBS ON) FIND_PACKAGE(Boost COMPONENTS filesystem system test_exec_monitor) ENDIF() IF (Boost_FOUND) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) ADD_DEFINITIONS( "-DHAS_BOOST" ) ENDIF() FIND_PACKAGE(Qt4 COMPONENTS QtOpenGL QtXml QtSql REQUIRED) FIND_PACKAGE(Sqlite3 REQUIRED) INCLUDE(${QT_USE_FILE}) ADD_DEFINITIONS(${QT_DEFINITIONS}) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) SET(CLASS_SOURCES BitArray.cpp BitDecoder.cpp ConfigurationProcessing.cpp DataController.cpp EditDistance.cpp Exception/IOException.cpp Exception/NoSuchValueException.cpp Exception/ValueExistsException.cpp Exception/InvalidDataException.cpp Exception/SQLException.cpp Exception/PermissionException.cpp FastBitDecoder.cpp FileDBLink.cpp HuffmanSet.cpp HuffmanString.cpp MemoryDBLink.cpp SqliteDBLink.cpp UniqueString.cpp ) SET(CLASS_HEADERS BitArray.hpp BitDecoder.hpp ConfigurationProcessing.hpp DataController.hpp EditDistance.hpp Exception/IOException.hpp FastBitDecoder.hpp FileDBLink.hpp MemoryDBLink.hpp RBTree.hpp SqliteDBLink.hpp UniqueString.hpp ) SET(MOC_HEADERS DataController.hpp ) # Returns the moc_xxx.cpp files in the foo_MOC_SRCS variable QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS}) SET(SOURCES ${CLASS_HEADERS} ${CLASS_SOURCES} ${MOC_SOURCES} ) SET(TEST_SOURCES ${CLASS_SOURCES} ${MOC_SOURCES} TestFramework.cpp ) ADD_DEFINITIONS("-Wall -Werror") #Quiet clang, ccache combination IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") ADD_DEFINITIONS("-Qunused-arguments") ENDIF() #Quiet some warnings in headers ADD_DEFINITIONS("-Wno-self-assign") ADD_DEFINITIONS("-Wno-unused-function") ADD_DEFINITIONS("-Wno-unused-variable") #Optimization level #ADD_DEFINITIONS("-O3") ADD_DEFINITIONS("-g2 -fno-inline") ADD_DEFINITIONS(${COVERAGE_FLAGS}) SET(CMAKE_EXE_LINKER_FLAGS "${COVERAGE_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}") ADD_EXECUTABLE(DeDupe Apps/DeDupe.cpp ${SOURCES} ${MOC_SOURCES}) TARGET_LINK_LIBRARIES( DeDupe ${QT_LIBRARIES} ${SQLITE3_LIBRARIES} ${Boost_LIBRARIES} ) ADD_EXECUTABLE( updateDeDupe Apps/updateDeDupe.cpp ${SOURCES} ${MOC_SOURCES} ) TARGET_LINK_LIBRARIES( updateDeDupe ${QT_LIBRARIES} ${SQLITE3_LIBRARIES} ${Boost_LIBRARIES} ) ENABLE_TESTING() NEW_TEST(Exception/TestIOException) NEW_TEST(Exception/TestInvalidDataException) NEW_TEST(Exception/TestSQLException) NEW_TEST(Exception/TestNoSuchValueException) NEW_TEST(Exception/TestValueExistsException) NEW_TEST(Exception/TestPermissionException) NEW_TEST(TestBitArray) NEW_TEST(TestBitDecoder) NEW_TEST(TestDBCache) NEW_TEST(TestEditDistance) NEW_TEST(TestFastBitDecoder) NEW_TEST(TestHuffmanString) NEW_TEST(TestRBTree) NEW_TEST(TestMemoryDBLink) NEW_TEST(TestSqliteDBLink) #ADD_PRECOMPILED_HEADER(TestEditDistance TestFramework.hpp) ADD_CUSTOM_COMMAND(OUTPUT coverage.info COMMAND lcov --no-external --capture --directory ${CMAKE_CURRENT_BINARY_DIR} --base-directory ${CMAKE_CURRENT_SOURCE_DIR} --output-file coverage.info ) ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed2 COMMAND lcov -r coverage.info 'moc_*' --output-file coverage.preprocessed2 DEPENDS coverage.info ) ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed COMMAND lcov -r coverage.preprocessed2 'Test*' --output-file coverage.preprocessed DEPENDS coverage.preprocessed2 ) ADD_CUSTOM_TARGET(coverage_presentation genhtml ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed --output-directory ${CMAKE_CURRENT_BINARY_DIR}/coverage_presentation DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed )
