%module CoolProp %ignore CoolProp::AbstractState::set_mole_fractions(const std::vector< long double> &); %ignore CoolProp::AbstractState::set_mass_fractions(const std::vector< long double> &); %ignore CoolProp::set_config_json(rapidjson::Document &); %ignore CoolProp::get_config_as_json(rapidjson::Document &); #ifdef SWIGMATLAB %ignore configuration_keys; %ignore CoolProp::ConfigurationItem::ConfigurationDataTypes; %ignore CoolProp::SsatSimpleState::SsatSimpleStateEnum; %ignore CoolProp::composition_types; %ignore CoolProp::fluid_types; #endif %include "std_string.i" // This %include allows the use of std::string natively %include "std_vector.i" // This allows for the use of STL vectors natively(ish) %include "exception.i" // // Instantiate templates used by example namespace std { %template(LongDoubleVector) vector; %template(DoubleVector) vector; } %exception { try { $action } catch (std::exception &e) { SWIG_exception(SWIG_RuntimeError, e.what()); } catch (...) { SWIG_exception(SWIG_RuntimeError, "unknown exception"); } } // %rename(SS) CoolProp::SimpleState; %rename(PED) CoolProp::PhaseEnvelopeData; // This stuff will get included verbatim in CoolProp_wrap %{ #include "DataStructures.h" #include "AbstractState.h" #include "CoolProp.h" #include "PhaseEnvelope.h" #define SWIG #include "Configuration.h" #undef SWIG %} %include "DataStructures.h" %include "AbstractState.h" %include "CoolProp.h" %include "PhaseEnvelope.h" %include "Configuration.h"