test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Wed, 06 May 2015 11:28:38 +0200
changeset 1344 ca4e4a5e9b6e
parent 1233 490d89913a17
child 1350 a037254714b3
permissions -rw-r--r--
CMP0026 cmake policy setting (needed by cmake 3.2+ on WIN32)
     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   bellman_ford_test
    18   bfs_test
    19   bpgraph_test
    20   circulation_test
    21   connectivity_test
    22   counter_test
    23   dfs_test
    24   digraph_test
    25   dijkstra_test
    26   dim_test
    27   edge_set_test
    28   error_test
    29   euler_test
    30   fractional_matching_test
    31   gomory_hu_test
    32   graph_copy_test
    33   graph_test
    34   graph_utils_test
    35   hao_orlin_test
    36   heap_test
    37   kruskal_test
    38   lgf_reader_writer_test
    39   lgf_test
    40   maps_test
    41   matching_test
    42   max_cardinality_search_test
    43   max_clique_test
    44   max_flow_test
    45   min_cost_arborescence_test
    46   min_cost_flow_test
    47   min_mean_cycle_test
    48   nagamochi_ibaraki_test
    49   path_test
    50   planarity_test
    51   radix_sort_test
    52   random_test
    53   suurballe_test
    54   time_measure_test
    55   tsp_test
    56   unionfind_test
    57 )
    58 
    59 IF(LEMON_HAVE_LP)
    60   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    61     ADD_EXECUTABLE(lp_test lp_test.cc)
    62   ELSE()
    63     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    64   ENDIF()
    65 
    66   SET(LP_TEST_LIBS lemon)
    67 
    68   IF(LEMON_HAVE_GLPK)
    69     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    70   ENDIF()
    71   IF(LEMON_HAVE_CPLEX)
    72     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${ILOG_LIBRARIES})
    73   ENDIF()
    74   IF(LEMON_HAVE_CLP)
    75     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    76   ENDIF()
    77   IF(LEMON_HAVE_SOPLEX)
    78     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${SOPLEX_LIBRARIES})
    79   ENDIF()
    80 
    81   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    82   ADD_TEST(lp_test lp_test)
    83   ADD_DEPENDENCIES(check lp_test)
    84 
    85   IF(WIN32 AND LEMON_HAVE_GLPK)
    86     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    87     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    88     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    89       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    90       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    91       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    92     )
    93   ENDIF()
    94 
    95   IF(WIN32 AND LEMON_HAVE_CPLEX)
    96     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    97     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    98     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    99       COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
   100     )
   101   ENDIF()
   102 ENDIF()
   103 
   104 IF(LEMON_HAVE_MIP)
   105   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   106     ADD_EXECUTABLE(mip_test mip_test.cc)
   107   ELSE()
   108     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
   109   ENDIF()
   110 
   111   SET(MIP_TEST_LIBS lemon)
   112 
   113   IF(LEMON_HAVE_GLPK)
   114     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   115   ENDIF()
   116   IF(LEMON_HAVE_CPLEX)
   117     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${ILOG_LIBRARIES})
   118   ENDIF()
   119   IF(LEMON_HAVE_CBC)
   120     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   121   ENDIF()
   122 
   123   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   124   ADD_TEST(mip_test mip_test)
   125   ADD_DEPENDENCIES(check mip_test)
   126 
   127   IF(WIN32 AND LEMON_HAVE_GLPK)
   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 ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   132       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   133       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   134     )
   135   ENDIF()
   136 
   137   IF(WIN32 AND LEMON_HAVE_CPLEX)
   138     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   139     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   140     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   141       COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
   142     )
   143   ENDIF()
   144 ENDIF()
   145 
   146 FOREACH(TEST_NAME ${TESTS})
   147   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   148     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   149   ELSE()
   150     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   151   ENDIF()
   152   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   153     IF(TEST_WITH_VALGRIND)
   154       ADD_TEST(${TEST_NAME}
   155         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   156         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   157     ELSE()
   158       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   159     ENDIF()
   160   ADD_DEPENDENCIES(check ${TEST_NAME})
   161 ENDFOREACH()