diff options
-rw-r--r-- | codemaker/source/codemaker/typemanager.cxx | 8 | ||||
-rw-r--r-- | codemaker/source/cppumaker/cppumaker.cxx | 6 | ||||
-rw-r--r-- | codemaker/source/cppumaker/cppuoptions.cxx | 25 | ||||
-rw-r--r-- | codemaker/source/javamaker/javamaker.cxx | 4 | ||||
-rw-r--r-- | include/codemaker/typemanager.hxx | 2 | ||||
-rw-r--r-- | unodevtools/source/skeletonmaker/skeletonmaker.cxx | 2 |
6 files changed, 37 insertions, 10 deletions
diff --git a/codemaker/source/codemaker/typemanager.cxx b/codemaker/source/codemaker/typemanager.cxx index ff0e6f92a259..13da4d3ed7f3 100644 --- a/codemaker/source/codemaker/typemanager.cxx +++ b/codemaker/source/codemaker/typemanager.cxx @@ -27,15 +27,19 @@ #include "codemaker/typemanager.hxx" #include "rtl/ref.hxx" #include "rtl/ustring.hxx" +#include "unoidl/sourceprovider.hxx" #include "unoidl/unoidl.hxx" TypeManager::TypeManager(): manager_(new unoidl::Manager) {} TypeManager::~TypeManager() {} -void TypeManager::loadProvider(OUString const & uri, bool primary) { +void TypeManager::loadProvider(OUString const & uri, bool source, bool primary) +{ rtl::Reference< unoidl::Provider > prov( - unoidl::loadProvider(manager_, uri)); + source + ? new unoidl::SourceProvider(manager_, uri) + : unoidl::loadProvider(manager_, uri)); manager_->addProvider(prov); if (primary) { primaryProviders_.push_back(prov); diff --git a/codemaker/source/cppumaker/cppumaker.cxx b/codemaker/source/cppumaker/cppumaker.cxx index 2a698f415f03..733eb853dc92 100644 --- a/codemaker/source/cppumaker/cppumaker.cxx +++ b/codemaker/source/cppumaker/cppumaker.cxx @@ -52,13 +52,15 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { options.getExtraInputFiles().begin()); i != options.getExtraInputFiles().end(); ++i) { - typeMgr->loadProvider(convertToFileUrl(*i), false); + typeMgr->loadProvider( + convertToFileUrl(*i), options.isValid("-U"), false); } for (std::vector< OString >::const_iterator i( options.getInputFiles().begin()); i != options.getInputFiles().end(); ++i) { - typeMgr->loadProvider(convertToFileUrl(*i), true); + typeMgr->loadProvider( + convertToFileUrl(*i), options.isValid("-U"), true); } codemaker::GeneratedTypeSet generated; if (options.isValid("-T")) { diff --git a/codemaker/source/cppumaker/cppuoptions.cxx b/codemaker/source/cppumaker/cppuoptions.cxx index 3e70b68c5131..36439542b2f9 100644 --- a/codemaker/source/cppumaker/cppuoptions.cxx +++ b/codemaker/source/cppumaker/cppuoptions.cxx @@ -139,6 +139,19 @@ sal_Bool CppuOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) m_options["-T"] = OString(s); } break; + case 'U': + if (av[i][2] != '\0') + { + OString tmp("'-U', please check"); + if (i <= ac - 1) + { + tmp += " your input '" + OString(av[i]) + "'"; + } + + throw IllegalArgument(tmp); + } + m_options["-U"] = ""; + break; case 'L': if (av[i][2] != '\0') { @@ -321,9 +334,17 @@ OString CppuOptions::prepareHelp() help += " -O<path> = path describes the root directory for the generated output.\n"; help += " The output directory tree is generated under this directory.\n"; help += " -T<name> = name specifies a type or a list of types. The output for this\n"; - help += " [t1;...] type is generated. If no '-T' option is specified,\n"; - help += " then output for all types is generated.\n"; + help += " [t1;...] type and all dependent types are generated. If no '-T' option is\n"; + help += " specified, then output for all types is generated.\n"; help += " Example: 'com.sun.star.uno.XInterface' is a valid type.\n"; + help += " -U = instead of interpreting file_1 ... file_n as type rdb files,\n"; + help += " interpret them as (directories of) UNOIDL source files. If no\n"; + help += " '-T' option is given, each file_i must denote a UNOIDL file, and\n"; + help += " headers are generated for all entities defined in those files."; + help += " Otherwise, each file_i must denote a directory, and an entity\n"; + help += " com.sun.star.uno.XInterface specified with '-T' would be searched\n"; + help += " for as com/sun/star/uno/XInterface.idl under each of those\n"; + help += " directories in turn."; help += " -L = UNO type functions are generated lightweight, that means only\n"; help += " the name and typeclass are given and everything else is retrieved\n"; help += " from the type library dynamically. The default is that UNO type\n"; diff --git a/codemaker/source/javamaker/javamaker.cxx b/codemaker/source/javamaker/javamaker.cxx index d74aafa31810..4f5730c0780f 100644 --- a/codemaker/source/javamaker/javamaker.cxx +++ b/codemaker/source/javamaker/javamaker.cxx @@ -52,13 +52,13 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { options.getExtraInputFiles().begin()); i != options.getExtraInputFiles().end(); ++i) { - typeMgr->loadProvider(convertToFileUrl(*i), false); + typeMgr->loadProvider(convertToFileUrl(*i), false, false); } for (std::vector< rtl::OString >::const_iterator i( options.getInputFiles().begin()); i != options.getInputFiles().end(); ++i) { - typeMgr->loadProvider(convertToFileUrl(*i), true); + typeMgr->loadProvider(convertToFileUrl(*i), false, true); } codemaker::GeneratedTypeSet generated; if (options.isValid("-T")) { diff --git a/include/codemaker/typemanager.hxx b/include/codemaker/typemanager.hxx index fc6aba69ab1d..a268b110fe56 100644 --- a/include/codemaker/typemanager.hxx +++ b/include/codemaker/typemanager.hxx @@ -42,7 +42,7 @@ class TypeManager: public salhelper::SimpleReferenceObject { public: TypeManager(); - void loadProvider(OUString const & uri, bool primary); + void loadProvider(OUString const & uri, bool source, bool primary); bool foundAtPrimaryProvider(OUString const & name) const; diff --git a/unodevtools/source/skeletonmaker/skeletonmaker.cxx b/unodevtools/source/skeletonmaker/skeletonmaker.cxx index b2d54618e3a0..f884f88c2791 100644 --- a/unodevtools/source/skeletonmaker/skeletonmaker.cxx +++ b/unodevtools/source/skeletonmaker/skeletonmaker.cxx @@ -268,7 +268,7 @@ SAL_IMPLEMENT_MAIN() for (std::vector< OString >::const_iterator i(registries.begin()); i != registries.end(); ++i) { - manager->loadProvider(convertToFileUrl(*i), true); + manager->loadProvider(convertToFileUrl(*i), false, true); } if ( options.dump ) { |