ADD_CORE_FILES(CMakeLists.txt) FIND_PACKAGE(CppUnit REQUIRED) MACRO(UNIT_TEST) SET(TEST_NAME ${ARGV0}) UNSET(TEST_SRCS) FOREACH(loop_var ${ARGN}) STRING(REGEX MATCH ".*\\.cpp" TEST_SRC_FILE ${loop_var}) IF(TEST_SRC_FILE) SET(TEST_SRCS ${TEST_SRCS} ${loop_var}) ENDIF(TEST_SRC_FILE) ENDFOREACH() # this is a cpp[unit] test IF(TEST_SRCS) INCLUDE_DIRECTORIES(${TulipCoreBuildInclude} ${TulipCoreInclude} ${CppUnit_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/tests/include) LINK_DIRECTORIES(${CppUnit_LIBRARY_DIRS}) ADD_EXECUTABLE(${TEST_NAME} ${TEST_SRCS}) ADD_DEPENDENCIES(runTests ${TEST_NAME}) TARGET_LINK_LIBRARIES(${TEST_NAME} ${LibTulipCoreName} ${CppUnit_LIBRARIES}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${TEST_NAME} ${TEST_NAME}) # otherwise this is a Python test ELSEIF(TULIP_BUILD_PYTHON_COMPONENTS) SET(PYTHON_TEST_MODULE ${ARGV1}) FILE(COPY ${PYTHON_TEST_MODULE}.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${PYTHON_EXECUTABLE} -m unittest ${PYTHON_TEST_MODULE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() # In order to run the tests on windows, we need to add the paths of the dll depencencies (cppunit, tulip, gzstream, yajl) # in the PATH environment variable IF(WIN32) IF(MINGW) STRING(REGEX MATCH ".*dll\\.a" IMPORT_LIBRARY ${CppUnit_LIBRARIES}) STRING(REGEX MATCH ".*dll" DLL_LIBRARY ${CppUnit_LIBRARIES}) IF(IMPORT_LIBRARY) TULIP_GET_DLL_NAME_FROM_IMPORT_LIBRARY(${CppUnit_LIBRARIES} CppUnitDllName) ELSEIF(DLL_LIBRARY) GET_FILENAME_COMPONENT(CppUnitDllName ${CppUnit_LIBRARIES} NAME) ENDIF() ELSE(MINGW) TULIP_GET_DLL_NAME_FROM_IMPORT_LIBRARY(${CppUnit_LIBRARIES} CppUnitDllName) ENDIF(MINGW) IF(CppUnitDllName) TULIP_FIND_EXTERNAL_LIB(${CppUnitDllName} CppUnitDllPath) IF(CppUnitDllPath) GET_FILENAME_COMPONENT(CppUnitDllDir ${CppUnitDllPath} DIRECTORY) ENDIF(CppUnitDllPath) ENDIF() SET(NEWPATH "${CppUnitDllDir};${CMAKE_LIBRARY_PATH};${QT_BINARY_DIR};${PYTHON_HOME_PATH};${CMAKE_BINARY_DIR}/thirdparty/gzstream/;${CMAKE_BINARY_DIR}/thirdparty/yajl/src;${CMAKE_BINARY_DIR}/thirdparty/quazip;${CMAKE_BINARY_DIR}/thirdparty/ftgl") SET(NEWPATH "${NEWPATH};${CMAKE_BINARY_DIR}/library/tulip-core/src;${CMAKE_BINARY_DIR}/library/tulip-ogl/src;${CMAKE_BINARY_DIR}/library/tulip-gui/src;$ENV{PATH}") SET(NEWPATH "${NEWPATH};${CMAKE_BINARY_DIR}/thirdparty/libtess2;${CMAKE_BINARY_DIR}/thirdparty/OGDF;${CMAKE_BINARY_DIR}/library/tulip-ogdf;${CMAKE_BINARY_DIR}/library/tulip-python/src;$ENV{PATH}") STRING(REPLACE "\\;" ";" NEWPATH "${NEWPATH}") STRING(REPLACE ";" "\\;" NEWPATH "${NEWPATH}") ELSE(WIN32) SET(NEWPATH "$ENV{PATH}") ENDIF(WIN32) # add Tulip modules path to PYTHONPATH in order to run the Python tests SET(PYTHONPATH "${CMAKE_BINARY_DIR}/library/tulip-python/modules/;${TULIP_PYTHON_ROOT_FOLDER};${TULIPGUI_PYTHON_ROOT_FOLDER};${CMAKE_BINARY_DIR}/thirdparty/sip-${SIP_VERSION_STR}/siplib") IF(WIN32) STRING(REPLACE "\\;" ";" PYTHONPATH "${PYTHONPATH}") STRING(REPLACE ";" "\\;" PYTHONPATH "${PYTHONPATH}") ELSE(WIN32) STRING(REPLACE ";" ":" PYTHONPATH "${PYTHONPATH}") ENDIF(WIN32) # set tests environment SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES ENVIRONMENT "TULIP_BUILD_DIR=${CMAKE_BINARY_DIR};PYTHONPATH=${PYTHONPATH};PATH=${NEWPATH}") ENDMACRO(UNIT_TEST) ADD_SUBDIRECTORY(library) IF(TULIP_BUILD_PYTHON_COMPONENTS) ADD_DEPENDENCIES(runTests copyTulipPluginsPyInBuild) ENDIF(TULIP_BUILD_PYTHON_COMPONENTS) IF(NOT TULIP_BUILD_CORE_ONLY) ADD_SUBDIRECTORY(plugins) ENDIF(NOT TULIP_BUILD_CORE_ONLY) IF(TULIP_BUILD_PYTHON_COMPONENTS) ADD_SUBDIRECTORY(python) ENDIF(TULIP_BUILD_PYTHON_COMPONENTS) ADD_SUBDIRECTORY(external_plugins_build)