diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /dcopjava/dcopidl2java/main.cpp | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'dcopjava/dcopidl2java/main.cpp')
-rw-r--r-- | dcopjava/dcopidl2java/main.cpp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/dcopjava/dcopidl2java/main.cpp b/dcopjava/dcopidl2java/main.cpp new file mode 100644 index 00000000..1df03b98 --- /dev/null +++ b/dcopjava/dcopidl2java/main.cpp @@ -0,0 +1,110 @@ +/***************************************************************** +Copyright (c) 1999 Torben Weis <weis@kde.org> +Copyright (c) 2000 Matthias Ettrich <ettrich@kde.org> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ +#include <qdom.h> +#include <qfile.h> +#include <qtextstream.h> +#include <qstring.h> + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include "main.h" + + + +void usage() +{ + fprintf( stderr, "Usage: dcopidl2java [ --no-skel | --no-stub | --package java-package ] file\n" ); +} + +int main( int argc, char** argv ) +{ + + if ( *qVersion() == '1' ) { + fprintf( stderr, "dcopidl2cpp appears to be linked to Qt 1 instead of Qt 2 ! Aborting.\n" ); + exit(1); + } + int argpos = 1; + bool generate_skel = TRUE; + bool generate_stub = TRUE; + QString package; + + while (argc > 2) { + + if ( strcmp( argv[argpos], "--no-skel" ) == 0 ) + { + generate_skel = FALSE; + for (int i = argpos; i < argc - 1; i++) argv[i] = argv[i+1]; + argc--; + } + else if ( strcmp( argv[argpos], "--no-stub" ) == 0 ) + { + generate_stub = FALSE; + for (int i = argpos; i < argc - 1; i++) argv[i] = argv[i+1]; + argc--; + } + else if ( strcmp( argv[argpos], "--package" ) == 0 ) + { + if (argpos + 1 < argc) + package = QString(argv[argpos+1]); + + for (int i = argpos; i < argc - 2; i++) argv[i] = argv[i+2]; + argc -= 2; + } else { + usage(); + exit(1); + + } + } + + QFile in( argv[argpos] ); + if ( !in.open( IO_ReadOnly ) ) + qFatal("Could not read %s", argv[argpos] ); + + QDomDocument doc; + doc.setContent( &in ); + + QDomElement de = doc.documentElement(); + ASSERT( de.tagName() == "DCOP-IDL" ); + + QString base( argv[argpos] ); + QString idl = base; + + int pos = base.findRev( '.' ); + if ( pos != -1 ) + base = base.left( pos ); + + pos = idl.findRev('/'); + if ( pos != -1 ) + idl = idl.mid( pos+1 ); + + if ( generate_skel ) + ;// generateSkel( idl, base + "_skel.java", de ); + + if ( generate_stub ) { + generateStubImpl( idl, package, base + "_stub.java", de ); + } + + return 0; +} |