# Configuration for CLib code generation.

# This file is part of Cantera. See License.txt in the top-level directory or
# at https://cantera.org/license.txt for license and copyright information.

# List of files to ignore entirely. For CLib, this option is only used for testing or
# debugging purposes and should otherwise be left empty.
ignore_files: []

# Dictionary of file names and list of functions to ignore. For CLib, this options is
# only used for testing or debugging purposes and should otherwise be left empty.
ignore_funcs: {}

# Return type crosswalks
ret_type_crosswalk:
  bool: int32_t
  void: int32_t
  int: int32_t
  size_t: int32_t
  shared_ptr<T>: int32_t
  double: double
  vector<double>: double*
  string: char*

# Parameter type crosswalks
par_type_crosswalk:
  bool: int32_t
  int: int32_t
  size_t: int32_t
  shared_ptr<T>: int32_t
  int*: int32_t*
  vector<shared_ptr<T>>: int32_t*
  double: double
  double*: double*
  vector<double>: double*
  string: char*

# Cabinets with associated preambles (headers)
preambles:
  "": |-
    #include "cantera_clib/clib_defs.h"
    #include <stdint.h>  // for 32-bit int32_t / 64-bit int64_t

# Cabinets with associated includes (implementation files)
includes:
  "":
  - cantera/base/global.h
  - cantera/base/ExternalLogger.h
  Solution:
  - cantera/base/Solution.h
  Interface:
  - cantera/base/Interface.h
  ThermoPhase:
  - cantera/thermo/ThermoFactory.h
  - cantera/thermo/SurfPhase.h
  Kinetics:
  - cantera/kinetics/KineticsFactory.h
  - cantera/kinetics/InterfaceKinetics.h
  Transport:
  - cantera/transport/TransportFactory.h
  MultiPhase:
  - cantera/equil/MultiPhase.h
  - cantera/thermo/ThermoPhase.h
  Reaction:
  - cantera/kinetics/Reaction.h
  ReactionPathDiagram:
  - cantera/kinetics/ReactionPath.h
  Func1:
  - cantera/numerics/Func1Factory.h
  ReactorBase:
  - cantera/zeroD/ReactorFactory.h
  - cantera/zeroD/FlowReactor.h
  ConnectorNode:
  - cantera/zeroD/ConnectorFactory.h
  - cantera/zeroD/flowControllers.h
  - cantera/zeroD/Wall.h
  ReactorNet:
  - cantera/zeroD/ReactorNet.h
  Domain1D:
  - cantera/oneD/DomainFactory.h
  Flow1D:
  - cantera/oneD/Flow1D.h
  Boundary1D:
  - cantera/oneD/Boundary1D.h
  Sim1D:
  - cantera/oneD/Sim1D.h
