diff options
author | Marc Laukien <marc@zeroc.com> | 2001-10-09 02:40:28 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-10-09 02:40:28 +0000 |
commit | 18fc50b090af21d360be4b3bf776713bcd781517 (patch) | |
tree | 1f0cfdf75174eec47990b785f5a774e5766dec7a /cpp/src | |
parent | fixes (diff) | |
download | ice-18fc50b090af21d360be4b3bf776713bcd781517.tar.bz2 ice-18fc50b090af21d360be4b3bf776713bcd781517.tar.xz ice-18fc50b090af21d360be4b3bf776713bcd781517.zip |
fixes
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/slice2freeze/Main.cpp | 30 |
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); |