############################################################################### # Top contributors (to current version): # Mathias Preiner, Andrew Reynolds, Gereon Kremer # # This file is part of the cvc5 project. # # Copyright (c) 2009-2021 by the authors listed in the file AUTHORS # in the top-level source directory and their institutional affiliations. # All rights reserved. See the file COPYING in the top-level source # directory for licensing information. # ############################################################################# # # The build system configuration. ## # Collect libcvc5 source files libcvc5_add_sources( api/cpp/cvc5.cpp api/cpp/cvc5.h api/cpp/cvc5_checks.h api/cpp/cvc5_kind.h decision/assertion_list.cpp decision/assertion_list.h decision/decision_attributes.h decision/decision_engine.cpp decision/decision_engine.h decision/decision_engine_old.cpp decision/decision_engine_old.h decision/decision_strategy.h decision/justification_heuristic.cpp decision/justification_heuristic.h decision/justification_strategy.cpp decision/justification_strategy.h decision/justify_info.cpp decision/justify_info.h decision/justify_stack.cpp decision/justify_stack.h decision/justify_stats.cpp decision/justify_stats.h lib/clock_gettime.c lib/clock_gettime.h lib/ffs.c lib/ffs.h lib/replacements.h lib/strtok_r.c lib/strtok_r.h omt/bitvector_optimizer.cpp omt/bitvector_optimizer.h omt/integer_optimizer.cpp omt/integer_optimizer.h omt/omt_optimizer.cpp omt/omt_optimizer.h options/decision_weight.h options/didyoumean.cpp options/didyoumean.h options/language.cpp options/language.h options/managed_streams.cpp options/managed_streams.h options/option_exception.cpp options/option_exception.h options/options_handler.cpp options/options_handler.h options/options_listener.h options/options_public.h options/set_language.cpp options/set_language.h preprocessing/assertion_pipeline.cpp preprocessing/assertion_pipeline.h preprocessing/learned_literal_manager.cpp preprocessing/learned_literal_manager.h preprocessing/passes/ackermann.cpp preprocessing/passes/ackermann.h preprocessing/passes/apply_substs.cpp preprocessing/passes/apply_substs.h preprocessing/passes/bool_to_bv.cpp preprocessing/passes/bool_to_bv.h preprocessing/passes/bv_abstraction.cpp preprocessing/passes/bv_abstraction.h preprocessing/passes/bv_eager_atoms.cpp preprocessing/passes/bv_eager_atoms.h preprocessing/passes/bv_gauss.cpp preprocessing/passes/bv_gauss.h preprocessing/passes/bv_intro_pow2.cpp preprocessing/passes/bv_intro_pow2.h preprocessing/passes/bv_to_bool.cpp preprocessing/passes/bv_to_bool.h preprocessing/passes/bv_to_int.cpp preprocessing/passes/bv_to_int.h preprocessing/passes/extended_rewriter_pass.cpp preprocessing/passes/extended_rewriter_pass.h preprocessing/passes/foreign_theory_rewrite.cpp preprocessing/passes/foreign_theory_rewrite.h preprocessing/passes/fun_def_fmf.cpp preprocessing/passes/fun_def_fmf.h preprocessing/passes/global_negate.cpp preprocessing/passes/global_negate.h preprocessing/passes/ho_elim.cpp preprocessing/passes/ho_elim.h preprocessing/passes/int_to_bv.cpp preprocessing/passes/int_to_bv.h preprocessing/passes/ite_removal.cpp preprocessing/passes/ite_removal.h preprocessing/passes/ite_simp.cpp preprocessing/passes/ite_simp.h preprocessing/passes/learned_rewrite.cpp preprocessing/passes/learned_rewrite.h preprocessing/passes/miplib_trick.cpp preprocessing/passes/miplib_trick.h preprocessing/passes/nl_ext_purify.cpp preprocessing/passes/nl_ext_purify.h preprocessing/passes/non_clausal_simp.cpp preprocessing/passes/non_clausal_simp.h preprocessing/passes/pseudo_boolean_processor.cpp preprocessing/passes/pseudo_boolean_processor.h preprocessing/passes/quantifiers_preprocess.cpp preprocessing/passes/quantifiers_preprocess.h preprocessing/passes/real_to_int.cpp preprocessing/passes/real_to_int.h preprocessing/passes/rewrite.cpp preprocessing/passes/rewrite.h preprocessing/passes/sep_skolem_emp.cpp preprocessing/passes/sep_skolem_emp.h preprocessing/passes/sort_infer.cpp preprocessing/passes/sort_infer.h preprocessing/passes/static_learning.cpp preprocessing/passes/static_learning.h preprocessing/passes/strings_eager_pp.cpp preprocessing/passes/strings_eager_pp.h preprocessing/passes/sygus_inference.cpp preprocessing/passes/sygus_inference.h preprocessing/passes/synth_rew_rules.cpp preprocessing/passes/synth_rew_rules.h preprocessing/passes/theory_preprocess.cpp preprocessing/passes/theory_preprocess.h preprocessing/passes/theory_rewrite_eq.cpp preprocessing/passes/theory_rewrite_eq.h preprocessing/passes/unconstrained_simplifier.cpp preprocessing/passes/unconstrained_simplifier.h preprocessing/preprocessing_pass.cpp preprocessing/preprocessing_pass.h preprocessing/preprocessing_pass_context.cpp preprocessing/preprocessing_pass_context.h preprocessing/preprocessing_pass_registry.cpp preprocessing/preprocessing_pass_registry.h preprocessing/util/ite_utilities.cpp preprocessing/util/ite_utilities.h printer/ast/ast_printer.cpp printer/ast/ast_printer.h printer/let_binding.cpp printer/let_binding.h printer/printer.cpp printer/printer.h printer/smt2/smt2_printer.cpp printer/smt2/smt2_printer.h printer/tptp/tptp_printer.cpp printer/tptp/tptp_printer.h proof/assumption_proof_generator.cpp proof/assumption_proof_generator.h proof/buffered_proof_generator.cpp proof/buffered_proof_generator.h proof/conv_proof_generator.cpp proof/conv_proof_generator.h proof/conv_seq_proof_generator.cpp proof/conv_seq_proof_generator.h proof/clause_id.h proof/dot/dot_printer.cpp proof/dot/dot_printer.h proof/eager_proof_generator.cpp proof/eager_proof_generator.h proof/lazy_proof.cpp proof/lazy_proof.h proof/lazy_proof_chain.cpp proof/lazy_proof_chain.h proof/lazy_tree_proof_generator.cpp proof/lazy_tree_proof_generator.h proof/lfsc/lfsc_list_sc_node_converter.cpp proof/lfsc/lfsc_list_sc_node_converter.h proof/lfsc/lfsc_node_converter.cpp proof/lfsc/lfsc_node_converter.h proof/lfsc/lfsc_post_processor.cpp proof/lfsc/lfsc_post_processor.h proof/lfsc/lfsc_printer.cpp proof/lfsc/lfsc_printer.h proof/lfsc/lfsc_print_channel.cpp proof/lfsc/lfsc_print_channel.h proof/lfsc/lfsc_util.cpp proof/lfsc/lfsc_util.h proof/method_id.cpp proof/method_id.h proof/print_expr.cpp proof/print_expr.h proof/proof.cpp proof/proof.h proof/proof_checker.cpp proof/proof_checker.h proof/proof_ensure_closed.cpp proof/proof_ensure_closed.h proof/proof_generator.cpp proof/proof_generator.h proof/proof_letify.cpp proof/proof_letify.h proof/proof_node.cpp proof/proof_node.h proof/proof_node_algorithm.cpp proof/proof_node_algorithm.h proof/proof_node_to_sexpr.cpp proof/proof_node_to_sexpr.h proof/proof_node_manager.cpp proof/proof_node_manager.h proof/proof_node_updater.cpp proof/proof_node_updater.h proof/proof_rule.cpp proof/proof_rule.h proof/proof_set.h proof/proof_step_buffer.cpp proof/proof_step_buffer.h proof/trust_node.cpp proof/trust_node.h proof/theory_proof_step_buffer.cpp proof/theory_proof_step_buffer.h proof/unsat_core.cpp proof/unsat_core.h proof/alethe/alethe_node_converter.cpp proof/alethe/alethe_node_converter.h proof/alethe/alethe_post_processor.cpp proof/alethe/alethe_post_processor.h proof/alethe/alethe_proof_rule.cpp proof/alethe/alethe_proof_rule.h prop/bv_sat_solver_notify.h prop/bvminisat/bvminisat.cpp prop/bvminisat/bvminisat.h prop/bvminisat/core/Dimacs.h prop/bvminisat/core/Solver.cc prop/bvminisat/core/Solver.h prop/bvminisat/core/SolverTypes.h prop/bvminisat/mtl/Alg.h prop/bvminisat/mtl/Alloc.h prop/bvminisat/mtl/Heap.h prop/bvminisat/mtl/IntTypes.h prop/bvminisat/mtl/Map.h prop/bvminisat/mtl/Queue.h prop/bvminisat/mtl/Sort.h prop/bvminisat/mtl/Vec.h prop/bvminisat/mtl/XAlloc.h prop/bvminisat/simp/SimpSolver.cc prop/bvminisat/simp/SimpSolver.h prop/bvminisat/utils/Options.h prop/cadical.cpp prop/cadical.h prop/cnf_stream.cpp prop/cnf_stream.h prop/cryptominisat.cpp prop/cryptominisat.h prop/kissat.cpp prop/kissat.h prop/proof_cnf_stream.cpp prop/proof_cnf_stream.h prop/minisat/core/Dimacs.h prop/minisat/core/Solver.cc prop/minisat/core/Solver.h prop/minisat/core/SolverTypes.h prop/minisat/minisat.cpp prop/minisat/minisat.h prop/minisat/mtl/Alg.h prop/minisat/mtl/Alloc.h prop/minisat/mtl/Heap.h prop/minisat/mtl/IntTypes.h prop/minisat/mtl/Map.h prop/minisat/mtl/Queue.h prop/minisat/mtl/Sort.h prop/minisat/mtl/Vec.h prop/minisat/mtl/XAlloc.h prop/minisat/simp/SimpSolver.cc prop/minisat/simp/SimpSolver.h prop/minisat/utils/Options.h prop/proof_post_processor.cpp prop/proof_post_processor.h prop/prop_engine.cpp prop/prop_engine.h prop/prop_proof_manager.cpp prop/prop_proof_manager.h prop/registrar.h prop/sat_solver.h prop/sat_proof_manager.cpp prop/sat_proof_manager.h prop/sat_solver_factory.cpp prop/sat_solver_factory.h prop/sat_solver_types.cpp prop/sat_solver_types.h prop/skolem_def_manager.cpp prop/skolem_def_manager.h prop/theory_proxy.cpp prop/theory_proxy.h smt/abduction_solver.cpp smt/abduction_solver.h smt/abstract_values.cpp smt/abstract_values.h smt/assertions.cpp smt/assertions.h smt/check_models.cpp smt/check_models.h smt/command.cpp smt/command.h smt/difficulty_post_processor.cpp smt/difficulty_post_processor.h smt/dump.cpp smt/dump.h smt/dump_manager.cpp smt/dump_manager.h smt/env.cpp smt/env.h smt/env_obj.cpp smt/env_obj.h smt/expand_definitions.cpp smt/expand_definitions.h smt/listeners.cpp smt/listeners.h smt/logic_exception.h smt/interpolation_solver.cpp smt/interpolation_solver.h smt/model.cpp smt/model.h smt/model_core_builder.cpp smt/model_core_builder.h smt/model_blocker.cpp smt/model_blocker.h smt/node_command.cpp smt/node_command.h smt/optimization_solver.cpp smt/optimization_solver.h smt/output_manager.cpp smt/output_manager.h smt/quant_elim_solver.cpp smt/quant_elim_solver.h smt/preprocessor.cpp smt/preprocessor.h smt/preprocess_proof_generator.cpp smt/preprocess_proof_generator.h smt/process_assertions.cpp smt/process_assertions.h smt/proof_manager.cpp smt/proof_manager.h smt/proof_final_callback.cpp smt/proof_final_callback.h smt/proof_post_processor.cpp smt/proof_post_processor.h smt/set_defaults.cpp smt/set_defaults.h smt/solver_engine.cpp smt/solver_engine.h smt/solver_engine_scope.cpp smt/solver_engine_scope.h smt/solver_engine_state.cpp smt/solver_engine_state.h smt/solver_engine_stats.cpp smt/solver_engine_stats.h smt/smt_mode.cpp smt/smt_mode.h smt/smt_solver.cpp smt/smt_solver.h smt/smt_statistics_registry.cpp smt/smt_statistics_registry.h smt/sygus_solver.cpp smt/sygus_solver.h smt/term_formula_removal.cpp smt/term_formula_removal.h smt/unsat_core_manager.cpp smt/unsat_core_manager.h smt/witness_form.cpp smt/witness_form.h smt_util/boolean_simplification.cpp smt_util/boolean_simplification.h smt_util/nary_builder.cpp smt_util/nary_builder.h theory/arith/approx_simplex.cpp theory/arith/approx_simplex.h theory/arith/arith_ite_utils.cpp theory/arith/arith_ite_utils.h theory/arith/arith_msum.cpp theory/arith/arith_msum.h theory/arith/arith_preprocess.cpp theory/arith/arith_preprocess.h theory/arith/arith_rewriter.cpp theory/arith/arith_rewriter.h theory/arith/arith_state.cpp theory/arith/arith_state.h theory/arith/arith_static_learner.cpp theory/arith/arith_static_learner.h theory/arith/arith_utilities.cpp theory/arith/arith_utilities.h theory/arith/arithvar.cpp theory/arith/arithvar.h theory/arith/attempt_solution_simplex.cpp theory/arith/attempt_solution_simplex.h theory/arith/bound_counts.h theory/arith/bound_inference.cpp theory/arith/bound_inference.h theory/arith/branch_and_bound.cpp theory/arith/branch_and_bound.h theory/arith/callbacks.cpp theory/arith/callbacks.h theory/arith/congruence_manager.cpp theory/arith/congruence_manager.h theory/arith/constraint.cpp theory/arith/constraint.h theory/arith/constraint_forward.h theory/arith/cut_log.cpp theory/arith/cut_log.h theory/arith/delta_rational.cpp theory/arith/delta_rational.h theory/arith/dio_solver.cpp theory/arith/dio_solver.h theory/arith/dual_simplex.cpp theory/arith/dual_simplex.h theory/arith/equality_solver.cpp theory/arith/equality_solver.h theory/arith/error_set.cpp theory/arith/error_set.h theory/arith/fc_simplex.cpp theory/arith/fc_simplex.h theory/arith/infer_bounds.cpp theory/arith/infer_bounds.h theory/arith/inference_manager.cpp theory/arith/inference_manager.h theory/arith/linear_equality.cpp theory/arith/linear_equality.h theory/arith/matrix.cpp theory/arith/matrix.h theory/arith/nl/cad_solver.cpp theory/arith/nl/cad_solver.h theory/arith/nl/cad/cdcac.cpp theory/arith/nl/cad/cdcac.h theory/arith/nl/cad/cdcac_utils.cpp theory/arith/nl/cad/cdcac_utils.h theory/arith/nl/cad/constraints.cpp theory/arith/nl/cad/constraints.h theory/arith/nl/cad/lazard_evaluation.cpp theory/arith/nl/cad/lazard_evaluation.h theory/arith/nl/cad/projections.cpp theory/arith/nl/cad/projections.h theory/arith/nl/cad/proof_checker.cpp theory/arith/nl/cad/proof_checker.h theory/arith/nl/cad/proof_generator.cpp theory/arith/nl/cad/proof_generator.h theory/arith/nl/cad/variable_ordering.cpp theory/arith/nl/cad/variable_ordering.h theory/arith/nl/ext/constraint.cpp theory/arith/nl/ext/constraint.h theory/arith/nl/ext/factoring_check.cpp theory/arith/nl/ext/factoring_check.h theory/arith/nl/ext/monomial.cpp theory/arith/nl/ext/monomial.h theory/arith/nl/ext/monomial_bounds_check.cpp theory/arith/nl/ext/monomial_bounds_check.h theory/arith/nl/ext/monomial_check.cpp theory/arith/nl/ext/monomial_check.h theory/arith/nl/ext/ext_state.cpp theory/arith/nl/ext/ext_state.h theory/arith/nl/ext/proof_checker.cpp theory/arith/nl/ext/proof_checker.h theory/arith/nl/ext/split_zero_check.cpp theory/arith/nl/ext/split_zero_check.h theory/arith/nl/ext/tangent_plane_check.cpp theory/arith/nl/ext/tangent_plane_check.h theory/arith/nl/ext_theory_callback.cpp theory/arith/nl/ext_theory_callback.h theory/arith/nl/iand_solver.cpp theory/arith/nl/iand_solver.h theory/arith/nl/icp/candidate.cpp theory/arith/nl/icp/candidate.h theory/arith/nl/icp/contraction_origins.cpp theory/arith/nl/icp/contraction_origins.h theory/arith/nl/icp/icp_solver.cpp theory/arith/nl/icp/icp_solver.h theory/arith/nl/icp/intersection.cpp theory/arith/nl/icp/intersection.h theory/arith/nl/iand_utils.cpp theory/arith/nl/iand_utils.h theory/arith/nl/nl_lemma_utils.cpp theory/arith/nl/nl_lemma_utils.h theory/arith/nl/nl_model.cpp theory/arith/nl/nl_model.h theory/arith/nl/nonlinear_extension.cpp theory/arith/nl/nonlinear_extension.h theory/arith/nl/poly_conversion.cpp theory/arith/nl/poly_conversion.h theory/arith/nl/pow2_solver.cpp theory/arith/nl/pow2_solver.h theory/arith/nl/stats.cpp theory/arith/nl/stats.h theory/arith/nl/strategy.cpp theory/arith/nl/strategy.h theory/arith/nl/transcendental/exponential_solver.cpp theory/arith/nl/transcendental/exponential_solver.h theory/arith/nl/transcendental/proof_checker.cpp theory/arith/nl/transcendental/proof_checker.h theory/arith/nl/transcendental/sine_solver.cpp theory/arith/nl/transcendental/sine_solver.h theory/arith/nl/transcendental/taylor_generator.cpp theory/arith/nl/transcendental/taylor_generator.h theory/arith/nl/transcendental/transcendental_solver.cpp theory/arith/nl/transcendental/transcendental_solver.h theory/arith/nl/transcendental/transcendental_state.cpp theory/arith/nl/transcendental/transcendental_state.h theory/arith/normal_form.cpp theory/arith/normal_form.h theory/arith/operator_elim.cpp theory/arith/operator_elim.h theory/arith/partial_model.cpp theory/arith/partial_model.h theory/arith/pp_rewrite_eq.cpp theory/arith/pp_rewrite_eq.h theory/arith/proof_checker.cpp theory/arith/proof_checker.h theory/arith/rewrites.cpp theory/arith/rewrites.h theory/arith/simplex.cpp theory/arith/simplex.h theory/arith/simplex_update.cpp theory/arith/simplex_update.h theory/arith/soi_simplex.cpp theory/arith/soi_simplex.h theory/arith/tableau.cpp theory/arith/tableau.h theory/arith/tableau_sizes.cpp theory/arith/tableau_sizes.h theory/arith/theory_arith.cpp theory/arith/theory_arith.h theory/arith/theory_arith_private.cpp theory/arith/theory_arith_private.h theory/arith/theory_arith_type_rules.cpp theory/arith/theory_arith_type_rules.h theory/arith/type_enumerator.h theory/arrays/array_info.cpp theory/arrays/array_info.h theory/arrays/inference_manager.cpp theory/arrays/inference_manager.h theory/arrays/proof_checker.cpp theory/arrays/proof_checker.h theory/arrays/skolem_cache.cpp theory/arrays/skolem_cache.h theory/arrays/theory_arrays.cpp theory/arrays/theory_arrays.h theory/arrays/theory_arrays_rewriter.cpp theory/arrays/theory_arrays_rewriter.h theory/arrays/theory_arrays_type_rules.cpp theory/arrays/theory_arrays_type_rules.h theory/arrays/type_enumerator.h theory/arrays/type_enumerator.cpp theory/arrays/union_find.cpp theory/arrays/union_find.h theory/assertion.cpp theory/assertion.h theory/atom_requests.cpp theory/atom_requests.h theory/bags/bags_rewriter.cpp theory/bags/bags_rewriter.h theory/bags/bag_solver.cpp theory/bags/bag_solver.h theory/bags/bags_statistics.cpp theory/bags/bags_statistics.h theory/bags/infer_info.cpp theory/bags/infer_info.h theory/bags/inference_generator.cpp theory/bags/inference_generator.h theory/bags/inference_manager.cpp theory/bags/inference_manager.h theory/bags/make_bag_op.cpp theory/bags/make_bag_op.h theory/bags/normal_form.cpp theory/bags/normal_form.h theory/bags/rewrites.cpp theory/bags/rewrites.h theory/bags/solver_state.cpp theory/bags/solver_state.h theory/bags/term_registry.cpp theory/bags/term_registry.h theory/bags/theory_bags.cpp theory/bags/theory_bags.h theory/bags/theory_bags_type_enumerator.cpp theory/bags/theory_bags_type_enumerator.h theory/bags/theory_bags_type_rules.h theory/bags/theory_bags_type_rules.cpp theory/booleans/circuit_propagator.cpp theory/booleans/circuit_propagator.h theory/booleans/proof_circuit_propagator.cpp theory/booleans/proof_circuit_propagator.h theory/booleans/proof_checker.cpp theory/booleans/proof_checker.h theory/booleans/theory_bool.cpp theory/booleans/theory_bool.h theory/booleans/theory_bool_rewriter.cpp theory/booleans/theory_bool_rewriter.h theory/booleans/theory_bool_type_rules.cpp theory/booleans/theory_bool_type_rules.h theory/booleans/type_enumerator.h theory/builtin/proof_checker.cpp theory/builtin/proof_checker.h theory/builtin/theory_builtin.cpp theory/builtin/theory_builtin.h theory/builtin/theory_builtin_rewriter.cpp theory/builtin/theory_builtin_rewriter.h theory/builtin/theory_builtin_type_rules.cpp theory/builtin/theory_builtin_type_rules.h theory/builtin/type_enumerator.cpp theory/builtin/type_enumerator.h theory/bv/abstraction.cpp theory/bv/abstraction.h theory/bv/bitblast/aig_bitblaster.cpp theory/bv/bitblast/aig_bitblaster.h theory/bv/bitblast/bitblast_proof_generator.cpp theory/bv/bitblast/bitblast_proof_generator.h theory/bv/bitblast/bitblast_strategies_template.h theory/bv/bitblast/bitblast_utils.h theory/bv/bitblast/bitblaster.h theory/bv/bitblast/eager_bitblaster.cpp theory/bv/bitblast/eager_bitblaster.h theory/bv/bitblast/lazy_bitblaster.cpp theory/bv/bitblast/lazy_bitblaster.h theory/bv/bitblast/node_bitblaster.cpp theory/bv/bitblast/node_bitblaster.h theory/bv/bitblast/proof_bitblaster.cpp theory/bv/bitblast/proof_bitblaster.h theory/bv/bv_eager_solver.cpp theory/bv/bv_eager_solver.h theory/bv/bv_inequality_graph.cpp theory/bv/bv_inequality_graph.h theory/bv/bv_quick_check.cpp theory/bv/bv_quick_check.h theory/bv/bv_solver.h theory/bv/bv_solver_bitblast.cpp theory/bv/bv_solver_bitblast.h theory/bv/bv_solver_bitblast_internal.cpp theory/bv/bv_solver_bitblast_internal.h theory/bv/bv_solver_layered.cpp theory/bv/bv_solver_layered.h theory/bv/bv_subtheory.h theory/bv/bv_subtheory_algebraic.cpp theory/bv/bv_subtheory_algebraic.h theory/bv/bv_subtheory_bitblast.cpp theory/bv/bv_subtheory_bitblast.h theory/bv/bv_subtheory_core.cpp theory/bv/bv_subtheory_core.h theory/bv/bv_subtheory_inequality.cpp theory/bv/bv_subtheory_inequality.h theory/bv/int_blaster.cpp theory/bv/int_blaster.h theory/bv/proof_checker.cpp theory/bv/proof_checker.h theory/bv/slicer.cpp theory/bv/slicer.h theory/bv/theory_bv.cpp theory/bv/theory_bv.h theory/bv/theory_bv_rewrite_rules.h theory/bv/theory_bv_rewrite_rules_constant_evaluation.h theory/bv/theory_bv_rewrite_rules_core.h theory/bv/theory_bv_rewrite_rules_normalization.h theory/bv/theory_bv_rewrite_rules_operator_elimination.h theory/bv/theory_bv_rewrite_rules_simplification.h theory/bv/theory_bv_rewriter.cpp theory/bv/theory_bv_rewriter.h theory/bv/theory_bv_type_rules.cpp theory/bv/theory_bv_type_rules.h theory/bv/theory_bv_utils.cpp theory/bv/theory_bv_utils.h theory/bv/type_enumerator.h theory/care_graph.h theory/combination_care_graph.cpp theory/combination_care_graph.h theory/combination_engine.cpp theory/combination_engine.h theory/datatypes/datatypes_rewriter.cpp theory/datatypes/datatypes_rewriter.h theory/datatypes/inference.cpp theory/datatypes/inference.h theory/datatypes/inference_manager.cpp theory/datatypes/inference_manager.h theory/datatypes/infer_proof_cons.cpp theory/datatypes/infer_proof_cons.h theory/datatypes/proof_checker.cpp theory/datatypes/proof_checker.h theory/datatypes/sygus_datatype_utils.cpp theory/datatypes/sygus_datatype_utils.h theory/datatypes/sygus_extension.cpp theory/datatypes/sygus_extension.h theory/datatypes/sygus_simple_sym.cpp theory/datatypes/sygus_simple_sym.h theory/datatypes/theory_datatypes.cpp theory/datatypes/theory_datatypes.h theory/datatypes/theory_datatypes_type_rules.cpp theory/datatypes/theory_datatypes_type_rules.h theory/datatypes/theory_datatypes_utils.cpp theory/datatypes/theory_datatypes_utils.h theory/datatypes/tuple_project_op.cpp theory/datatypes/tuple_project_op.h theory/datatypes/type_enumerator.cpp theory/datatypes/type_enumerator.h theory/decision_manager.cpp theory/decision_manager.h theory/decision_strategy.cpp theory/decision_strategy.h theory/difficulty_manager.cpp theory/difficulty_manager.h theory/ee_manager.cpp theory/ee_manager.h theory/ee_manager_central.cpp theory/ee_manager_central.h theory/ee_manager_distributed.cpp theory/ee_manager_distributed.h theory/ee_setup_info.h theory/engine_output_channel.cpp theory/engine_output_channel.h theory/evaluator.cpp theory/evaluator.h theory/ext_theory.cpp theory/ext_theory.h theory/fp/fp_word_blaster.cpp theory/fp/fp_word_blaster.h theory/fp/fp_expand_defs.cpp theory/fp/fp_expand_defs.h theory/fp/theory_fp.cpp theory/fp/theory_fp.h theory/fp/theory_fp_rewriter.cpp theory/fp/theory_fp_rewriter.h theory/fp/theory_fp_type_rules.h theory/fp/theory_fp_type_rules.cpp theory/fp/type_enumerator.h theory/interrupted.h theory/incomplete_id.cpp theory/incomplete_id.h theory/inference_id.cpp theory/inference_id.h theory/inference_manager_buffered.cpp theory/inference_manager_buffered.h theory/logic_info.cpp theory/logic_info.h theory/model_manager.cpp theory/model_manager.h theory/model_manager_distributed.cpp theory/model_manager_distributed.h theory/output_channel.cpp theory/output_channel.h theory/quantifiers/alpha_equivalence.cpp theory/quantifiers/alpha_equivalence.h theory/quantifiers/bv_inverter.cpp theory/quantifiers/bv_inverter.h theory/quantifiers/bv_inverter_utils.cpp theory/quantifiers/bv_inverter_utils.h theory/quantifiers/candidate_rewrite_database.cpp theory/quantifiers/candidate_rewrite_database.h theory/quantifiers/candidate_rewrite_filter.cpp theory/quantifiers/candidate_rewrite_filter.h theory/quantifiers/cegqi/ceg_arith_instantiator.cpp theory/quantifiers/cegqi/ceg_arith_instantiator.h theory/quantifiers/cegqi/ceg_bv_instantiator.cpp theory/quantifiers/cegqi/ceg_bv_instantiator.h theory/quantifiers/cegqi/ceg_bv_instantiator_utils.cpp theory/quantifiers/cegqi/ceg_bv_instantiator_utils.h theory/quantifiers/cegqi/ceg_dt_instantiator.cpp theory/quantifiers/cegqi/ceg_dt_instantiator.h theory/quantifiers/cegqi/ceg_instantiator.cpp theory/quantifiers/cegqi/ceg_instantiator.h theory/quantifiers/cegqi/inst_strategy_cegqi.cpp theory/quantifiers/cegqi/inst_strategy_cegqi.h theory/quantifiers/cegqi/nested_qe.cpp theory/quantifiers/cegqi/nested_qe.h theory/quantifiers/cegqi/vts_term_cache.cpp theory/quantifiers/cegqi/vts_term_cache.h theory/quantifiers/conjecture_generator.cpp theory/quantifiers/conjecture_generator.h theory/quantifiers/dynamic_rewrite.cpp theory/quantifiers/dynamic_rewrite.h theory/quantifiers/ematching/candidate_generator.cpp theory/quantifiers/ematching/candidate_generator.h theory/quantifiers/ematching/ho_trigger.cpp theory/quantifiers/ematching/ho_trigger.h theory/quantifiers/ematching/im_generator.cpp theory/quantifiers/ematching/im_generator.h theory/quantifiers/ematching/inst_match_generator.cpp theory/quantifiers/ematching/inst_match_generator.h theory/quantifiers/ematching/inst_match_generator_multi.cpp theory/quantifiers/ematching/inst_match_generator_multi.h theory/quantifiers/ematching/inst_match_generator_multi_linear.cpp theory/quantifiers/ematching/inst_match_generator_multi_linear.h theory/quantifiers/ematching/inst_match_generator_simple.cpp theory/quantifiers/ematching/inst_match_generator_simple.h theory/quantifiers/ematching/inst_strategy.cpp theory/quantifiers/ematching/inst_strategy.h theory/quantifiers/ematching/inst_strategy_e_matching.cpp theory/quantifiers/ematching/inst_strategy_e_matching.h theory/quantifiers/ematching/inst_strategy_e_matching_user.cpp theory/quantifiers/ematching/inst_strategy_e_matching_user.h theory/quantifiers/ematching/instantiation_engine.cpp theory/quantifiers/ematching/instantiation_engine.h theory/quantifiers/ematching/pattern_term_selector.cpp theory/quantifiers/ematching/pattern_term_selector.h theory/quantifiers/ematching/trigger.cpp theory/quantifiers/ematching/trigger.h theory/quantifiers/ematching/trigger_database.cpp theory/quantifiers/ematching/trigger_database.h theory/quantifiers/ematching/trigger_term_info.cpp theory/quantifiers/ematching/trigger_term_info.h theory/quantifiers/ematching/trigger_trie.cpp theory/quantifiers/ematching/trigger_trie.h theory/quantifiers/ematching/var_match_generator.cpp theory/quantifiers/ematching/var_match_generator.h theory/quantifiers/equality_query.cpp theory/quantifiers/equality_query.h theory/quantifiers/expr_miner.cpp theory/quantifiers/expr_miner.h theory/quantifiers/expr_miner_manager.cpp theory/quantifiers/expr_miner_manager.h theory/quantifiers/extended_rewrite.cpp theory/quantifiers/extended_rewrite.h theory/quantifiers/first_order_model.cpp theory/quantifiers/first_order_model.h theory/quantifiers/fmf/bounded_integers.cpp theory/quantifiers/fmf/bounded_integers.h theory/quantifiers/fmf/first_order_model_fmc.cpp theory/quantifiers/fmf/first_order_model_fmc.h theory/quantifiers/fmf/full_model_check.cpp theory/quantifiers/fmf/full_model_check.h theory/quantifiers/fmf/model_builder.cpp theory/quantifiers/fmf/model_builder.h theory/quantifiers/fmf/model_engine.cpp theory/quantifiers/fmf/model_engine.h theory/quantifiers/fun_def_evaluator.cpp theory/quantifiers/fun_def_evaluator.h theory/quantifiers/ho_term_database.cpp theory/quantifiers/ho_term_database.h theory/quantifiers/index_trie.cpp theory/quantifiers/index_trie.h theory/quantifiers/inst_match.cpp theory/quantifiers/inst_match.h theory/quantifiers/inst_match_trie.cpp theory/quantifiers/inst_match_trie.h theory/quantifiers/inst_strategy_enumerative.cpp theory/quantifiers/inst_strategy_enumerative.h theory/quantifiers/inst_strategy_pool.cpp theory/quantifiers/inst_strategy_pool.h theory/quantifiers/instantiate.cpp theory/quantifiers/instantiate.h theory/quantifiers/instantiation_list.cpp theory/quantifiers/instantiation_list.h theory/quantifiers/lazy_trie.cpp theory/quantifiers/lazy_trie.h theory/quantifiers/master_eq_notify.cpp theory/quantifiers/master_eq_notify.h theory/quantifiers/proof_checker.cpp theory/quantifiers/proof_checker.h theory/quantifiers/quant_bound_inference.cpp theory/quantifiers/quant_bound_inference.h theory/quantifiers/quant_conflict_find.cpp theory/quantifiers/quant_conflict_find.h theory/quantifiers/quant_relevance.cpp theory/quantifiers/quant_relevance.h theory/quantifiers/quant_rep_bound_ext.cpp theory/quantifiers/quant_rep_bound_ext.h theory/quantifiers/quant_split.cpp theory/quantifiers/quant_split.h theory/quantifiers/quant_util.cpp theory/quantifiers/quant_util.h theory/quantifiers/quant_module.cpp theory/quantifiers/quant_module.h theory/quantifiers/quantifiers_attributes.cpp theory/quantifiers/quantifiers_attributes.h theory/quantifiers/quantifiers_inference_manager.cpp theory/quantifiers/quantifiers_inference_manager.h theory/quantifiers/quantifiers_macros.cpp theory/quantifiers/quantifiers_macros.h theory/quantifiers/quantifiers_modules.cpp theory/quantifiers/quantifiers_modules.h theory/quantifiers/quantifiers_preprocess.cpp theory/quantifiers/quantifiers_preprocess.h theory/quantifiers/quantifiers_registry.cpp theory/quantifiers/quantifiers_registry.h theory/quantifiers/quantifiers_rewriter.cpp theory/quantifiers/quantifiers_rewriter.h theory/quantifiers/quantifiers_state.cpp theory/quantifiers/quantifiers_state.h theory/quantifiers/quantifiers_statistics.cpp theory/quantifiers/quantifiers_statistics.h theory/quantifiers/query_generator.cpp theory/quantifiers/query_generator.h theory/quantifiers/relevant_domain.cpp theory/quantifiers/relevant_domain.h theory/quantifiers/single_inv_partition.cpp theory/quantifiers/single_inv_partition.h theory/quantifiers/skolemize.cpp theory/quantifiers/skolemize.h theory/quantifiers/solution_filter.cpp theory/quantifiers/solution_filter.h theory/quantifiers/term_pools.cpp theory/quantifiers/term_pools.h theory/quantifiers/term_tuple_enumerator.cpp theory/quantifiers/term_tuple_enumerator.h theory/quantifiers/sygus/ce_guided_single_inv.cpp theory/quantifiers/sygus/ce_guided_single_inv.h theory/quantifiers/sygus/cegis.cpp theory/quantifiers/sygus/cegis.h theory/quantifiers/sygus/cegis_core_connective.cpp theory/quantifiers/sygus/cegis_core_connective.h theory/quantifiers/sygus/cegis_unif.cpp theory/quantifiers/sygus/cegis_unif.h theory/quantifiers/sygus/enum_val_generator.h theory/quantifiers/sygus/example_eval_cache.cpp theory/quantifiers/sygus/example_eval_cache.h theory/quantifiers/sygus/example_infer.cpp theory/quantifiers/sygus/example_infer.h theory/quantifiers/sygus/example_min_eval.cpp theory/quantifiers/sygus/example_min_eval.h theory/quantifiers/sygus/enum_stream_substitution.cpp theory/quantifiers/sygus/enum_stream_substitution.h theory/quantifiers/sygus/enum_value_manager.cpp theory/quantifiers/sygus/enum_value_manager.h theory/quantifiers/sygus/example_infer.cpp theory/quantifiers/sygus/example_infer.h theory/quantifiers/sygus/example_min_eval.cpp theory/quantifiers/sygus/example_min_eval.h theory/quantifiers/sygus/rcons_obligation.cpp theory/quantifiers/sygus/rcons_obligation.h theory/quantifiers/sygus/rcons_type_info.cpp theory/quantifiers/sygus/rcons_type_info.h theory/quantifiers/sygus/sygus_abduct.cpp theory/quantifiers/sygus/sygus_abduct.h theory/quantifiers/sygus/sygus_enumerator.cpp theory/quantifiers/sygus/sygus_enumerator.h theory/quantifiers/sygus/sygus_enumerator_basic.cpp theory/quantifiers/sygus/sygus_enumerator_basic.h theory/quantifiers/sygus/sygus_enumerator_callback.cpp theory/quantifiers/sygus/sygus_enumerator_callback.h theory/quantifiers/sygus/sygus_eval_unfold.cpp theory/quantifiers/sygus/sygus_eval_unfold.h theory/quantifiers/sygus/sygus_explain.cpp theory/quantifiers/sygus/sygus_explain.h theory/quantifiers/sygus/sygus_grammar_cons.cpp theory/quantifiers/sygus/sygus_grammar_cons.h theory/quantifiers/sygus/sygus_grammar_norm.cpp theory/quantifiers/sygus/sygus_grammar_norm.h theory/quantifiers/sygus/sygus_grammar_red.cpp theory/quantifiers/sygus/sygus_grammar_red.h theory/quantifiers/sygus/sygus_interpol.cpp theory/quantifiers/sygus/sygus_interpol.h theory/quantifiers/sygus/sygus_invariance.cpp theory/quantifiers/sygus/sygus_invariance.h theory/quantifiers/sygus/sygus_module.cpp theory/quantifiers/sygus/sygus_module.h theory/quantifiers/sygus/sygus_pbe.cpp theory/quantifiers/sygus/sygus_pbe.h theory/quantifiers/sygus/sygus_process_conj.cpp theory/quantifiers/sygus/sygus_process_conj.h theory/quantifiers/sygus/sygus_reconstruct.cpp theory/quantifiers/sygus/sygus_reconstruct.h theory/quantifiers/sygus/sygus_qe_preproc.cpp theory/quantifiers/sygus/sygus_qe_preproc.h theory/quantifiers/sygus/sygus_repair_const.cpp theory/quantifiers/sygus/sygus_repair_const.h theory/quantifiers/sygus/sygus_stats.cpp theory/quantifiers/sygus/sygus_stats.h theory/quantifiers/sygus/sygus_unif.cpp theory/quantifiers/sygus/sygus_unif.h theory/quantifiers/sygus/sygus_unif_io.cpp theory/quantifiers/sygus/sygus_unif_io.h theory/quantifiers/sygus/sygus_unif_rl.cpp theory/quantifiers/sygus/sygus_unif_rl.h theory/quantifiers/sygus/sygus_unif_strat.cpp theory/quantifiers/sygus/sygus_unif_strat.h theory/quantifiers/sygus/sygus_utils.cpp theory/quantifiers/sygus/sygus_utils.h theory/quantifiers/sygus/synth_conjecture.cpp theory/quantifiers/sygus/synth_conjecture.h theory/quantifiers/sygus/synth_engine.cpp theory/quantifiers/sygus/synth_engine.h theory/quantifiers/sygus/synth_verify.cpp theory/quantifiers/sygus/synth_verify.h theory/quantifiers/sygus/template_infer.cpp theory/quantifiers/sygus/template_infer.h theory/quantifiers/sygus/term_database_sygus.cpp theory/quantifiers/sygus/term_database_sygus.h theory/quantifiers/sygus/type_info.cpp theory/quantifiers/sygus/type_info.h theory/quantifiers/sygus/type_node_id_trie.cpp theory/quantifiers/sygus/type_node_id_trie.h theory/quantifiers/sygus/transition_inference.cpp theory/quantifiers/sygus/transition_inference.h theory/quantifiers/sygus_inst.cpp theory/quantifiers/sygus_inst.h theory/quantifiers/sygus_sampler.cpp theory/quantifiers/sygus_sampler.h theory/quantifiers/term_database.cpp theory/quantifiers/term_database.h theory/quantifiers/term_enumeration.cpp theory/quantifiers/term_enumeration.h theory/quantifiers/term_pools.cpp theory/quantifiers/term_pools.h theory/quantifiers/term_registry.cpp theory/quantifiers/term_registry.h theory/quantifiers/term_util.cpp theory/quantifiers/term_util.h theory/quantifiers/theory_quantifiers.cpp theory/quantifiers/theory_quantifiers.h theory/quantifiers/theory_quantifiers_type_rules.cpp theory/quantifiers/theory_quantifiers_type_rules.h theory/quantifiers_engine.cpp theory/quantifiers_engine.h theory/relevance_manager.cpp theory/relevance_manager.h theory/rep_set.cpp theory/rep_set.h theory/rewriter.cpp theory/rewriter.h theory/rewriter_attributes.h theory/sep/theory_sep.cpp theory/sep/theory_sep.h theory/sep/theory_sep_rewriter.cpp theory/sep/theory_sep_rewriter.h theory/sep/theory_sep_type_rules.cpp theory/sep/theory_sep_type_rules.h theory/sets/cardinality_extension.cpp theory/sets/cardinality_extension.h theory/sets/inference_manager.cpp theory/sets/inference_manager.h theory/sets/normal_form.h theory/sets/rels_utils.h theory/sets/singleton_op.cpp theory/sets/singleton_op.h theory/sets/skolem_cache.cpp theory/sets/skolem_cache.h theory/sets/solver_state.cpp theory/sets/solver_state.h theory/sets/term_registry.cpp theory/sets/term_registry.h theory/sets/theory_sets.cpp theory/sets/theory_sets.h theory/sets/theory_sets_private.cpp theory/sets/theory_sets_private.h theory/sets/theory_sets_rels.cpp theory/sets/theory_sets_rels.h theory/sets/theory_sets_rewriter.cpp theory/sets/theory_sets_rewriter.h theory/sets/theory_sets_type_enumerator.cpp theory/sets/theory_sets_type_enumerator.h theory/sets/theory_sets_type_rules.cpp theory/sets/theory_sets_type_rules.h theory/shared_solver.cpp theory/shared_solver.h theory/shared_solver_distributed.cpp theory/shared_solver_distributed.h theory/shared_terms_database.cpp theory/shared_terms_database.h theory/skolem_lemma.cpp theory/skolem_lemma.h theory/smt_engine_subsolver.cpp theory/smt_engine_subsolver.h theory/sort_inference.cpp theory/sort_inference.h theory/strings/array_solver.cpp theory/strings/array_solver.h theory/strings/arith_entail.cpp theory/strings/arith_entail.h theory/strings/base_solver.cpp theory/strings/base_solver.h theory/strings/core_solver.cpp theory/strings/core_solver.h theory/strings/eager_solver.cpp theory/strings/eager_solver.h theory/strings/extf_solver.cpp theory/strings/extf_solver.h theory/strings/eqc_info.cpp theory/strings/eqc_info.h theory/strings/infer_info.cpp theory/strings/infer_info.h theory/strings/infer_proof_cons.cpp theory/strings/infer_proof_cons.h theory/strings/inference_manager.cpp theory/strings/inference_manager.h theory/strings/normal_form.cpp theory/strings/normal_form.h theory/strings/proof_checker.cpp theory/strings/proof_checker.h theory/strings/regexp_elim.cpp theory/strings/regexp_elim.h theory/strings/regexp_entail.cpp theory/strings/regexp_entail.h theory/strings/regexp_operation.cpp theory/strings/regexp_operation.h theory/strings/regexp_solver.cpp theory/strings/regexp_solver.h theory/strings/rewrites.cpp theory/strings/rewrites.h theory/strings/sequences_rewriter.cpp theory/strings/sequences_rewriter.h theory/strings/sequences_stats.cpp theory/strings/sequences_stats.h theory/strings/skolem_cache.cpp theory/strings/skolem_cache.h theory/strings/solver_state.cpp theory/strings/solver_state.h theory/strings/strategy.cpp theory/strings/strategy.h theory/strings/strings_entail.cpp theory/strings/strings_entail.h theory/strings/strings_fmf.cpp theory/strings/strings_fmf.h theory/strings/strings_rewriter.cpp theory/strings/strings_rewriter.h theory/strings/theory_strings.cpp theory/strings/theory_strings.h theory/strings/theory_strings_preprocess.cpp theory/strings/theory_strings_preprocess.h theory/strings/theory_strings_type_rules.cpp theory/strings/theory_strings_type_rules.h theory/strings/theory_strings_utils.cpp theory/strings/theory_strings_utils.h theory/strings/term_registry.cpp theory/strings/term_registry.h theory/strings/type_enumerator.cpp theory/strings/type_enumerator.h theory/strings/word.cpp theory/strings/word.h theory/subs_minimize.cpp theory/subs_minimize.h theory/substitutions.cpp theory/substitutions.h theory/term_registration_visitor.cpp theory/term_registration_visitor.h theory/theory.cpp theory/theory.h theory/theory_engine.cpp theory/theory_engine.h theory/theory_engine_proof_generator.cpp theory/theory_engine_proof_generator.h theory/theory_id.cpp theory/theory_id.h theory/theory_eq_notify.h theory/theory_inference.cpp theory/theory_inference.h theory/theory_inference_manager.cpp theory/theory_inference_manager.h theory/theory_model.cpp theory/theory_model.h theory/theory_model_builder.cpp theory/theory_model_builder.h theory/theory_preprocessor.cpp theory/theory_preprocessor.h theory/theory_rewriter.cpp theory/theory_rewriter.h theory/theory_state.cpp theory/theory_state.h theory/trust_substitutions.cpp theory/trust_substitutions.h theory/type_enumerator.h theory/type_set.cpp theory/type_set.h theory/uf/cardinality_extension.cpp theory/uf/cardinality_extension.h theory/uf/equality_engine.cpp theory/uf/equality_engine.h theory/uf/equality_engine_iterator.cpp theory/uf/equality_engine_iterator.h theory/uf/equality_engine_notify.h theory/uf/equality_engine_types.h theory/uf/eq_proof.cpp theory/uf/eq_proof.h theory/uf/proof_checker.cpp theory/uf/proof_checker.h theory/uf/proof_equality_engine.cpp theory/uf/proof_equality_engine.h theory/uf/ho_extension.cpp theory/uf/ho_extension.h theory/uf/symmetry_breaker.cpp theory/uf/symmetry_breaker.h theory/uf/theory_uf.cpp theory/uf/theory_uf.h theory/uf/theory_uf_model.cpp theory/uf/theory_uf_model.h theory/uf/theory_uf_rewriter.cpp theory/uf/theory_uf_rewriter.h theory/uf/theory_uf_type_rules.cpp theory/uf/theory_uf_type_rules.h theory/valuation.cpp theory/valuation.h ) #-----------------------------------------------------------------------------# # Add required include paths for this and all subdirectories. include_directories(include) include_directories(. ${CMAKE_CURRENT_BINARY_DIR}) #-----------------------------------------------------------------------------# # Take care of options check_python_module("toml") set(options_toml_files options/arith_options.toml options/arrays_options.toml options/base_options.toml options/booleans_options.toml options/builtin_options.toml options/bv_options.toml options/datatypes_options.toml options/decision_options.toml options/expr_options.toml options/fp_options.toml options/main_options.toml options/parser_options.toml options/printer_options.toml options/proof_options.toml options/prop_options.toml options/quantifiers_options.toml options/sep_options.toml options/sets_options.toml options/smt_options.toml options/strings_options.toml options/theory_options.toml options/uf_options.toml ) string(REPLACE "toml" "cpp;" options_gen_cpp_files ${options_toml_files}) string(REPLACE "toml" "h;" options_gen_h_files ${options_toml_files}) list(APPEND options_gen_cpp_files "options/options.cpp" "options/options_public.cpp" "main/options.cpp") list(APPEND options_gen_h_files "options/options.h") libcvc5_add_sources(GENERATED ${options_gen_cpp_files} ${options_gen_h_files}) list_prepend(options_toml_files "${CMAKE_CURRENT_LIST_DIR}/" abs_toml_files) set(options_gen_doc_files "") if (BUILD_DOCS) list( APPEND options_gen_doc_files "${CMAKE_BINARY_DIR}/docs/options_generated.rst" ) endif() add_custom_command( OUTPUT ${options_gen_cpp_files} ${options_gen_h_files} ${options_gen_doc_files} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/options COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/options/mkoptions.py ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${abs_toml_files} DEPENDS options/mkoptions.py ${options_toml_files} main/options_template.cpp options/module_template.h options/module_template.cpp options/options_public_template.cpp options/options_template.h options/options_template.cpp ) add_custom_target(gen-options DEPENDS ${options_gen_cpp_files} ${options_gen_h_files} ) #-----------------------------------------------------------------------------# set(KINDS_FILES ${PROJECT_SOURCE_DIR}/src/theory/builtin/kinds ${PROJECT_SOURCE_DIR}/src/theory/booleans/kinds ${PROJECT_SOURCE_DIR}/src/theory/uf/kinds ${PROJECT_SOURCE_DIR}/src/theory/arith/kinds ${PROJECT_SOURCE_DIR}/src/theory/bv/kinds ${PROJECT_SOURCE_DIR}/src/theory/fp/kinds ${PROJECT_SOURCE_DIR}/src/theory/arrays/kinds ${PROJECT_SOURCE_DIR}/src/theory/datatypes/kinds ${PROJECT_SOURCE_DIR}/src/theory/sep/kinds ${PROJECT_SOURCE_DIR}/src/theory/sets/kinds ${PROJECT_SOURCE_DIR}/src/theory/bags/kinds ${PROJECT_SOURCE_DIR}/src/theory/strings/kinds ${PROJECT_SOURCE_DIR}/src/theory/quantifiers/kinds) #-----------------------------------------------------------------------------# # Add subdirectories add_subdirectory(base) add_subdirectory(context) add_subdirectory(expr) add_subdirectory(parser) add_subdirectory(theory) add_subdirectory(util) #-----------------------------------------------------------------------------# # All sources for libcvc5 are now collected in LIBCVC5_SRCS and (if generated) # LIBCVC5_GEN_SRCS (via libcvc5_add_sources). We can now build libcvc5. set_source_files_properties(${LIBCVC5_GEN_SRCS} PROPERTIES GENERATED TRUE) # First build the object library add_library(cvc5-obj OBJECT ${LIBCVC5_SRCS} ${LIBCVC5_GEN_SRCS}) target_compile_definitions(cvc5-obj PRIVATE -D__BUILDING_CVC5LIB) set_target_properties(cvc5-obj PROPERTIES POSITION_INDEPENDENT_CODE ON) # add_dependencies() is necessary for cmake versions before 3.21 add_dependencies(cvc5-obj cvc5base cvc5context) # Add libcvc5 dependencies for generated sources. add_dependencies(cvc5-obj gen-expr gen-versioninfo gen-options gen-tags gen-theory) # Link the shared library add_library(cvc5-shared SHARED $ $ $) set_target_properties(cvc5-shared PROPERTIES SOVERSION ${CVC5_SOVERSION}) set_target_properties(cvc5-shared PROPERTIES OUTPUT_NAME cvc5) target_include_directories(cvc5-shared PUBLIC $ $ ) install(TARGETS cvc5-shared EXPORT cvc5-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) if(ENABLE_STATIC_LIBRARY) add_library(cvc5-static STATIC $ $ $) set_target_properties(cvc5-static PROPERTIES OUTPUT_NAME cvc5) target_include_directories(cvc5-static PUBLIC $ $ ) install(TARGETS cvc5-static EXPORT cvc5-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() include(GenerateExportHeader) generate_export_header(cvc5-obj BASE_NAME cvc5) # Add library/include dependencies add_dependencies(cvc5-obj GMP_SHARED) target_include_directories(cvc5-obj PRIVATE ${GMP_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE GMP_SHARED) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC GMP_STATIC) endif() # Add rt library # Note: For glibc < 2.17 we have to additionally link against rt (man clock_gettime). # RT_LIBRARIES should be empty for glibc >= 2.17 target_link_libraries(cvc5-shared PRIVATE ${RT_LIBRARIES}) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PRIVATE ${RT_LIBRARIES}) endif() if(ENABLE_VALGRIND) target_include_directories(cvc5-obj PUBLIC ${Valgrind_INCLUDE_DIR}) endif() if(USE_ABC) target_include_directories(cvc5-obj PRIVATE ${ABC_INCLUDE_DIR}) target_link_libraries(cvc5-obj PUBLIC ${ABC_LIBRARIES}) endif() add_dependencies(cvc5-obj CaDiCaL) target_include_directories(cvc5-obj PRIVATE ${CaDiCaL_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE CaDiCaL) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC CaDiCaL) endif() if(USE_CLN) add_dependencies(cvc5-obj CLN_SHARED) target_include_directories(cvc5-obj PRIVATE ${CLN_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE CLN_SHARED) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC CLN_STATIC) endif() endif() if(USE_CRYPTOMINISAT) add_dependencies(cvc5-obj CryptoMiniSat) target_include_directories(cvc5-obj PRIVATE ${CryptoMiniSat_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE CryptoMiniSat) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC CryptoMiniSat) endif() endif() if(USE_KISSAT) add_dependencies(cvc5-obj Kissat) target_include_directories(cvc5-obj PRIVATE ${Kissat_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE Kissat) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC Kissat) endif() endif() if(USE_GLPK) target_include_directories(cvc5-obj PRIVATE ${GLPK_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE ${GLPK_LIBRARIES}) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC ${GLPK_LIBRARIES}) endif() target_link_libraries(cvc5-obj PUBLIC ${GLPK_LIBRARIES}) endif() if(USE_POLY) add_dependencies(cvc5-obj Polyxx_SHARED) target_include_directories(cvc5-obj PRIVATE ${Poly_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE Polyxx_SHARED) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC Polyxx_STATIC) endif() endif() if(USE_COCOA) add_dependencies(cvc5-obj CoCoA) target_include_directories(cvc5-obj PRIVATE ${CoCoA_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE CoCoA) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC CoCoA) endif() endif() add_dependencies(cvc5-obj SymFPU) target_include_directories(cvc5-obj PRIVATE ${SymFPU_INCLUDE_DIR}) target_link_libraries(cvc5-shared PRIVATE SymFPU) if(ENABLE_STATIC_LIBRARY) target_link_libraries(cvc5-static PUBLIC SymFPU) endif() #-----------------------------------------------------------------------------# # Visit main subdirectory after creating target cvc5. For target main, we have # to manually add library dependencies since we can't use # target_link_libraries(...) with object libraries for cmake versions <= 3.12. # Thus, we can only visit main as soon as all dependencies for cvc5 are set up. add_subdirectory(main) #-----------------------------------------------------------------------------# # Install public API headers install(FILES api/cpp/cvc5.h api/cpp/cvc5_kind.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cvc5/) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cvc5_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cvc5/) # Fix include paths for all public headers. # Note: This is a temporary fix until the new C++ API is in place. install(CODE "execute_process(COMMAND ${CMAKE_CURRENT_LIST_DIR}/fix-install-headers.sh ${CMAKE_INSTALL_PREFIX})")