6#ifndef MATERIALX_LIBRARY_H
7#define MATERIALX_LIBRARY_H
20#include <unordered_map>
23#include <MaterialXCore/Generated.h>
25#define MATERIALX_GENERATE_INDEX(major, minor, build) (((major) << 22U) | ((minor) << 12U) | (build))
27#define MATERIALX_VERSION_INDEX \
28 MATERIALX_GENERATE_INDEX(MATERIALX_MAJOR_VERSION, MATERIALX_MINOR_VERSION, MATERIALX_BUILD_VERSION)
31#if defined(MATERIALX_BUILD_SHARED_LIBS)
33 #pragma warning(disable : 4251)
34 #pragma warning(disable : 4275)
35 #pragma warning(disable : 4661)
36 #define MATERIALX_SYMBOL_EXPORT __declspec(dllexport)
37 #define MATERIALX_SYMBOL_IMPORT __declspec(dllimport)
38 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__
39 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__
41 #define MATERIALX_SYMBOL_EXPORT __attribute__((__visibility__("default")))
42 #define MATERIALX_SYMBOL_IMPORT __attribute__((__visibility__("default")))
43 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__
44 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__
47 #define MATERIALX_SYMBOL_EXPORT
48 #define MATERIALX_SYMBOL_IMPORT
49 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...)
50 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...)
53MATERIALX_NAMESPACE_BEGIN
63using StringMap = std::unordered_map<string, string>;
67MATERIALX_NAMESPACE_END
std::set< string > StringSet
A set of strings.
Definition Library.h:65
vector< string > StringVec
A vector of strings.
Definition Library.h:61
std::unordered_map< string, string > StringMap
An unordered map with strings as both keys and values.
Definition Library.h:63