Mercurial > dedupe
view CMakeLists.txt @ 78:9744ec195be3
Encapsulate EditDistance with caching.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 10 Oct 2013 01:07:52 +0200 |
| parents | a827f3687c4a |
| children | 114be42a612c |
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() SET(ALL_TESTS) 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}) ADD_CUSTOM_COMMAND(OUTPUT "BUILD_${TARGET}" COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${TARGET} COMMENT "Building test ${TARGET}" ) SET(BUILD_ALL_TESTS ${BUILD_ALL_TESTS} BUILD_${TARGET}) SET(ALL_TESTS ${ALL_TESTS} RUN_${TARGET}) ADD_CUSTOM_TARGET(RUN_${TARGET} ${CMAKE_BINARY_DIR}/${TARGET} --log_level=nothing --report_level=no DEPENDS zero_counters_test_with_base BUILD_${TARGET} COMMENT "Running test ${TARGET}" ) 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 CachedEditDistance.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 ) SET(CLASS_HEADERS BitArray.hpp BitDecoder.hpp CachedEditDistance.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} TestDataBase.cpp 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(TestSQLGenerator) NEW_TEST(TestFileDBLink) 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 build_tests COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target all) ADD_CUSTOM_TARGET(zero_counters_test_with_base lcov -q -z -d ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${BUILD_ALL_TESTS} ) ADD_CUSTOM_COMMAND(OUTPUT test_with_base COMMAND true DEPENDS zero_counters_test_with_base ${ALL_TESTS} COMMENT "All test have run" ) ADD_CUSTOM_COMMAND(OUTPUT coverage_base_raw.info COMMAND lcov --no-external --capture --initial --directory ${CMAKE_CURRENT_BINARY_DIR} --base-directory ${CMAKE_CURRENT_SOURCE_DIR} --output-file coverage_base_raw.info ) ADD_CUSTOM_COMMAND(OUTPUT coverage_test.info COMMAND lcov -q --no-external --capture --directory ${CMAKE_CURRENT_BINARY_DIR} --base-directory ${CMAKE_CURRENT_SOURCE_DIR} --output-file coverage_test.info DEPENDS test_with_base ) ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed2 COMMAND lcov -q -r coverage_test.info 'moc_*' --output-file coverage.preprocessed2 DEPENDS coverage_test.info COMMENT "Removing \"moc_\"-files" ) ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed COMMAND lcov -q -r coverage.preprocessed2 'Test*' --output-file coverage.preprocessed DEPENDS coverage.preprocessed2 COMMENT "Removing \"Test\"-files" ) ADD_CUSTOM_TARGET(coverage_presentation genhtml -q ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed --output-directory ${CMAKE_CURRENT_BINARY_DIR}/coverage_presentation DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed ) ADD_CUSTOM_TARGET(coverage_base DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/coverage_base.info )
