cmake_minimum_required(VERSION 3.7)
project(cegar)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES
        src/search/algorithms/dynamic_bitset.h
        src/search/algorithms/equivalence_relation.cc
        src/search/algorithms/equivalence_relation.h
        src/search/algorithms/int_packer.cc
        src/search/algorithms/int_packer.h
        src/search/algorithms/max_cliques.cc
        src/search/algorithms/max_cliques.h
        src/search/algorithms/ordered_set.h
        src/search/algorithms/priority_queues.h
        src/search/algorithms/sccs.cc
        src/search/algorithms/sccs.h
        src/search/algorithms/segmented_vector.h
        src/search/cegar/abstract_search.cc
        src/search/cegar/abstract_search.h
        src/search/cegar/abstract_state.cc
        src/search/cegar/abstract_state.h
        src/search/cegar/abstraction.cc
        src/search/cegar/abstraction.h
        src/search/cegar/additive_cartesian_heuristic.cc
        src/search/cegar/additive_cartesian_heuristic.h
        src/search/cegar/cost_saturation.cc
        src/search/cegar/cost_saturation.h
        src/search/cegar/domains.cc
        src/search/cegar/domains.h
        src/search/cegar/max_cartesian_heuristic.cc
        src/search/cegar/max_cartesian_heuristic.h
        src/search/cegar/ocp_heuristic.cc
        src/search/cegar/ocp_heuristic.h
        src/search/cegar/refinement_hierarchy.cc
        src/search/cegar/refinement_hierarchy.h
        src/search/cegar/scp_optimizer.cc
        src/search/cegar/scp_optimizer.h
        src/search/cegar/split_selector.cc
        src/search/cegar/split_selector.h
        src/search/cegar/subtask_generators.cc
        src/search/cegar/subtask_generators.h
        src/search/cegar/transition.h
        src/search/cegar/transition_system.cc
        src/search/cegar/transition_system.h
        src/search/cegar/transition_updater.cc
        src/search/cegar/transition_updater.h
        src/search/cegar/utils.cc
        src/search/cegar/utils.h
        src/search/cegar/utils_landmarks.cc
        src/search/cegar/utils_landmarks.h
        src/search/cost_saturation/abstraction.cc
        src/search/cost_saturation/abstraction.h
        src/search/cost_saturation/abstraction_generator.cc
        src/search/cost_saturation/abstraction_generator.h
        src/search/cost_saturation/canonical_heuristic.cc
        src/search/cost_saturation/canonical_heuristic.h
        src/search/cost_saturation/cartesian_abstraction_generator.cc
        src/search/cost_saturation/cartesian_abstraction_generator.h
        src/search/cost_saturation/cost_partitioned_heuristic.cc
        src/search/cost_saturation/cost_partitioned_heuristic.h
        src/search/cost_saturation/cost_partitioning_collection_generator.cc
        src/search/cost_saturation/cost_partitioning_collection_generator.h
        src/search/cost_saturation/cost_partitioning_generator.cc
        src/search/cost_saturation/cost_partitioning_generator.h
        src/search/cost_saturation/cost_partitioning_generator_greedy.cc
        src/search/cost_saturation/cost_partitioning_generator_greedy.h
        src/search/cost_saturation/cost_partitioning_heuristic.cc
        src/search/cost_saturation/cost_partitioning_heuristic.h
        src/search/cost_saturation/diversifier.cc
        src/search/cost_saturation/diversifier.h
        src/search/cost_saturation/explicit_abstraction.cc
        src/search/cost_saturation/explicit_abstraction.h
        src/search/cost_saturation/explicit_projection_factory.cc
        src/search/cost_saturation/explicit_projection_factory.h
        src/search/cost_saturation/max_heuristic.cc
        src/search/cost_saturation/max_heuristic.h
        src/search/cost_saturation/optimal_cost_partitioning_heuristic.cc
        src/search/cost_saturation/optimal_cost_partitioning_heuristic.h
        src/search/cost_saturation/order_generator_lookahead.cc
        src/search/cost_saturation/order_generator_lookahead.h
        src/search/cost_saturation/order_optimizer.cc
        src/search/cost_saturation/order_optimizer.h
        src/search/cost_saturation/projection.cc
        src/search/cost_saturation/projection.h
        src/search/cost_saturation/projection_generator.cc
        src/search/cost_saturation/projection_generator.h
        src/search/cost_saturation/saturated_cost_partitioning_heuristic.cc
        src/search/cost_saturation/saturated_cost_partitioning_heuristic.h
        src/search/cost_saturation/saturated_cost_partitioning_online_heuristic.cc
        src/search/cost_saturation/saturated_cost_partitioning_online_heuristic.h
        src/search/cost_saturation/scoring_functions.cc
        src/search/cost_saturation/scoring_functions.h
        src/search/cost_saturation/scp_generator_tree_search.cc
        src/search/cost_saturation/scp_generator_tree_search.h
        src/search/cost_saturation/types.h
        src/search/cost_saturation/uniform_cost_partitioning_heuristic.cc
        src/search/cost_saturation/uniform_cost_partitioning_heuristic.h
        src/search/cost_saturation/utils.cc
        src/search/cost_saturation/utils.h
        src/search/cost_saturation/zero_one_cost_partitioning_heuristic.cc
        src/search/cost_saturation/zero_one_cost_partitioning_heuristic.h
        src/search/evaluators/combining_evaluator.cc
        src/search/evaluators/combining_evaluator.h
        src/search/evaluators/const_evaluator.cc
        src/search/evaluators/const_evaluator.h
        src/search/evaluators/g_evaluator.cc
        src/search/evaluators/g_evaluator.h
        src/search/evaluators/max_evaluator.cc
        src/search/evaluators/max_evaluator.h
        src/search/evaluators/pref_evaluator.cc
        src/search/evaluators/pref_evaluator.h
        src/search/evaluators/sum_evaluator.cc
        src/search/evaluators/sum_evaluator.h
        src/search/evaluators/weighted_evaluator.cc
        src/search/evaluators/weighted_evaluator.h
        src/search/ext/tree.hh
        src/search/ext/tree_util.hh
        src/search/heuristics/additive_heuristic.cc
        src/search/heuristics/additive_heuristic.h
        src/search/heuristics/blind_search_heuristic.cc
        src/search/heuristics/blind_search_heuristic.h
        src/search/heuristics/cea_heuristic.cc
        src/search/heuristics/cea_heuristic.h
        src/search/heuristics/cg_cache.cc
        src/search/heuristics/cg_cache.h
        src/search/heuristics/cg_heuristic.cc
        src/search/heuristics/cg_heuristic.h
        src/search/heuristics/domain_transition_graph.cc
        src/search/heuristics/domain_transition_graph.h
        src/search/heuristics/ff_heuristic.cc
        src/search/heuristics/ff_heuristic.h
        src/search/heuristics/goal_count_heuristic.cc
        src/search/heuristics/goal_count_heuristic.h
        src/search/heuristics/hm_heuristic.cc
        src/search/heuristics/hm_heuristic.h
        src/search/heuristics/lm_cut_heuristic.cc
        src/search/heuristics/lm_cut_heuristic.h
        src/search/heuristics/lm_cut_landmarks.cc
        src/search/heuristics/lm_cut_landmarks.h
        src/search/heuristics/max_heuristic.cc
        src/search/heuristics/max_heuristic.h
        src/search/heuristics/relaxation_heuristic.cc
        src/search/heuristics/relaxation_heuristic.h
        src/search/landmarks/exploration.cc
        src/search/landmarks/exploration.h
        src/search/landmarks/lama_ff_synergy.cc
        src/search/landmarks/lama_ff_synergy.h
        src/search/landmarks/landmark_cost_assignment.cc
        src/search/landmarks/landmark_cost_assignment.h
        src/search/landmarks/landmark_count_heuristic.cc
        src/search/landmarks/landmark_count_heuristic.h
        src/search/landmarks/landmark_factory.cc
        src/search/landmarks/landmark_factory.h
        src/search/landmarks/landmark_factory_h_m.cc
        src/search/landmarks/landmark_factory_h_m.h
        src/search/landmarks/landmark_factory_merged.cc
        src/search/landmarks/landmark_factory_merged.h
        src/search/landmarks/landmark_factory_rpg_exhaust.cc
        src/search/landmarks/landmark_factory_rpg_exhaust.h
        src/search/landmarks/landmark_factory_rpg_sasp.cc
        src/search/landmarks/landmark_factory_rpg_sasp.h
        src/search/landmarks/landmark_factory_zhu_givan.cc
        src/search/landmarks/landmark_factory_zhu_givan.h
        src/search/landmarks/landmark_graph.cc
        src/search/landmarks/landmark_graph.h
        src/search/landmarks/landmark_status_manager.cc
        src/search/landmarks/landmark_status_manager.h
        src/search/landmarks/util.cc
        src/search/landmarks/util.h
        src/search/lp/lp_internals.cc
        src/search/lp/lp_internals.h
        src/search/lp/lp_solver.cc
        src/search/lp/lp_solver.h
        src/search/merge_and_shrink/distances.cc
        src/search/merge_and_shrink/distances.h
        src/search/merge_and_shrink/factored_transition_system.cc
        src/search/merge_and_shrink/factored_transition_system.h
        src/search/merge_and_shrink/fts_factory.cc
        src/search/merge_and_shrink/fts_factory.h
        src/search/merge_and_shrink/label_equivalence_relation.cc
        src/search/merge_and_shrink/label_equivalence_relation.h
        src/search/merge_and_shrink/label_reduction.cc
        src/search/merge_and_shrink/label_reduction.h
        src/search/merge_and_shrink/labels.cc
        src/search/merge_and_shrink/labels.h
        src/search/merge_and_shrink/merge_and_shrink_heuristic.cc
        src/search/merge_and_shrink/merge_and_shrink_heuristic.h
        src/search/merge_and_shrink/merge_and_shrink_representation.cc
        src/search/merge_and_shrink/merge_and_shrink_representation.h
        src/search/merge_and_shrink/merge_scoring_function.cc
        src/search/merge_and_shrink/merge_scoring_function.h
        src/search/merge_and_shrink/merge_scoring_function_dfp.cc
        src/search/merge_and_shrink/merge_scoring_function_dfp.h
        src/search/merge_and_shrink/merge_scoring_function_goal_relevance.cc
        src/search/merge_and_shrink/merge_scoring_function_goal_relevance.h
        src/search/merge_and_shrink/merge_scoring_function_single_random.cc
        src/search/merge_and_shrink/merge_scoring_function_single_random.h
        src/search/merge_and_shrink/merge_scoring_function_total_order.cc
        src/search/merge_and_shrink/merge_scoring_function_total_order.h
        src/search/merge_and_shrink/merge_selector.cc
        src/search/merge_and_shrink/merge_selector.h
        src/search/merge_and_shrink/merge_selector_score_based_filtering.cc
        src/search/merge_and_shrink/merge_selector_score_based_filtering.h
        src/search/merge_and_shrink/merge_strategy.cc
        src/search/merge_and_shrink/merge_strategy.h
        src/search/merge_and_shrink/merge_strategy_aliases.cc
        src/search/merge_and_shrink/merge_strategy_factory.cc
        src/search/merge_and_shrink/merge_strategy_factory.h
        src/search/merge_and_shrink/merge_strategy_factory_precomputed.cc
        src/search/merge_and_shrink/merge_strategy_factory_precomputed.h
        src/search/merge_and_shrink/merge_strategy_factory_sccs.cc
        src/search/merge_and_shrink/merge_strategy_factory_sccs.h
        src/search/merge_and_shrink/merge_strategy_factory_stateless.cc
        src/search/merge_and_shrink/merge_strategy_factory_stateless.h
        src/search/merge_and_shrink/merge_strategy_precomputed.cc
        src/search/merge_and_shrink/merge_strategy_precomputed.h
        src/search/merge_and_shrink/merge_strategy_sccs.cc
        src/search/merge_and_shrink/merge_strategy_sccs.h
        src/search/merge_and_shrink/merge_strategy_stateless.cc
        src/search/merge_and_shrink/merge_strategy_stateless.h
        src/search/merge_and_shrink/merge_tree.cc
        src/search/merge_and_shrink/merge_tree.h
        src/search/merge_and_shrink/merge_tree_factory.cc
        src/search/merge_and_shrink/merge_tree_factory.h
        src/search/merge_and_shrink/merge_tree_factory_linear.cc
        src/search/merge_and_shrink/merge_tree_factory_linear.h
        src/search/merge_and_shrink/shrink_bisimulation.cc
        src/search/merge_and_shrink/shrink_bisimulation.h
        src/search/merge_and_shrink/shrink_bucket_based.cc
        src/search/merge_and_shrink/shrink_bucket_based.h
        src/search/merge_and_shrink/shrink_fh.cc
        src/search/merge_and_shrink/shrink_fh.h
        src/search/merge_and_shrink/shrink_random.cc
        src/search/merge_and_shrink/shrink_random.h
        src/search/merge_and_shrink/shrink_strategy.cc
        src/search/merge_and_shrink/shrink_strategy.h
        src/search/merge_and_shrink/transition_system.cc
        src/search/merge_and_shrink/transition_system.h
        src/search/merge_and_shrink/types.cc
        src/search/merge_and_shrink/types.h
        src/search/merge_and_shrink/utils.cc
        src/search/merge_and_shrink/utils.h
        src/search/open_lists/alternation_open_list.cc
        src/search/open_lists/alternation_open_list.h
        src/search/open_lists/epsilon_greedy_open_list.cc
        src/search/open_lists/epsilon_greedy_open_list.h
        src/search/open_lists/pareto_open_list.cc
        src/search/open_lists/pareto_open_list.h
        src/search/open_lists/standard_scalar_open_list.cc
        src/search/open_lists/standard_scalar_open_list.h
        src/search/open_lists/tiebreaking_open_list.cc
        src/search/open_lists/tiebreaking_open_list.h
        src/search/open_lists/type_based_open_list.cc
        src/search/open_lists/type_based_open_list.h
        src/search/operator_counting/constraint_generator.cc
        src/search/operator_counting/constraint_generator.h
        src/search/operator_counting/lm_cut_constraints.cc
        src/search/operator_counting/lm_cut_constraints.h
        src/search/operator_counting/operator_counting_heuristic.cc
        src/search/operator_counting/operator_counting_heuristic.h
        src/search/operator_counting/pho_abstraction_constraints.cc
        src/search/operator_counting/pho_abstraction_constraints.h
        src/search/operator_counting/pho_constraints.cc
        src/search/operator_counting/pho_constraints.h
        src/search/operator_counting/state_equation_constraints.cc
        src/search/operator_counting/state_equation_constraints.h
        src/search/options/any.h
        src/search/options/bounds.cc
        src/search/options/bounds.h
        src/search/options/doc_printer.cc
        src/search/options/doc_printer.h
        src/search/options/doc_store.cc
        src/search/options/doc_store.h
        src/search/options/errors.cc
        src/search/options/errors.h
        src/search/options/option_parser.cc
        src/search/options/option_parser.h
        src/search/options/options.h
        src/search/options/parse_tree.h
        src/search/options/plugin.cc
        src/search/options/plugin.h
        src/search/options/predefinitions.h
        src/search/options/registries.cc
        src/search/options/registries.h
        src/search/options/synergy.h
        src/search/options/token_parser.h
        src/search/options/type_namer.h
        src/search/pdbs/canonical_pdbs.cc
        src/search/pdbs/canonical_pdbs.h
        src/search/pdbs/canonical_pdbs_heuristic.cc
        src/search/pdbs/canonical_pdbs_heuristic.h
        src/search/pdbs/dominance_pruning.cc
        src/search/pdbs/dominance_pruning.h
        src/search/pdbs/incremental_canonical_pdbs.cc
        src/search/pdbs/incremental_canonical_pdbs.h
        src/search/pdbs/match_tree.cc
        src/search/pdbs/match_tree.h
        src/search/pdbs/max_additive_pdb_sets.cc
        src/search/pdbs/max_additive_pdb_sets.h
        src/search/pdbs/pattern_collection_generator_combo.cc
        src/search/pdbs/pattern_collection_generator_combo.h
        src/search/pdbs/pattern_collection_generator_genetic.cc
        src/search/pdbs/pattern_collection_generator_genetic.h
        src/search/pdbs/pattern_collection_generator_hillclimbing.cc
        src/search/pdbs/pattern_collection_generator_hillclimbing.h
        src/search/pdbs/pattern_collection_generator_manual.cc
        src/search/pdbs/pattern_collection_generator_manual.h
        src/search/pdbs/pattern_collection_generator_systematic.cc
        src/search/pdbs/pattern_collection_generator_systematic.h
        src/search/pdbs/pattern_collection_information.cc
        src/search/pdbs/pattern_collection_information.h
        src/search/pdbs/pattern_database.cc
        src/search/pdbs/pattern_database.h
        src/search/pdbs/pattern_generator.cc
        src/search/pdbs/pattern_generator.h
        src/search/pdbs/pattern_generator_greedy.cc
        src/search/pdbs/pattern_generator_greedy.h
        src/search/pdbs/pattern_generator_manual.cc
        src/search/pdbs/pattern_generator_manual.h
        src/search/pdbs/pdb_heuristic.cc
        src/search/pdbs/pdb_heuristic.h
        src/search/pdbs/types.h
        src/search/pdbs/validation.cc
        src/search/pdbs/validation.h
        src/search/pdbs/zero_one_pdbs.cc
        src/search/pdbs/zero_one_pdbs.h
        src/search/pdbs/zero_one_pdbs_heuristic.cc
        src/search/pdbs/zero_one_pdbs_heuristic.h
        src/search/potentials/diverse_potential_heuristics.cc
        src/search/potentials/diverse_potential_heuristics.h
        src/search/potentials/potential_function.cc
        src/search/potentials/potential_function.h
        src/search/potentials/potential_heuristic.cc
        src/search/potentials/potential_heuristic.h
        src/search/potentials/potential_max_heuristic.cc
        src/search/potentials/potential_max_heuristic.h
        src/search/potentials/potential_optimizer.cc
        src/search/potentials/potential_optimizer.h
        src/search/potentials/sample_based_potential_heuristics.cc
        src/search/potentials/single_potential_heuristics.cc
        src/search/potentials/util.cc
        src/search/potentials/util.h
        src/search/pruning/null_pruning_method.cc
        src/search/pruning/null_pruning_method.h
        src/search/pruning/stubborn_sets.cc
        src/search/pruning/stubborn_sets.h
        src/search/pruning/stubborn_sets_ec.cc
        src/search/pruning/stubborn_sets_ec.h
        src/search/pruning/stubborn_sets_simple.cc
        src/search/pruning/stubborn_sets_simple.h
        src/search/search_engines/eager_search.cc
        src/search/search_engines/eager_search.h
        src/search/search_engines/enforced_hill_climbing_search.cc
        src/search/search_engines/enforced_hill_climbing_search.h
        src/search/search_engines/iterated_search.cc
        src/search/search_engines/iterated_search.h
        src/search/search_engines/lazy_search.cc
        src/search/search_engines/lazy_search.h
        src/search/search_engines/plugin_astar.cc
        src/search/search_engines/plugin_eager.cc
        src/search/search_engines/plugin_eager_greedy.cc
        src/search/search_engines/plugin_lazy.cc
        src/search/search_engines/plugin_lazy_greedy.cc
        src/search/search_engines/plugin_lazy_wastar.cc
        src/search/search_engines/search_common.cc
        src/search/search_engines/search_common.h
        src/search/task_utils/causal_graph.cc
        src/search/task_utils/causal_graph.h
        src/search/task_utils/sampling.cc
        src/search/task_utils/sampling.h
        src/search/task_utils/successor_generator.cc
        src/search/task_utils/successor_generator.h
        src/search/task_utils/successor_generator_factory.cc
        src/search/task_utils/successor_generator_factory.h
        src/search/task_utils/successor_generator_internals.cc
        src/search/task_utils/successor_generator_internals.h
        src/search/task_utils/task_properties.cc
        src/search/task_utils/task_properties.h
        src/search/task_utils/variable_order_finder.cc
        src/search/task_utils/variable_order_finder.h
        src/search/tasks/cost_adapted_task.cc
        src/search/tasks/cost_adapted_task.h
        src/search/tasks/delegating_task.cc
        src/search/tasks/delegating_task.h
        src/search/tasks/domain_abstracted_task.cc
        src/search/tasks/domain_abstracted_task.h
        src/search/tasks/domain_abstracted_task_factory.cc
        src/search/tasks/domain_abstracted_task_factory.h
        src/search/tasks/modified_goals_task.cc
        src/search/tasks/modified_goals_task.h
        src/search/tasks/modified_operator_costs_task.cc
        src/search/tasks/modified_operator_costs_task.h
        src/search/tasks/root_task.cc
        src/search/tasks/root_task.h
        src/search/utils/collections.h
        src/search/utils/countdown_timer.cc
        src/search/utils/countdown_timer.h
        src/search/utils/hash.h
        src/search/utils/language.h
        src/search/utils/logging.cc
        src/search/utils/logging.h
        src/search/utils/markup.cc
        src/search/utils/markup.h
        src/search/utils/math.cc
        src/search/utils/math.h
        src/search/utils/memory.cc
        src/search/utils/memory.h
        src/search/utils/rng.cc
        src/search/utils/rng.h
        src/search/utils/rng_options.cc
        src/search/utils/rng_options.h
        src/search/utils/system.cc
        src/search/utils/system.h
        src/search/utils/system_unix.cc
        src/search/utils/system_unix.h
        src/search/utils/system_windows.cc
        src/search/utils/system_windows.h
        src/search/utils/timer.cc
        src/search/utils/timer.h
        src/search/abstract_task.cc
        src/search/abstract_task.h
        src/search/axioms.cc
        src/search/axioms.h
        src/search/evaluation_context.cc
        src/search/evaluation_context.h
        src/search/evaluation_result.cc
        src/search/evaluation_result.h
        src/search/evaluator.cc
        src/search/evaluator.h
        src/search/global_operator.cc
        src/search/global_operator.h
        src/search/global_state.cc
        src/search/global_state.h
        src/search/globals.cc
        src/search/globals.h
        src/search/heuristic.cc
        src/search/heuristic.h
        src/search/heuristic_cache.cc
        src/search/heuristic_cache.h
        src/search/open_list.h
        src/search/open_list_factory.cc
        src/search/open_list_factory.h
        src/search/operator_cost.cc
        src/search/operator_cost.h
        src/search/operator_id.cc
        src/search/operator_id.h
        src/search/option_parser.h
        src/search/option_parser_util.h
        src/search/per_state_information.h
        src/search/planner.cc
        src/search/plugin.h
        src/search/pruning_method.cc
        src/search/pruning_method.h
        src/search/search_engine.cc
        src/search/search_engine.h
        src/search/search_node_info.cc
        src/search/search_node_info.h
        src/search/search_progress.cc
        src/search/search_progress.h
        src/search/search_space.cc
        src/search/search_space.h
        src/search/search_statistics.cc
        src/search/search_statistics.h
        src/search/state_id.cc
        src/search/state_id.h
        src/search/state_registry.cc
        src/search/state_registry.h
        src/search/task_proxy.cc
        src/search/task_proxy.h)

add_executable(cegar ${SOURCE_FILES})