test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 29 Jan 2012 22:33:14 +0100
changeset 980 48e17328c155
parent 966 c8fce9beb46a
parent 972 1818cc848005
child 994 20ae244b4779
permissions -rw-r--r--
LEMON_THREADING cmake variable for choosing threading lib (#223)
     1 INCLUDE_DIRECTORIES(
     2   ${PROJECT_SOURCE_DIR}
     3   ${PROJECT_BINARY_DIR}
     4 )
     5 
     6 LINK_DIRECTORIES(
     7   ${PROJECT_BINARY_DIR}/lemon
     8 )
     9 
    10 SET(TEST_WITH_VALGRIND "NO" CACHE STRING
    11   "Run the test with valgrind (YES/NO).")
    12 SET(VALGRIND_FLAGS "" CACHE STRING "Valgrind flags used by the tests.")
    13 
    14 SET(TESTS
    15   adaptors_test
    16   bellman_ford_test
    17   bfs_test
    18   circulation_test
    19   connectivity_test
    20   counter_test
    21   dfs_test
    22   digraph_test
    23   dijkstra_test
    24   dim_test
    25   edge_set_test
    26   error_test
    27   euler_test
    28   fractional_matching_test
    29   gomory_hu_test
    30   graph_copy_test
    31   graph_test
    32   graph_utils_test
    33   hao_orlin_test
    34   heap_test
    35   kruskal_test
    36   lgf_test
    37   maps_test
    38   matching_test
    39   max_cardinality_search_test
    40   max_clique_test
    41   min_cost_arborescence_test
    42   min_cost_flow_test
    43   min_mean_cycle_test
    44   nagamochi_ibaraki_test
    45   path_test
    46   planarity_test
    47   preflow_test
    48   radix_sort_test
    49   random_test
    50   suurballe_test
    51   time_measure_test
    52   unionfind_test
    53 )
    54 
    55 IF(LEMON_HAVE_LP)
    56   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    57     ADD_EXECUTABLE(lp_test lp_test.cc)
    58   ELSE()
    59     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    60   ENDIF()
    61 
    62   SET(LP_TEST_LIBS lemon)
    63 
    64   IF(LEMON_HAVE_GLPK)
    65     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    66   ENDIF()
    67   IF(LEMON_HAVE_CPLEX)
    68     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
    69   ENDIF()
    70   IF(LEMON_HAVE_CLP)
    71     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    72   ENDIF()
    73 
    74   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    75   ADD_TEST(lp_test lp_test)
    76   ADD_DEPENDENCIES(check lp_test)
    77 
    78   IF(WIN32 AND LEMON_HAVE_GLPK)
    79     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    80     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    81     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    82       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    83       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    84       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    85     )
    86   ENDIF()
    87 
    88   IF(WIN32 AND LEMON_HAVE_CPLEX)
    89     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    90     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    91     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    92       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
    93     )
    94   ENDIF()
    95 ENDIF()
    96 
    97 IF(LEMON_HAVE_MIP)
    98   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    99     ADD_EXECUTABLE(mip_test mip_test.cc)
   100   ELSE()
   101     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
   102   ENDIF()
   103 
   104   SET(MIP_TEST_LIBS lemon)
   105 
   106   IF(LEMON_HAVE_GLPK)
   107     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   108   ENDIF()
   109   IF(LEMON_HAVE_CPLEX)
   110     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
   111   ENDIF()
   112   IF(LEMON_HAVE_CBC)
   113     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   114   ENDIF()
   115 
   116   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   117   ADD_TEST(mip_test mip_test)
   118   ADD_DEPENDENCIES(check mip_test)
   119 
   120   IF(WIN32 AND LEMON_HAVE_GLPK)
   121     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   122     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   123     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   124       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   125       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   126       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   127     )
   128   ENDIF()
   129 
   130   IF(WIN32 AND LEMON_HAVE_CPLEX)
   131     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   132     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   133     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   134       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
   135     )
   136   ENDIF()
   137 ENDIF()
   138 
   139 FOREACH(TEST_NAME ${TESTS})
   140   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   141     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   142   ELSE()
   143     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   144   ENDIF()
   145   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   146     IF(TEST_WITH_VALGRIND)
   147       ADD_TEST(${TEST_NAME}
   148         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   149         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   150     ELSE()
   151       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   152     ENDIF()
   153   ADD_DEPENDENCIES(check ${TEST_NAME})
   154 ENDFOREACH()