diff options
author | Juergen Schmidt <jsc@openoffice.org> | 2002-12-19 09:03:12 +0000 |
---|---|---|
committer | Juergen Schmidt <jsc@openoffice.org> | 2002-12-19 09:03:12 +0000 |
commit | c49fe44c2493d84916f9a8738c1ad14ccb957f7e (patch) | |
tree | 3b07bcab20a3ef42b5b8c27ac15b6e552d3289fa /odk | |
parent | e488c26c59535b3f01222c2e6904383d2cd06cbd (diff) |
#99053# modified, new build env
Diffstat (limited to 'odk')
-rw-r--r-- | odk/examples/cpp/DocumentLoader/DocumentLoader.cxx | 29 | ||||
-rw-r--r-- | odk/examples/cpp/DocumentLoader/Makefile | 127 |
2 files changed, 104 insertions, 52 deletions
diff --git a/odk/examples/cpp/DocumentLoader/DocumentLoader.cxx b/odk/examples/cpp/DocumentLoader/DocumentLoader.cxx index 7162ec6e4bd0..62c65ad107e3 100644 --- a/odk/examples/cpp/DocumentLoader/DocumentLoader.cxx +++ b/odk/examples/cpp/DocumentLoader/DocumentLoader.cxx @@ -9,6 +9,9 @@ #include <cppuhelper/bootstrap.hxx> +#include <osl/file.hxx> +#include <osl/process.h> + #include <com/sun/star/bridge/XUnoUrlResolver.hpp> #include <com/sun/star/frame/XComponentLoader.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -25,14 +28,20 @@ using namespace com::sun::star::registry; //============================================================================ -int SAL_CALL main( int argc, char **argv ) { - - if (argc != 3) +int SAL_CALL main( int argc, char **argv ) +{ + OUString sConnectionString(RTL_CONSTASCII_USTRINGPARAM("uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager")); + if (argc != 2) { - printf("using: DocumentLoader <uno_connection_url> <file_url>\n\n" - "example: DocumentLoader \"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager\" \"file://e:/temp/test.sxw\"\n"); + printf("using: DocumentLoader <file_url> [<uno_connection_url>]\n\n" + "example: DocumentLoader \"file://e:/temp/test.sxw\" \"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager\"\n"); exit(1); } + if (argc == 3) + { + sConnectionString = OUString(RTL_CONSTASCII_USTRINGPARAM(argv[2])); + } + // Creates a simple registry service instance. Reference< XSimpleRegistry > xSimpleRegistry( @@ -94,7 +103,7 @@ int SAL_CALL main( int argc, char **argv ) { // Resolves the component context from the office, on the uno URL given by argv[1]. xInterface = Reference< XInterface >( - resolver->resolve( OUString::createFromAscii( argv[1] ) ), UNO_QUERY ); + resolver->resolve( sConnectionString ), UNO_QUERY ); // gets the server component context as property of the office component factory Reference< XPropertySet > xPropSet( xInterface, UNO_QUERY ); @@ -115,10 +124,12 @@ int SAL_CALL main( int argc, char **argv ) { /* Loads a component specified by an URL into the specified new or existing frame. */ + OUString sDocUrl, sWorkingDir; + osl_getProcessWorkingDir(&sWorkingDir.pData); + osl::FileBase::getAbsoluteFileURL( sWorkingDir, OUString::createFromAscii(argv[1]), sDocUrl); + Reference< XComponent > xComponent = xComponentLoader->loadComponentFromURL( - OUString::createFromAscii( argv[ 2 ] ), - OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") ), - 0, + sDocUrl, OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") ), 0, Sequence < ::com::sun::star::beans::PropertyValue >() ); // dispose the local service manager diff --git a/odk/examples/cpp/DocumentLoader/Makefile b/odk/examples/cpp/DocumentLoader/Makefile index 3bc32b264266..266eafd9ebbb 100644 --- a/odk/examples/cpp/DocumentLoader/Makefile +++ b/odk/examples/cpp/DocumentLoader/Makefile @@ -1,71 +1,112 @@ -# Builds the DocumentLoader demo. +# Builds the C++ DocumentLoader example of the SDK. -PRJ=..$(PS)..$(PS).. -SETTINGS=../../../settings +PRJ=../../.. +SETTINGS=$(PRJ)/settings include $(SETTINGS)/settings.mk - -include $(SETTINGS)/dk.mk include $(SETTINGS)/std.mk +include $(SETTINGS)/dk.mk # Define non-platform/compiler specific settings +COMPONENT_NAME=DocumentLoader +COMPONENT_RDB_NAME = $(COMPONENT_NAME).rdb +COMPONENT_RDB = $(OUT_BIN)/$(COMPONENT_RDB_NAME) + +OUT_COMP_INC = $(OUT_INC)/$(COMPONENT_NAME) +OUT_COMP_GEN = $(OUT_MISC)/$(COMPONENT_NAME) +OUT_COMP_OBJ=$(OUT_OBJ)/$(COMPONENT_NAME) -REGISTERFLAGFILE= $(OUT_MISC)$(PS)documentloader_register_component.flag -TYPEFLAGFILE= $(OUT_MISC)$(PS)documentloader_type_generation.flag +COMPOENNT_ENV_FLAG = $(OUT_MISC)/cpp_$(COMPONENT_NAME)_prepare_env.flag +COMPONENT_TYPEFLAG = $(OUT_MISC)/cpp_$(COMPONENT_NAME)_types.flag + +CXXFILES = DocumentLoader.cxx + +OBJFILES = $(patsubst %.cxx,$(OUT_SLO_COMP)/%.$(OBJ_EXT),$(CXXFILES)) TYPES = \ - -Tcom.sun.star.lang.XMultiServiceFactory \ - -Tcom.sun.star.lang.XComponent \ - -Tcom.sun.star.beans.XPropertySet \ - -Tcom.sun.star.bridge.XUnoUrlResolver \ - -Tcom.sun.star.frame.XComponentLoader \ - -Tcom.sun.star.lang.XMultiComponentFactory \ - -Tcom.sun.star.container.XHierarchicalNameAccess \ - -Tcom.sun.star.registry.XSimpleRegistry + com.sun.star.lang.XMultiServiceFactory \ + com.sun.star.lang.XComponent \ + com.sun.star.beans.XPropertySet \ + com.sun.star.bridge.XUnoUrlResolver \ + com.sun.star.frame.XComponentLoader \ + com.sun.star.lang.XMultiComponentFactory \ + com.sun.star.container.XHierarchicalNameAccess \ + com.sun.star.registry.XSimpleRegistry -TYPEFILES = $(subst \\,\,$(patsubst -T%,$(OUT)$(PS)inc$(PS)examples$(PS)%.hpp,$(TYPES))) +TYPESLIST = $(foreach t,$(TYPES),-T$(t)) +GENHPPFILES = $(foreach t,$(TYPES),$(OUT_COMP_INC)/$(subst .,/,$(t)).hpp) # Targets .PHONY: ALL -ALL : $(OUT_BIN)$(PS)DocumentLoader$(EXE_EXT) \ - register +ALL : \ + CppDocumentLoaderExample include $(SETTINGS)/stdtarget.mk -#$(BIN_DIR)$(PS)rdbmaker -BUCR -bUCR -O$(OUT_BIN)$(PS)DocumentLoader.rdb $(TYPES) $(BIN_DIR)$(PS)$(DKREGISTRYNAME) +# create all component sepcific output directories +# and use OUT_COMP_GEN for dependencies +$(OUT_COMP_GEN) : $(OUT) + $(MKDIR) $(subst /,$(PS),$@) + $(MKDIR) $(subst /,$(PS),$(OUT_COMP_INC)) + $(MKDIR) $(subst /,$(PS),$(OUT_COMP_OBJ)) -$(TYPEFLAGFILE) : $(DKREGISTRYNAME) - @echo $(TYPEFILES) - -$(DEL) $@ $(OUT_BIN)$(PS)DocumentLoader.rdb - @echo Building for $(MAKECMDGOALS) - $(BIN_DIR)$(PS)cppumaker -BUCR -O$(OUT)$(PS)inc$(PS)examples $(TYPES) $(DKREGISTRYNAME) - $(BIN_DIR)$(PS)regmerge $(OUT_BIN)$(PS)DocumentLoader.rdb / $(DKREGISTRYNAME) - -$(DEL) $(REGISTERFLAGFILE) - @echo bla > $@ +# This example type library will be extended by the office types +$(OUT_BIN)/%.rdb : + -$(DEL) $(subst /,$(PS),$@) + regmerge $@ / $(DKREGISTRYNAME) -$(OUT_OBJ)$(PS)DocumentLoader.$(OBJ_EXT) : DocumentLoader.cxx $(OUT) $(TYPEFLAGFILE) - @echo $(TYPEFILES) - $(CC) $(CC_FLAGS) $(CC_INCLUDES) $(CC_DEFINES) $(CC_OUTPUT_SWITCH)$@ $< +$(GENHPPFILES) : $(COMPONENT_RDB) $(OUT_COMP_GEN) + -$(DEL) $(subst /,$(PS),$(COMPONENT_TYPEFLAG)) + cppumaker -Gc -BUCR -O$(OUT_COMP_INC) $(TYPESLIST) $(COMPONENT_RDB) + echo flagged > $@ -$(OUT_BIN)$(PS)DocumentLoader$(EXE_EXT) : $(OUT_OBJ)$(PS)DocumentLoader.$(OBJ_EXT) +$(COMPONENT_TYPEFLAG) : $(COMPONENT_RDB) $(OUT_COMP_GEN) + -$(DEL) $(subst /,$(PS),$(COMPONENT_TYPEFLAG)) + cppumaker -Gc -BUCR -O$(OUT_COMP_INC) $(TYPESLIST) $(COMPONENT_RDB) + echo flagged > $@ + +$(OUT_COMP_OBJ)/%.$(OBJ_EXT) : %.cxx $(COMPONENT_TYPEFLAG) $(GENHPPFILES) $(OUT_COMP_GEN) + $(CC) $(CC_FLAGS) $(CC_INCLUDES) -I$(OUT_COMP_INC) $(CC_DEFINES) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $< + +$(OUT_BIN)/%$(EXE_EXT) : $(OUT_COMP_OBJ)/%.$(OBJ_EXT) $(OUT_COMP_GEN) ifeq "$(OS)" "WIN" - $(LINK) $(EXE_LINK_FLAGS) /OUT:$@ /MAP:$(OUT_MISC)$(PS)DocumentLoader.map \ - $(OUT_OBJ)$(PS)DocumentLoader.$(OBJ_EXT) $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) \ - $(SALLIB) $(STLPORTLIB) + $(LINK) $(EXE_LINK_FLAGS) /OUT:$@ /MAP:$(OUT_COMP_GEN)/$(basename $(@F)).map \ + $< $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) else - $(LINK) $(EXE_LINK_FLAGS) $(LINK_LIBS) -o $@ $(OUT_OBJ)$(PS)DocumentLoader.$(OBJ_EXT) \ - $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) $(STDC++LIB) + $(LINK) $(EXE_LINK_FLAGS) $(LINK_LIBS) -o $@ $< \ + $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) $(STDC++LIB) endif -$(REGISTERFLAGFILE) : $(TYPEFLAGFILE) +$(COMPOENNT_ENV_FLAG) : -$(DEL) $@ @echo -------------------------------------------------------------------------------- - @echo Register components in DocumentLoader.rdb + @echo Register necessrary runtime components in DocumentLoader.rdb for @echo -------------------------------------------------------------------------------- - regcomp -register -r $(OUT_BIN)$(PS)DocumentLoader.rdb -c $(SHAREDLIB_PRE)connectr.$(SHAREDLIB_EXT) - regcomp -register -r $(OUT_BIN)$(PS)DocumentLoader.rdb -c $(SHAREDLIB_PRE)remotebridge.$(SHAREDLIB_EXT) - regcomp -register -r $(OUT_BIN)$(PS)DocumentLoader.rdb -c $(SHAREDLIB_PRE)brdgfctr.$(SHAREDLIB_EXT) - regcomp -register -r $(OUT_BIN)$(PS)DocumentLoader.rdb -c $(SHAREDLIB_PRE)uuresolver.$(SHAREDLIB_EXT) + regcomp -register -r $(OUT_BIN)/DocumentLoader.rdb -c $(SHAREDLIB_PRE)connectr.$(SHAREDLIB_EXT) + regcomp -register -r $(OUT_BIN)/DocumentLoader.rdb -c $(SHAREDLIB_PRE)remotebridge.$(SHAREDLIB_EXT) + regcomp -register -r $(OUT_BIN)/DocumentLoader.rdb -c $(SHAREDLIB_PRE)brdgfctr.$(SHAREDLIB_EXT) + regcomp -register -r $(OUT_BIN)/DocumentLoader.rdb -c $(SHAREDLIB_PRE)uuresolver.$(SHAREDLIB_EXT) @echo bla > $@ -register: $(REGISTERFLAGFILE) +CppDocumentLoaderExample : $(OUT_BIN)/DocumentLoader$(EXE_EXT) $(COMPOENNT_ENV_FLAG) + @echo -------------------------------------------------------------------------------- + @echo Please use one of the following commands to execute the examples! + @echo - + @echo make DocumentLoader.run + @echo ------ + @echo The example loads a document in the DocumentLoader example directory. If you + @echo want to load your own document, please use: DocumentLoader filename [connection_url] + @echo -------------------------------------------------------------------------------- + +%.run: $(OUT_BIN)/DocumentLoader$(EXE_EXT) + cd $(OUT_BIN) && $(basename $@) "../../examples/cpp/DocumentLoader/test.sxw" + +.PHONY: clean +clean : + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_INC)) + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_GEN)) + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_OBJ)) + -$(DEL) $(subst /,$(PS),$(COMPONENT_TYPEFLAG)) + -$(DEL) $(subst /,$(PS),$(COMPOENNT_ENV_FLAG)) + -$(DEL) $(subst /,$(PS),$(COMPONENT_RDB)) + -$(DEL) $(subst /,$(PS),$(OUT_BIN)/DocumentLoader*) |