test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Thu, 17 Mar 2011 18:12:03 +0100
changeset 1050 78b9fb1f4454
parent 1040 8e39ccaabf48
parent 1044 66156a3498ea
child 1066 f9e3f73e17f1
permissions -rw-r--r--
Merge #416
     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   maps_test
    37   matching_test
    38   max_cardinality_search_test
    39   max_clique_test
    40   min_cost_arborescence_test
    41   min_cost_flow_test
    42   min_mean_cycle_test
    43   nagamochi_ibaraki_test
    44   path_test
    45   planarity_test
    46   preflow_test
    47   radix_sort_test
    48   random_test
    49   suurballe_test
    50   time_measure_test
    51   unionfind_test
    52 )
    53 
    54 IF(LEMON_HAVE_LP)
    55   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    56     ADD_EXECUTABLE(lp_test lp_test.cc)
    57   ELSE()
    58     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    59   ENDIF()
    60 
    61   SET(LP_TEST_LIBS lemon)
    62 
    63   IF(LEMON_HAVE_GLPK)
    64     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    65   ENDIF()
    66   IF(LEMON_HAVE_CPLEX)
    67     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
    68   ENDIF()
    69   IF(LEMON_HAVE_CLP)
    70     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    71   ENDIF()
    72 
    73   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    74   ADD_TEST(lp_test lp_test)
    75 
    76   IF(WIN32 AND LEMON_HAVE_GLPK)
    77     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    78     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    79     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    80       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    81       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    82       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    83     )
    84   ENDIF()
    85 
    86   IF(WIN32 AND LEMON_HAVE_CPLEX)
    87     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    88     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    89     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    90       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
    91     )
    92   ENDIF()
    93 ENDIF()
    94 
    95 IF(LEMON_HAVE_MIP)
    96   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    97     ADD_EXECUTABLE(mip_test mip_test.cc)
    98   ELSE()
    99     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
   100   ENDIF()
   101 
   102   SET(MIP_TEST_LIBS lemon)
   103 
   104   IF(LEMON_HAVE_GLPK)
   105     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   106   ENDIF()
   107   IF(LEMON_HAVE_CPLEX)
   108     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
   109   ENDIF()
   110   IF(LEMON_HAVE_CBC)
   111     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   112   ENDIF()
   113 
   114   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   115   ADD_TEST(mip_test mip_test)
   116 
   117   IF(WIN32 AND LEMON_HAVE_GLPK)
   118     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   119     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   120     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   121       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   122       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   123       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   124     )
   125   ENDIF()
   126 
   127   IF(WIN32 AND LEMON_HAVE_CPLEX)
   128     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   129     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   130     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   131       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
   132     )
   133   ENDIF()
   134 ENDIF()
   135 
   136 FOREACH(TEST_NAME ${TESTS})
   137   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   138     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   139   ELSE()
   140     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   141   ENDIF()
   142   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   143     IF(TEST_WITH_VALGRIND)
   144       ADD_TEST(${TEST_NAME}
   145         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   146         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   147     ELSE()
   148       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   149     ENDIF()
   150   ADD_DEPENDENCIES(check ${TEST_NAME})
   151 ENDFOREACH()