################################################################################ ## ## Copyright (c) 2007-2009 Illumina, Inc. ## ## This software is covered by the "Illumina Genome Analyzer Software ## License Agreement" and the "Illumina Source Code License Agreement", ## and certain third party copyright/licenses, and any user of this ## source file is bound by the terms therein (see accompanying files ## Illumina_Genome_Analyzer_Software_License_Agreement.pdf and ## Illumina_Source_Code_License_Agreement.pdf and third party ## copyright/license notices). ## ## This file is part of the Consensus Assessment of Sequence And VAriation ## (CASAVA) software package. ## ## file cppunit.cmake ## ## Configuration file for the cppunit subfolders ## ## author Come Raczy ## ################################################################################ ## ## the location of the cppunit shared libraries will be needed for ## LD_LIBRARY_PATH ## if (HAVE_CPPUNIT) get_filename_component(CPPUNIT_LOCATION ${HAVE_CPPUNIT} PATH) include_directories(${CPPUNIT_INCLUDE_DIR}) else (HAVE_CPPUNIT) message(FATAL_ERROR "cppunit not found") endif (HAVE_CPPUNIT) ## ## find all the source files ## file (GLOB CASAVA_TEST_SOURCE_LIST "*.cpp") ## ## create the targets to build the tests ## set(CASAVA_CPPUNIT_TEST_NAME cppunitTest) add_executable(${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} ${CASAVA_TEST_SOURCE_LIST}) set_target_properties(${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} PROPERTIES OUTPUT_NAME ${CASAVA_CPPUNIT_TEST_NAME}) add_test(cppunit_${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} "${CMAKE_CURRENT_BINARY_DIR}/${CASAVA_CPPUNIT_TEST_NAME}") include_directories (${CASAVA_CXX_ALL_INCLUDES} ${CASAVA_OPT_INC} "${CMAKE_SOURCE_DIR}/c++/unittest") set(CASAVA_LINK_LIBRARIES "-lpthread") if (HAVE_ZLIB) set(CASAVA_LINK_LIBRARIES "${CASAVA_LINK_LIBRARIES} -lz") endif (HAVE_ZLIB) if (HAVE_BZLIB) set(CASAVA_LINK_LIBRARIES "${CASAVA_LINK_LIBRARIES} -lbz2") endif (HAVE_BZLIB) if (NOT CASAVA_FORCE_STATIC_LINK) set(CASAVA_LINK_LIBRARIES "${CASAVA_LINK_LIBRARIES} -ldl") endif (NOT CASAVA_FORCE_STATIC_LINK) target_link_libraries (${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} casava_${CASAVA_LIB_DIR} ${CASAVA_AVAILABLE_LIBRARIES} casava_cppunit ${Boost_LIBRARIES} ${HAVE_CPPUNIT} ${CASAVA_LINK_LIBRARIES} ${LIBXML2_LIBRARIES} ${CPPUNIT_LIBRARY}) ## ## Run some sanity check on the source file ## foreach(CASAVA_CPPUNIT_SOURCE_FILE ${CASAVA_TEST_SOURCE_LIST}) get_filename_component(FILE_NAME ${CASAVA_CPPUNIT_SOURCE_FILE} NAME) set(CASAVA_CPPUNIT_BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}") add_custom_command(TARGET ${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} PRE_BUILD COMMAND ${CMAKE_SOURCE_DIR}/opt/bin/check-source.sh ARGS ${CASAVA_CPPUNIT_BINARY_FILE}.checked ${CASAVA_CPPUNIT_SOURCE_FILE} COMMENT "Sanity check on ${CASAVA_CPPUNIT_SOURCE_FILE}") endforeach(CASAVA_CPPUNIT_SOURCE_FILE) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/RegistryNames.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/RegistryNames.txt ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/RegistryNames.txt COMMENT "Copying RegistryNames.txt for ${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME}") ## ## create the targets to run the tests ## add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CASAVA_CPPUNIT_TEST_NAME}.passed COMMAND export LD_LIBRARY_PATH=${CPPUNIT_LOCATION} && ./${CASAVA_CPPUNIT_TEST_NAME} COMMAND touch ${CASAVA_CPPUNIT_TEST_NAME}.passed DEPENDS ${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME} ${CMAKE_CURRENT_BINARY_DIR}/RegistryNames.txt COMMENT "Running unit tests ${CASAVA_UNIQUE_PREFIX}${CASAVA_CPPUNIT_TEST_NAME}") add_custom_target(${CASAVA_UNIQUE_PREFIX}passed ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${CASAVA_CPPUNIT_TEST_NAME}.passed) ## ## Copy the data directory from the source tree if available ## find_path(${CMAKE_CURRENT_SOURCE_DIR}_DATA_DIR data PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH) if (${CMAKE_CURRENT_SOURCE_DIR}_DATA_DIR) message (STATUS "Adding the data subdirectory for the cppunits under ${CASAVA_LIB_DIR}") add_subdirectory (data) add_dependencies(${CASAVA_UNIQUE_PREFIX}passed ${CASAVA_UNIQUE_PREFIX}data) endif (${CMAKE_CURRENT_SOURCE_DIR}_DATA_DIR)