test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Tue, 06 Aug 2013 09:10:18 +0200
changeset 804 6039b32a2351
parent 780 1818cc848005
permissions -rw-r--r--
Unused local typedefs warning pragma is only applied to gcc>=4.8 (#470)
     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   arc_look_up_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   gomory_hu_test
    29   graph_copy_test
    30   graph_test
    31   graph_utils_test
    32   hao_orlin_test
    33   heap_test
    34   kruskal_test
    35   lgf_test
    36   maps_test
    37   matching_test
    38   min_cost_arborescence_test
    39   min_cost_flow_test
    40   path_test
    41   preflow_test
    42   radix_sort_test
    43   random_test
    44   suurballe_test
    45   time_measure_test
    46   unionfind_test
    47 )
    48 
    49 IF(LEMON_HAVE_LP)
    50   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    51     ADD_EXECUTABLE(lp_test lp_test.cc)
    52   ELSE()
    53     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    54   ENDIF()
    55 
    56   SET(LP_TEST_LIBS lemon)
    57 
    58   IF(LEMON_HAVE_GLPK)
    59     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    60   ENDIF()
    61   IF(LEMON_HAVE_CPLEX)
    62     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
    63   ENDIF()
    64   IF(LEMON_HAVE_CLP)
    65     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    66   ENDIF()
    67 
    68   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    69   ADD_TEST(lp_test lp_test)
    70   ADD_DEPENDENCIES(check lp_test)
    71 
    72   IF(WIN32 AND LEMON_HAVE_GLPK)
    73     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    74     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    75     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    76       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    77       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    78       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    79     )
    80   ENDIF()
    81 
    82   IF(WIN32 AND LEMON_HAVE_CPLEX)
    83     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    84     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    85     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    86       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
    87     )
    88   ENDIF()
    89 ENDIF()
    90 
    91 IF(LEMON_HAVE_MIP)
    92   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    93     ADD_EXECUTABLE(mip_test mip_test.cc)
    94   ELSE()
    95     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
    96   ENDIF()
    97 
    98   SET(MIP_TEST_LIBS lemon)
    99 
   100   IF(LEMON_HAVE_GLPK)
   101     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   102   ENDIF()
   103   IF(LEMON_HAVE_CPLEX)
   104     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
   105   ENDIF()
   106   IF(LEMON_HAVE_CBC)
   107     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   108   ENDIF()
   109 
   110   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   111   ADD_TEST(mip_test mip_test)
   112   ADD_DEPENDENCIES(check mip_test)
   113 
   114   IF(WIN32 AND LEMON_HAVE_GLPK)
   115     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   116     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   117     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   118       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   119       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   120       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   121     )
   122   ENDIF()
   123 
   124   IF(WIN32 AND LEMON_HAVE_CPLEX)
   125     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   126     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   127     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   128       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
   129     )
   130   ENDIF()
   131 ENDIF()
   132 
   133 FOREACH(TEST_NAME ${TESTS})
   134   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   135     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   136   ELSE()
   137     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   138   ENDIF()
   139   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   140     IF(TEST_WITH_VALGRIND)
   141       ADD_TEST(${TEST_NAME}
   142         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   143         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   144     ELSE()
   145       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   146     ENDIF()
   147   ADD_DEPENDENCIES(check ${TEST_NAME})
   148 ENDFOREACH()