Vuo
2.0.2
compiler
VuoCompilerModule.hh
Go to the documentation of this file.
1
10
#pragma once
11
12
#include "
VuoCompilerTargetSet.hh
"
13
14
class
VuoCompilerBitcodeParser
;
15
class
VuoModule
;
16
22
class
VuoCompilerModule
23
{
24
private
:
25
VuoModule
*base;
26
VuoCompilerTargetSet
compatibleTargets;
27
bool
builtIn;
28
string
modulePath;
29
30
static
bool
isModule(Module *
module
,
string
moduleKey);
31
32
protected
:
33
struct
json_object
*
moduleDetails
;
34
set<string>
dependencies
;
35
Module *
module
;
36
VuoCompilerBitcodeParser
*
parser
;
37
38
VuoCompilerModule
(
VuoModule
*base, Module *
module
);
39
40
virtual
void
parse
(
void
);
41
virtual
void
parseMetadata
(
void
);
42
virtual
set<string>
globalsToRename
(
void
);
43
string
nameForGlobal
(
string
genericGlobalVarOrFuncName);
44
static
string
nameForGlobal
(
string
nameBeforeCompilation,
string
moduleKey);
45
static
bool
hasOriginalOrMangledGlobal
(
string
nameBeforeCompilation, Module *
module
,
string
moduleKey);
46
void
renameGlobalVarsAndFuncs
(
void
);
47
48
friend
class
TestVuoCompilerModule;
49
friend
class
TestModules;
50
51
public
:
52
static
VuoCompilerModule
*
newModule
(
const
string
&moduleKey, Module *
module
,
const
string
&modulePath);
53
virtual
~VuoCompilerModule
(
void
);
54
55
VuoCompilerTargetSet
parseTargetSet
(
json_object
*o,
string
key);
56
VuoCompilerTargetSet::MacVersion
parseMacVersion
(
string
version);
57
static
Function *
declareFunctionInModule
(Module *
module
, Function *
function
);
58
virtual
set<string>
getDependencies
(
void
);
59
virtual
string
getDependencyName
(
void
);
60
VuoCompilerTargetSet
getCompatibleTargets
(
void
);
61
Module *
getModule
(
void
);
62
VuoModule
*
getPseudoBase
(
void
);
63
bool
isBuiltIn
(
void
);
64
void
setBuiltIn
(
bool
builtIn);
65
string
getModulePath
(
void
);
66
67
private
:
68
#pragma clang diagnostic push
69
#pragma clang diagnostic ignored "-Wunused-private-field"
70
void
*p;
71
#pragma clang diagnostic pop
72
#if VUO_PRO
73
#include "pro/VuoCompilerModule_Pro.hh"
74
#endif
75
};
Generated on Thu Mar 19 2020 23:15:56 for Vuo by
1.8.17