mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Add a way to access argv[0] in hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74483 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
583cf31973
commit
875ace52ee
@ -71,11 +71,16 @@ namespace {
|
||||
|
||||
namespace llvmc {
|
||||
|
||||
// Sometimes plugins want to condition on the value in argv[0].
|
||||
const char* ProgramName;
|
||||
|
||||
int Main(int argc, char** argv) {
|
||||
try {
|
||||
LanguageMap langMap;
|
||||
CompilationGraph graph;
|
||||
|
||||
ProgramName = argv[0];
|
||||
|
||||
cl::ParseCommandLineOptions
|
||||
(argc, argv, "LLVM Compiler Driver (Work In Progress)", true);
|
||||
|
||||
|
@ -678,6 +678,28 @@ errors as its status code.
|
||||
.. _Graphviz: http://www.graphviz.org/
|
||||
.. _Ghostview: http://pages.cs.wisc.edu/~ghost/
|
||||
|
||||
Conditioning on the executable name
|
||||
-----------------------------------
|
||||
|
||||
For now, the executable name (the value passed to the driver in ``argv[0]``) is
|
||||
accessible only in the C++ code (i.e. hooks). Use the following code::
|
||||
|
||||
namespace llvmc {
|
||||
extern const char* ProgramName;
|
||||
}
|
||||
|
||||
std::string MyHook() {
|
||||
//...
|
||||
if (strcmp(ProgramName, "mydriver") == 0) {
|
||||
//...
|
||||
|
||||
}
|
||||
|
||||
In general, you're encouraged not to make the behaviour dependent on the
|
||||
executable file name, and use command-line switches instead. See for example how
|
||||
the ``Base`` plugin behaves when it needs to choose the correct linker options
|
||||
(think ``g++`` vs. ``gcc``).
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr />
|
||||
|
Loading…
Reference in New Issue
Block a user