From 195454df0895051579cd83d6e64d2308a8f42c16 Mon Sep 17 00:00:00 2001 From: Jose Date: Wed, 14 Jan 2015 09:22:33 +0100 Subject: JavaScript updates to use gulp and add npm and bower packages --- cpp/src/slice2js/Main.cpp | 66 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 12 deletions(-) (limited to 'cpp/src/slice2js/Main.cpp') diff --git a/cpp/src/slice2js/Main.cpp b/cpp/src/slice2js/Main.cpp index b09dccb6287..328b8997f60 100644 --- a/cpp/src/slice2js/Main.cpp +++ b/cpp/src/slice2js/Main.cpp @@ -66,8 +66,10 @@ usage(const char* n) "-UNAME Remove any definition for NAME.\n" "-IDIR Put DIR in the include file search path.\n" "-E Print preprocessor output on stdout.\n" + "--stdout Print genreated code to stdout.\n" "--output-dir DIR Create files in the directory DIR.\n" "--depend Generate Makefile dependencies.\n" + "--depend-json Generate Makefile dependencies in JSON format.\n" "-d, --debug Print debug messages.\n" "--ice Permit `Ice' prefix (for building Ice source code only).\n" "--underscore Permit underscores in Slice identifiers.\n" @@ -85,8 +87,10 @@ compile(int argc, char* argv[]) opts.addOpt("U", "", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat); opts.addOpt("I", "", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat); opts.addOpt("E"); + opts.addOpt("", "stdout"); opts.addOpt("", "output-dir", IceUtilInternal::Options::NeedArg); opts.addOpt("", "depend"); + opts.addOpt("", "depend-json"); opts.addOpt("d", "debug"); opts.addOpt("", "ice"); opts.addOpt("", "underscore"); @@ -137,9 +141,13 @@ compile(int argc, char* argv[]) bool preprocess = opts.isSet("E"); + bool useStdout = opts.isSet("stdout"); + string output = opts.optArg("output-dir"); bool depend = opts.isSet("depend"); + + bool dependJSON = opts.isSet("depend-json"); bool debug = opts.isSet("debug"); @@ -161,18 +169,27 @@ compile(int argc, char* argv[]) IceUtil::CtrlCHandler ctrlCHandler; ctrlCHandler.setCallback(interruptedCallback); + if(dependJSON) + { + cout << "{" << endl; + } + + // + // Create a copy of args without the duplicates. + // + vector sources; for(vector::const_iterator i = args.begin(); i != args.end(); ++i) { - // - // Ignore duplicates. - // - vector::iterator p = find(args.begin(), args.end(), *i); - if(p != i) + vector::iterator p = find(sources.begin(), sources.end(), *i); + if(p == sources.end()) { - continue; + sources.push_back(*i); } - - if(depend) + } + + for(vector::const_iterator i = sources.begin(); i != sources.end();) + { + if(depend || dependJSON) { PreprocessorPtr icecpp = Preprocessor::create(argv[0], *i, cppArgs); FILE* cppHandle = icecpp->preprocess(false, "-D__SLICE2JS__"); @@ -190,8 +207,10 @@ compile(int argc, char* argv[]) { return EXIT_FAILURE; } - - if(!icecpp->printMakefileDependencies(Preprocessor::JS, includePaths, + + bool last = (++i == sources.end()); + + if(!icecpp->printMakefileDependencies(depend ? Preprocessor::JavaScript : Preprocessor::JavaScriptJSON, includePaths, "-D__SLICE2JS__")) { return EXIT_FAILURE; @@ -201,6 +220,15 @@ compile(int argc, char* argv[]) { return EXIT_FAILURE; } + + if(dependJSON) + { + if(!last) + { + cout << ","; + } + cout << "\n"; + } } else { @@ -245,8 +273,16 @@ compile(int argc, char* argv[]) { try { - Gen gen(icecpp->getBaseName(), includePaths, output, icejs); - gen.generate(p); + if(useStdout) + { + Gen gen(icecpp->getBaseName(), includePaths, output, icejs, cout); + gen.generate(p); + } + else + { + Gen gen(icecpp->getBaseName(), includePaths, output, icejs); + gen.generate(p); + } } catch(const Slice::FileException& ex) { @@ -262,6 +298,7 @@ compile(int argc, char* argv[]) p->destroy(); } + ++i; } { @@ -274,6 +311,11 @@ compile(int argc, char* argv[]) } } } + + if(dependJSON) + { + cout << "}" << endl; + } return status; } -- cgit v1.2.3