summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Boelzle <dbo@openoffice.org>2003-05-08 11:41:06 +0000
committerDaniel Boelzle <dbo@openoffice.org>2003-05-08 11:41:06 +0000
commitd1b2853eff6c8f17d6faf07ff49a062627321175 (patch)
treef8450c46d87c68796ad1bbd191c6df70a8ebab1c
parenta2a7384e2e428b0ec2bda72ba47f168f377e885a (diff)
#107130#
+ cli_udkapi.dll, cli_offapi.dll -> cli_types.dll + support for deployed type metadata (->pkgchk) + different implementation loading + misc climaker fixes + misc code cleanup
-rw-r--r--cli_ure/prj/build.lst2
-rw-r--r--cli_ure/prj/d.lst3
-rw-r--r--cli_ure/source/climaker/climaker_app.cxx72
-rw-r--r--cli_ure/source/climaker/climaker_emit.cxx11
-rw-r--r--cli_ure/source/native/msvc.map4
-rw-r--r--cli_ure/source/native/native_share.h6
-rw-r--r--cli_ure/source/ure/makefile.mk17
-rw-r--r--cli_ure/unotypes/makefile.mk32
-rw-r--r--cli_ure/util/makefile.pmk8
-rw-r--r--cli_ure/util/target.pmk12
10 files changed, 87 insertions, 80 deletions
diff --git a/cli_ure/prj/build.lst b/cli_ure/prj/build.lst
index cace8d0612d6..24a73940df85 100644
--- a/cli_ure/prj/build.lst
+++ b/cli_ure/prj/build.lst
@@ -1,4 +1,4 @@
-ure cli_ure : cppuhelper cppu sal codemaker offapi udkapi NULL
+ure cli_ure : cppuhelper cppu sal codemaker offapi NULL
ure cli_ure usr1 - all tt_mkout NULL
ure cli_ure\source\climaker nmake - all ure_source_climaker NULL
ure cli_ure\unotypes nmake - all ure_unotypes ure_source_climaker NULL
diff --git a/cli_ure/prj/d.lst b/cli_ure/prj/d.lst
index c0788099adf7..0b623cacb656 100644
--- a/cli_ure/prj/d.lst
+++ b/cli_ure/prj/d.lst
@@ -1,4 +1,5 @@
..\%__SRC%\bin\climaker.exe %_DEST%\bin%_EXT%\climaker.exe
..\%__SRC%\bin\climaker.pdb %_DEST%\bin%_EXT%\climaker.pdb
-..\%__SRC%\bin\cli_* %_DEST%\bin%_EXT%\cli_*
+..\%__SRC%\bin\cli_*.dll %_DEST%\bin%_EXT%\cli_*.dll
+..\%__SRC%\bin\cli_*.pdb %_DEST%\bin%_EXT%\cli_*.pdb
diff --git a/cli_ure/source/climaker/climaker_app.cxx b/cli_ure/source/climaker/climaker_app.cxx
index af6aab2d1348..ff473ba55034 100644
--- a/cli_ure/source/climaker/climaker_app.cxx
+++ b/cli_ure/source/climaker/climaker_app.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: climaker_app.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: dbo $ $Date: 2003-04-07 09:40:41 $
+ * last change: $Author: dbo $ $Date: 2003-05-08 12:40:58 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -67,6 +67,7 @@
#include "osl/process.h"
#include "osl/file.hxx"
+#include "osl/thread.h"
#include "cppuhelper/shlib.hxx"
#include "cppuhelper/bootstrap.hxx"
#include "com/sun/star/lang/XInitialization.hpp"
@@ -227,23 +228,29 @@ Reference< registry::XSimpleRegistry > open_registries(
//------------------------------------------------------------------------------
static char const s_usingText [] =
"\n"
-"using: climaker <switches> [registry-file-1 registry-file-2 ...]\n\n"
+"using: climaker <switches> [registry-file-1 registry-file-2 ...]\n"
+"\n"
"switches:\n"
-" -O <output-file> output assembly (default is unotypes.dll)\n"
-" -T <type1[;type2;...]> types to be generated (if none is given,\n"
-" then all types\n"
-" of given registries are created\n"
-" -X <extra-rdb> extra rdb to saturate referenced types in given\n"
-" registry-file(s)\n"
-" these types will not be generated into\n"
-" output assembly\n"
-" -r, --reference <assembly> reference meta-data from assembly\n"
+" -O, --out <output-file> output assembly file;\n"
+" defaults to cli_unotypes.dll if more than one\n"
+" registry-file is given, else <registry-file>.dll\n"
+" -T, --types types to be generated (if none is given,\n"
+" <type1[;type2;...]> then all types of given registries are emitted\n"
+" -X, --extra <rdb-file> additional rdb to saturate referenced types in\n"
+" given registry file(s); these types will not be\n"
+" emitted into the output assembly file\n"
+" -r, --reference reference metadata from assembly file\n"
+" <assembly-file>\n"
" --version <version> sets assembly version\n"
" --product <name> sets assembly product name\n"
" --description <text> sets assembly description text\n"
" -v, --verbose verbose output to stdout\n"
-" -h, --help this message\n\n"
-"example: climaker -O my_types.dll -r udkapi.dll -X udkapi.rdb my_types.rdb\n"
+" -h, --help this message\n"
+"\n"
+"example: climaker --out cli_mytypes.dll \\\n"
+" --reference cli_types.dll \\\n"
+" --extra types.rdb \\\n"
+" mytypes.rdb\n"
"\n";
}
@@ -267,11 +274,13 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
{
OUString str_help = OUSTR("help");
OUString str_verbose = OUSTR("verbose");
+ OUString str_out = OUSTR("out");
OUString str_reference = OUSTR("reference");
+ OUString str_types = OUSTR("types");
+ OUString str_extra = OUSTR("extra");
OUString str_version = OUSTR("version");
OUString str_product = OUSTR("product");
OUString str_description = OUSTR("description");
- OUString str_empty;
OUString output;
vector< OUString > mandatory_registries;
@@ -293,7 +302,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
{
g_verbose = true;
}
- else if (read_argument( &cmd_arg, 'T', str_empty, &nPos ))
+ else if (read_argument( &cmd_arg, 'T', str_types, &nPos ))
{
sal_Int32 index = 0;
do
@@ -303,7 +312,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
}
while (index >= 0);
}
- else if (read_argument( &cmd_arg, 'X', str_empty, &nPos ))
+ else if (read_argument( &cmd_arg, 'X', str_extra, &nPos ))
{
extra_registries.push_back(
path_make_absolute_file_url( cmd_arg ) );
@@ -317,7 +326,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
!read_argument( &product, '\0', str_product, &nPos ) &&
!read_argument(
&description, '\0', str_description, &nPos ) &&
- !read_argument( &output, 'O', str_empty, &nPos ))
+ !read_argument( &output, 'O', str_out, &nPos ))
{
OSL_VERIFY(
osl_Process_E_None == osl_getCommandArg(
@@ -347,17 +356,26 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
UNO_QUERY_THROW );
// get rdb tdprovider factory
- Reference< lang::XSingleComponentFactory > xFac(
+ Reference< lang::XSingleComponentFactory > xTDprov_factory(
::cppu::loadSharedLibComponentFactory(
+// OUSTR("regtypeprov.uno" SAL_DLLEXTENSION), OUString(),
OUSTR("rdbtdp"), OUString(),
OUSTR("com.sun.star.comp.stoc.RegistryTypeDescriptionProvider"),
Reference< lang::XMultiServiceFactory >(
xContext->getServiceManager(), UNO_QUERY ),
- Reference< registry::XRegistryKey >() ), UNO_QUERY_THROW );
- // create registry td provider
+ Reference< registry::XRegistryKey >() ), UNO_QUERY );
+ if (! xTDprov_factory.is())
+ {
+ throw RuntimeException(
+ OUSTR("cannot get registry typedescription provider: "
+ "regtypeprov.uno" SAL_DLLEXTENSION "!"),
+ Reference< XInterface >() );
+ }
+
+ // create registry td provider for mandatory registry files
Any arg( makeAny( open_registries( mandatory_registries, xContext ) ) );
Reference< XInterface > xTD_provider(
- xFac->createInstanceWithArgumentsAndContext(
+ xTDprov_factory->createInstanceWithArgumentsAndContext(
Sequence< Any >( &arg, 1 ), xContext ) );
// insert provider to tdmgr
Reference< container::XSet > xSet( xTDmgr, UNO_QUERY_THROW );
@@ -368,7 +386,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
{
arg = makeAny( open_registries( extra_registries, xContext ) );
provider = makeAny(
- xFac->createInstanceWithArgumentsAndContext(
+ xTDprov_factory->createInstanceWithArgumentsAndContext(
Sequence< Any >( &arg, 1 ), xContext ) );
xSet->insert( provider );
OSL_ASSERT( xSet->has( provider ) );
@@ -387,7 +405,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
}
else
{
- output = OUSTR("unotypes");
+ output = OUSTR("cli_unotypes");
}
}
output = path_make_absolute_file_url( output );
@@ -517,7 +535,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
catch (Exception & exc)
{
OString msg(
- OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
+ OUStringToOString( exc.Message, osl_getThreadTextEncoding() ) );
fprintf(
stderr, "\n> error: %s\n> dying abnormally...\n", msg.getStr() );
ret = 1;
@@ -526,7 +544,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
{
OString msg( OUStringToOString(
String_to_ustring( exc->ToString() ),
- RTL_TEXTENCODING_ASCII_US ) );
+ osl_getThreadTextEncoding() ) );
fprintf(
stderr,
"\n> error: .NET exception occured: %s\n> dying abnormally...",
@@ -543,7 +561,7 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
catch (Exception & exc)
{
OString msg(
- OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
+ OUStringToOString( exc.Message, osl_getThreadTextEncoding() ) );
fprintf(
stderr,
"\n> error disposing component context: %s\n"
diff --git a/cli_ure/source/climaker/climaker_emit.cxx b/cli_ure/source/climaker/climaker_emit.cxx
index bf7c195866e7..36431166dd0b 100644
--- a/cli_ure/source/climaker/climaker_emit.cxx
+++ b/cli_ure/source/climaker/climaker_emit.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: climaker_emit.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: dbo $ $Date: 2003-04-25 15:14:33 $
+ * last change: $Author: dbo $ $Date: 2003-05-08 12:40:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -178,7 +178,8 @@ Assembly * TypeEmitter::type_resolve(
::System::Object * sender, ::System::ResolveEventArgs * args )
{
::System::String * cts_name = args->get_Name();
- ::System::Type * ret_type = m_module_builder->GetType( cts_name, false );
+ ::System::Type * ret_type = m_module_builder->GetType(
+ cts_name, false /* no exc */ );
if (0 == ret_type)
{
iface_entry * entry = dynamic_cast< iface_entry * >(
@@ -191,7 +192,8 @@ Assembly * TypeEmitter::type_resolve(
sal_Int32 len = m_extra_assemblies->get_Length();
for ( sal_Int32 pos = 0; pos < len; ++pos )
{
- ret_type = m_extra_assemblies[ pos ]->GetType( cts_name, false );
+ ret_type = m_extra_assemblies[ pos ]->GetType(
+ cts_name, false /* no exc */ );
if (0 != ret_type)
{
if (g_verbose)
@@ -1551,6 +1553,7 @@ ConstructorInfo * TypeEmitter::get_ctor_uno_MethodAttribute()
xType, UNO_QUERY_THROW ) );
case TypeClass_SERVICE:
case TypeClass_MODULE:
+ case TypeClass_SINGLETON:
// ignore these
return 0;
default:
diff --git a/cli_ure/source/native/msvc.map b/cli_ure/source/native/msvc.map
index 845779a93453..edc8675c3eb0 100644
--- a/cli_ure/source/native/msvc.map
+++ b/cli_ure/source/native/msvc.map
@@ -1,7 +1,7 @@
UDK_3.1 {
global:
- ?ServiceFactory_load@util@uno@@YA?AV?$Reference@VXSingleComponentFactory@lang@star@sun@com@@@2star@sun@com@@ABVOUString@rtl@@0@Z;
- ?ServiceFactory_writeInfo@util@uno@@YAXABVOUString@rtl@@ABV?$Reference@VXRegistryKey@registry@star@sun@com@@@2star@sun@com@@@Z;
+ ?ServiceFactory_load@util@uno@@YA?AV?$Reference@VXSingleComponentFactory@lang@star@sun@com@@@2star@sun@com@@ABV?$Reference@VXComponentContext@uno@star@sun@com@@@2456@ABVOUString@rtl@@1@Z;
+ ?ServiceFactory_writeInfo@util@uno@@YAXABV?$Reference@VXComponentContext@uno@star@sun@com@@@2star@sun@com@@ABVOUString@rtl@@ABV?$Reference@VXRegistryKey@registry@star@sun@com@@@2456@@Z;
local:
*;
diff --git a/cli_ure/source/native/native_share.h b/cli_ure/source/native/native_share.h
index 0f594ed5b5c7..2004f0b6c3df 100644
--- a/cli_ure/source/native/native_share.h
+++ b/cli_ure/source/native/native_share.h
@@ -2,9 +2,9 @@
*
* $RCSfile: native_share.h,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: dbo $ $Date: 2003-04-11 17:08:46 $
+ * last change: $Author: dbo $ $Date: 2003-05-08 12:41:00 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,7 +61,7 @@
#using <mscorlib.dll>
#using "cli_ure.dll"
-#using "cli_udkapi.dll"
+#using "cli_types.dll"
#include <vcclr.h>
diff --git a/cli_ure/source/ure/makefile.mk b/cli_ure/source/ure/makefile.mk
index 1468547a612a..2f83ba739201 100644
--- a/cli_ure/source/ure/makefile.mk
+++ b/cli_ure/source/ure/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.2 $
+# $Revision: 1.3 $
#
-# last change: $Author: dbo $ $Date: 2003-04-25 14:04:53 $
+# last change: $Author: dbo $ $Date: 2003-05-08 12:41:02 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -74,10 +74,8 @@ TARGET = cli_ure
.INCLUDE : $(PRJ)$/util$/target.pmk
.INCLUDE : target.mk
-CLI_URE = $(OUT)$/bin$/cli_ure.dll
-
ALLTAR : \
- $(CLI_URE)
+ $(OUT)$/bin$/cli_ure.dll
CSFILES = \
uno$/QueryInterface.cs \
@@ -89,13 +87,14 @@ CSFILES = \
uno$/util$/WeakBase.cs \
uno$/util$/WeakComponentBase.cs \
uno$/util$/ServiceBase.cs \
- uno$/util$/ServiceFactory.cs
+ uno$/util$/ServiceFactory.cs \
+ uno$/util$/DeployedTypeResolver.cs
-$(CLI_URE) : $(CLI_UDKAPI) $(CSFILES)
- +csc.exe $(CSCFLAGS) \
+$(OUT)$/bin$/cli_ure.dll : $(CSFILES) $(OUT)$/bin$/cli_types.dll
+ +csc $(CSCFLAGS) \
-target:library \
-out:$@ \
- -reference:$(CLI_UDKAPI) \
+ -reference:$(OUT)$/bin$/cli_types.dll \
-reference:System.dll \
$(CSFILES)
diff --git a/cli_ure/unotypes/makefile.mk b/cli_ure/unotypes/makefile.mk
index c6996f5b7100..5eb8f8e02b00 100644
--- a/cli_ure/unotypes/makefile.mk
+++ b/cli_ure/unotypes/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.2 $
+# $Revision: 1.3 $
#
-# last change: $Author: dbo $ $Date: 2003-04-25 15:14:34 $
+# last change: $Author: dbo $ $Date: 2003-05-08 12:41:05 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -69,27 +69,25 @@ PRJNAME = cli_ure
# for dummy
TARGET = cli_ure
+CLIMAKERFLAGS =
+.IF "$(debug)" != ""
+CLIMAKERFLAGS += --verbose
+.ENDIF
+
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/target.pmk
.INCLUDE : target.mk
ALLTAR : \
- $(CLI_OFFAPI)
-
-$(CLI_UDKAPI) : $(SOLARBINDIR)$/udkapi.rdb $(CLIMAKER)
- +$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
- --version "3.1.0.0" \
- --product "OpenOffice.org SDK" \
- --description "This assembly contains UNO-API metadata of the OpenOffice.org Software Development Kit (SDK)." \
- $(SOLARBINDIR)$/udkapi.rdb
+ $(OUT)$/bin$/cli_types.dll
-$(CLI_OFFAPI) : $(CLI_UDKAPI) $(SOLARBINDIR)$/offapi.rdb $(CLIMAKER)
- +$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
- --version "1.0.0.0" \
- --product "OpenOffice.org SDK" \
- --description "This assembly contains API metadata of the OpenOffice.org Software Development Kit (SDK)." \
- --reference $(CLI_UDKAPI) \
- -X $(SOLARBINDIR)$/udkapi.rdb $(SOLARBINDIR)$/offapi.rdb
+$(OUT)$/bin$/cli_types.dll : $(OUT)$/bin$/climaker.exe $(SOLARBINDIR)$/types.rdb
+ +$(OUT)$/bin$/climaker.exe $(CLIMAKERFLAGS) \
+ --out $@ \
+ --version "1.0.0.0" \
+ --product "OpenOffice.org SDK" \
+ --description "This assembly contains API metadata of the OpenOffice.org Software Development Kit (SDK)." \
+ $(SOLARBINDIR)$/types_doc.rdb
.ENDIF
diff --git a/cli_ure/util/makefile.pmk b/cli_ure/util/makefile.pmk
index b47d3926d3d4..354378913fab 100644
--- a/cli_ure/util/makefile.pmk
+++ b/cli_ure/util/makefile.pmk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.pmk,v $
#
-# $Revision: 1.1 $
+# $Revision: 1.2 $
#
-# last change: $Author: dbo $ $Date: 2003-03-28 10:17:51 $
+# last change: $Author: dbo $ $Date: 2003-05-08 12:41:06 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -64,7 +64,3 @@
BUILD_FOR_CLI = "true"
.ENDIF
-CLIMAKER = $(OUT)$/bin$/climaker.exe
-CLI_UDKAPI = $(OUT)$/bin$/cli_udkapi.dll
-CLI_OFFAPI = $(OUT)$/bin$/cli_offapi.dll
-
diff --git a/cli_ure/util/target.pmk b/cli_ure/util/target.pmk
index e443eb5fbd69..f95bb5020bd4 100644
--- a/cli_ure/util/target.pmk
+++ b/cli_ure/util/target.pmk
@@ -2,9 +2,9 @@
#
# $RCSfile: target.pmk,v $
#
-# $Revision: 1.1 $
+# $Revision: 1.2 $
#
-# last change: $Author: dbo $ $Date: 2003-03-28 10:17:51 $
+# last change: $Author: dbo $ $Date: 2003-05-08 12:41:06 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -77,11 +77,3 @@ CSCFLAGS += -o
CSCFLAGS += -debug+ -checked+ -define:DEBUG -define:TRACE
.ENDIF
-
-###### climaker ######
-
-CLIMAKER_FLAGS =
-.IF "$(debug)" != ""
-CLIMAKER_FLAGS += --verbose
-.ENDIF
-