6#ifndef MATERIALX_LIBRARY_H
7#define MATERIALX_LIBRARY_H
19#include <unordered_map>
22#include <MaterialXCore/Generated.h>
24#define MATERIALX_GENERATE_INDEX(major, minor, build) \
25 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(build)))
26#define MATERIALX_VERSION_INDEX \
27 MATERIALX_GENERATE_INDEX(MATERIALX_MAJOR_VERSION, MATERIALX_MINOR_VERSION, MATERIALX_BUILD_VERSION)
30#if defined(MATERIALX_BUILD_SHARED_LIBS)
32 #pragma warning(disable : 4251)
33 #pragma warning(disable : 4275)
34 #pragma warning(disable : 4661)
35 #define MATERIALX_SYMBOL_EXPORT __declspec(dllexport)
36 #define MATERIALX_SYMBOL_IMPORT __declspec(dllimport)
37 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__
38 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__
40 #define MATERIALX_SYMBOL_EXPORT __attribute__((__visibility__("default")))
41 #define MATERIALX_SYMBOL_IMPORT __attribute__((__visibility__("default")))
42 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__
43 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__
46 #define MATERIALX_SYMBOL_EXPORT
47 #define MATERIALX_SYMBOL_IMPORT
48 #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...)
49 #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...)
52MATERIALX_NAMESPACE_BEGIN
62using StringMap = std::unordered_map<string, string>;
66MATERIALX_NAMESPACE_END
std::set< string > StringSet
A set of strings.
Definition Library.h:64
vector< string > StringVec
A vector of strings.
Definition Library.h:60
std::unordered_map< string, string > StringMap
An unordered map with strings as both keys and values.
Definition Library.h:62