Jamfile.v2 8.11 KB
# Copyright (c) 2002 Trustees of Indiana University
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

# Define SGB (stanford graph base top level directory) and
# LEDA (also top level directory) at the command line of jam using -s

import modules ;
import path ;
import ../../config/checks/config : requires ;

path-constant TEST_DIR : . ;

path-constant PLANAR_INPUT_FILES : ./planar_input_graphs ;

path-constant CYCLE_RATIO_INPUT_FILE : ./cycle_ratio_s382.90.dot ;

path-constant METIS_INPUT_FILE : ./weighted_graph.gr ;

alias graph_test_regular :
    # test_graphs will eventually defined a framework for testing the structure
    # and implementation of graph data structures and adaptors.
    [ run test_graphs.cpp ]
    [ run index_graph.cpp ]     # TODO: Make this part of the test_graphs framework
    [ run labeled_graph.cpp ]
    [ run finish_edge_bug.cpp ]

    [ run transitive_closure_test.cpp /boost/timer//boost_timer ]
    [ run transitive_closure_test2.cpp ]
    [ compile adj_list_cc.cpp ]

    #[ run adj_list_invalidation.cpp ]
    [ run adj_list_edge_list_set.cpp ]
    [ run adj_list_loops.cpp ]
    [ compile adj_matrix_cc.cpp ]
    [ run bfs.cpp ]
    [ compile bfs_cc.cpp ]
    [ run bellman-test.cpp ]
    [ run betweenness_centrality_test.cpp : 100 ]
    [ run bidir_remove_edge.cpp ]
    [ run bipartite_test.cpp ]
    [ run csr_graph_test.cpp : : : : : <variant>release ]
    [ run dag_longest_paths.cpp ]
    [ run dfs.cpp ]
    [ run undirected_dfs.cpp ]
    [ compile dfs_cc.cpp ]
    [ compile dijkstra_cc.cpp ]
    [ run dijkstra_heap_performance.cpp /boost/timer//boost_timer : 10000 ]
    [ run dijkstra_no_color_map_compare.cpp : 10000 ]
    [ run disjoint_set_test.cpp ]
    [ run dominator_tree_test.cpp ]

    # Unused and deprecated.
    #[ run relaxed_heap_test.cpp : 5000 15000 ]

    [ compile edge_list_cc.cpp ]
    [ compile filtered_graph_cc.cpp ]
    [ run filter_graph_vp_test.cpp ]
    [ run generator_test.cpp ]
    [ run graph.cpp : : : <define>TEST=1 : graph_1 ]
    [ run graph.cpp : : : <define>TEST=2 : graph_2 ]
    [ run graph.cpp : : : <define>TEST=3 : graph_3 ]
    [ run graph.cpp : : : <define>TEST=4 : graph_4 ]
    [ run graph.cpp : : : <define>TEST=5 : graph_5 ]
    [ run graph.cpp : : : <define>TEST=6 : graph_6 ]
    [ run graph.cpp : : : <define>TEST=7 : graph_7 ]
    [ run graph.cpp : : : <define>TEST=8 : graph_8 ]
    [ run graph.cpp : : : <define>TEST=9 : graph_9 ]
    [ compile graph_concepts.cpp ]
    [ run graphviz_test.cpp
            ../build//boost_graph
            ../../regex/build//boost_regex : --log_level=all ]
    [ run metis_test.cpp : $(METIS_INPUT_FILE) ]
    [ run gursoy_atun_layout_test.cpp  : : : [ requires cxx11_noexcept cxx11_rvalue_references sfinae_expr cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_hdr_initializer_list cxx11_hdr_chrono cxx11_thread_local cxx11_constexpr cxx11_nullptr cxx11_numeric_limits cxx11_decltype cxx11_hdr_array cxx11_hdr_atomic cxx11_hdr_type_traits cxx11_allocator cxx11_explicit_conversion_operators ] ]
    [ run layout_test.cpp : : : <test-info>always_show_run_output <toolset>intel:<debug-symbols>off [ requires cxx11_noexcept cxx11_rvalue_references sfinae_expr cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_hdr_initializer_list cxx11_hdr_chrono cxx11_thread_local cxx11_constexpr cxx11_nullptr cxx11_numeric_limits cxx11_decltype cxx11_hdr_array cxx11_hdr_atomic cxx11_hdr_type_traits cxx11_allocator cxx11_explicit_conversion_operators ] ]

    [ run serialize.cpp
          ../../serialization/build//boost_serialization
      : : : ]

    [ compile reverse_graph_cc.cpp ]
    [ run sequential_vertex_coloring.cpp ]

    # TODO: Merge these into a single test framework.
    [ run subgraph.cpp ]
    [ run subgraph_bundled.cpp ]
    [ run subgraph_add.cpp : $(TEST_DIR) ]
    [ run subgraph_props.cpp ]

    [ run isomorphism.cpp ]
    [ run adjacency_matrix_test.cpp ]
    [ compile vector_graph_cc.cpp ]
    [ compile copy.cpp ]
    [ compile swap.cpp ]
    [ compile property_iter.cpp : <define>TEST=1 : property_iter_1 ]
    [ compile property_iter.cpp : <define>TEST=2 : property_iter_2 ]
    [ compile property_iter.cpp : <define>TEST=3 : property_iter_3 ]
    [ compile property_iter.cpp : <define>TEST=4 : property_iter_4 ]
    [ compile property_iter.cpp : <define>TEST=5 : property_iter_5 ]
    [ compile property_iter.cpp : <define>TEST=6 : property_iter_6 ]
    [ compile property_iter.cpp : <define>TEST=7 : property_iter_7 ]
    [ compile property_iter.cpp : <define>TEST=8 : property_iter_8 ]
    [ compile property_iter.cpp : <define>TEST=9 : property_iter_9 ]
    [ run bundled_properties.cpp ]
    [ run floyd_warshall_test.cpp ]
    [ run astar_search_test.cpp ]
    [ run biconnected_components_test.cpp ]
    [ run min_degree_empty.cpp ]
    [ run cuthill_mckee_ordering.cpp ]
    [ run king_ordering.cpp ]
    [ run matching_test.cpp ]
    [ run weighted_matching_test.cpp ]
    [ run max_flow_test.cpp ]
    [ run boykov_kolmogorov_max_flow_test.cpp ]
    [ run cycle_ratio_tests.cpp ../build//boost_graph ../../regex/build//boost_regex : $(CYCLE_RATIO_INPUT_FILE) ]
    [ run basic_planarity_test.cpp ]
    [ run make_connected_test.cpp ]
    [ run make_bicon_planar_test.cpp ]
    [ run make_maximal_planar_test.cpp ]
    [ run named_vertices_test.cpp ]
    [ run r_c_shortest_paths_test.cpp ]
    [ run rcsp_custom_vertex_id.cpp ]
    [ run is_straight_line_draw_test.cpp ]
    [ run metric_tsp_approx.cpp /boost/timer//boost_timer : metric_tsp_approx.graph : : ]
    [ compile dimacs.cpp ]
    [ run bron_kerbosch_all_cliques.cpp ]
    [ run tiernan_all_cycles.cpp ]
    [ run closeness_centrality.cpp ]
    [ run degree_centrality.cpp ]
    [ run mean_geodesic.cpp ]
    [ run eccentricity.cpp ]
    [ run clustering_coefficient.cpp ]
    [ run core_numbers_test.cpp ]
    [ run read_propmap.cpp ]
    [ run mcgregor_subgraphs_test.cpp ../build//boost_graph ]
    [ compile grid_graph_cc.cpp ]
    [ run grid_graph_test.cpp ]
    [ run incremental_components_test.cpp ]
    [ run two_graphs_common_spanning_trees_test.cpp ]
    [ run random_spanning_tree_test.cpp ../build//boost_graph ]
    [ run random_matching_test.cpp : 1000 1020 ]
    [ run graphml_test.cpp ../build//boost_graph : : "graphml_test.xml" ]
    [ run mas_test.cpp : $(TEST_DIR) ]
    [ run stoer_wagner_test.cpp : $(TEST_DIR) ]
    [ compile filtered_graph_properties_dijkstra.cpp ]
    [ run vf2_sub_graph_iso_test.cpp ]
    [ run vf2_sub_graph_iso_test_2.cpp ]
    [ run hawick_circuits.cpp ]
    [ run successive_shortest_path_nonnegative_weights_test.cpp ]
    [ run cycle_canceling_test.cpp ]
    [ run strong_components_test.cpp ]
    [ run find_flow_cost_bundled_properties_and_named_params_test.cpp ]
    [ run max_flow_algorithms_bundled_properties_and_named_params.cpp ]
    [ run delete_edge.cpp ]
    [ run johnson-test.cpp ]
    [ run lvalue_pmap.cpp ]
    ;

alias graph_test_with_filesystem : :
        # The tests below started failing to compile for xcode with cxxstd=11
        # due to issues with constexpr ctors in Boost.Filesystem
        <target-os>darwin
        <cxxstd>11
    ;

alias graph_test_with_filesystem :
    [ run all_planar_input_files_test.cpp
        ../../filesystem/build
        ../../system/build
        : $(PLANAR_INPUT_FILES) ]
    [ run parallel_edges_loops_test.cpp
        ../../filesystem/build
        ../../system/build
        : $(PLANAR_INPUT_FILES) ]
    ;

test-suite graph_test :
    graph_test_regular
    graph_test_with_filesystem
    ;

# Run SDB tests only when -sSDB= is set.
local SDB = [ modules.peek : SDB ] ;
if $(SDB)
{
    local sdb-root = [ path.root [ path.make $(SDB) ] [ path.pwd ] ] ;

    compile stanford_graph_cc.cpp :
        <include>$(sdb-root) ;
}

# Run LEDA tests only when -sLEDA= is set.
local LEDA = [ modules.peek : LEDA ] ;
if $(LEDA)
{
    local leda-root = [ path.root [ path.make $(LEDA) ] [ path.pwd ] ] ;
    local leda-include = [ path.join $(leda-root) incl ] ;

    compile leda_graph_cc.cpp :
        <include>$(leda-include) ;
}

build-project ../example ;