summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-10-09 02:40:28 +0000
committerMarc Laukien <marc@zeroc.com>2001-10-09 02:40:28 +0000
commit18fc50b090af21d360be4b3bf776713bcd781517 (patch)
tree1f0cfdf75174eec47990b785f5a774e5766dec7a /cpp/src
parentfixes (diff)
downloadice-18fc50b090af21d360be4b3bf776713bcd781517.tar.bz2
ice-18fc50b090af21d360be4b3bf776713bcd781517.tar.xz
ice-18fc50b090af21d360be4b3bf776713bcd781517.zip
fixes
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/slice2freeze/Main.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp
index 80d8a04d9a9..8d38a5aa051 100644
--- a/cpp/src/slice2freeze/Main.cpp
+++ b/cpp/src/slice2freeze/Main.cpp
@@ -39,6 +39,7 @@ usage(const char* n)
" using KEY as key, and VALUE as value. This\n"
" option may be specified multiple times for\n"
" different names. NAME may be a scoped name.\n"
+ "--output-dir DIR Create files in the directory DIR.\n"
"-d, --debug Print debug messages.\n"
;
}
@@ -199,6 +200,7 @@ main(int argc, char* argv[])
vector<string> includePaths;
string include;
string dllExport;
+ string output;
bool debug = false;
vector<Dict> dicts;
@@ -342,6 +344,22 @@ main(int argc, char* argv[])
}
argc -= 2;
}
+ else if (strcmp(argv[idx], "--output-dir") == 0)
+ {
+ if (idx + 1 >= argc)
+ {
+ cerr << argv[0] << ": argument expected for`" << argv[idx] << "'" << endl;
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ output = argv[idx + 1];
+ for (int i = idx ; i + 2 < argc ; ++i)
+ {
+ argv[i] = argv[i + 2];
+ }
+ argc -= 2;
+ }
else if (argv[idx][0] == '-')
{
cerr << argv[0] << ": unknown option `" << argv[idx] << "'" << endl;
@@ -368,10 +386,22 @@ main(int argc, char* argv[])
return EXIT_FAILURE;
}
+ if (argc < 3)
+ {
+ cerr << argv[0] << ": no input file" << endl;
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
+
string fileH = argv[1];
fileH += ".h";
string fileC = argv[1];
fileC += ".cpp";
+ if (!output.empty())
+ {
+ fileH = output + '/' + fileH;
+ fileC = output + '/' + fileC;
+ }
UnitPtr unit = Unit::createUnit(true, false);