# # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This file incorporates work covered by the following license notice: # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed # with this work for additional information regarding copyright # ownership. The ASF licenses this file to you under the Apache # License, Version 2.0 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 . # PRJ = ..$/.. PRJNAME = cli_ure TARGET = cli_cppuhelper ENABLE_EXCEPTIONS = TRUE LIBTARGET = NO USE_DEFFILE = TRUE # disable caching to avoid stale objects # on version changes CCACHE_DISABLE=TRUE .EXPORT : CCACHE_DISABLE .INCLUDE : settings.mk .INCLUDE : $(PRJ)$/util$/makefile.pmk use_shl_versions= .IF "$(BUILD_FOR_CLI)" == "" #do not even build the cxx files because they contain cli cpp all: .ELSE .INCLUDE : $(BIN)$/cliureversion.mk ASSEMBLY_KEY="$(BIN)$/cliuno.snk" ASSEMBLY_ATTRIBUTES = $(MISC)$/assembly_cppuhelper.cxx POLICY_ASSEMBLY_FILE=$(BIN)$/$(CLI_CPPUHELPER_POLICY_ASSEMBLY).dll ASSEMBLY_KEY_X=$(subst,\,\\ $(ASSEMBLY_KEY)) LINKFLAGS += /delayload:cppuhelper3MSC.dll \ /delayload:cppu3.dll \ /delayload:sal3.dll UWINAPILIB= NO_OFFUH=TRUE CPPUMAKERFLAGS = UNOTYPES = \ com.sun.star.lang.XSingleComponentFactory \ com.sun.star.loader.CannotActivateFactoryException \ com.sun.star.container.XHierarchicalNameAccess \ com.sun.star.registry.CannotRegisterImplementationException \ com.sun.star.registry.XRegistryKey \ com.sun.star.registry.XSimpleRegistry #loader lock was solved as of VS 2005 (CCNUMVER = 0014..) # When compiling for CLR, disable "warning C4339: use of undefined type detected # in CLR meta-data - use of this type may lead to a runtime exception": CFLAGSCXX += -clr:oldSyntax -AI $(BIN) -wd4339 SLOFILES = \ $(SLO)$/native_bootstrap.obj \ $(SLO)$/path.obj \ $(SLO)$/assembly_cppuhelper.obj SHL1OBJS = $(SLOFILES) SHL1TARGET = $(TARGET) SHL1STDLIBS = \ $(CPPUHELPERLIB) \ $(CPPULIB) \ $(SALLIB) \ delayimp.lib \ advapi32.lib \ mscoree.lib \ Advapi32.lib .IF "$(USE_DEBUG_RUNTIME)" == "" SHL1STDLIBS += \ msvcmrt.lib .ELSE SHL1STDLIBS += \ msvcmrtd.lib .ENDIF SHL1VERSIONMAP = msvc.map SHL1DEF = $(MISC)$/$(SHL1TARGET).def DEF1NAME = $(SHL1TARGET) .INCLUDE : $(PRJ)$/util$/target.pmk .INCLUDE : target.mk SIGN= $(MISC)$/cppuhelper_is_signed_flag ALLTAR: \ $(POLICY_ASSEMBLY_FILE) \ $(SIGN) CFLAGSCXX += -clr:oldSyntax $(ASSEMBLY_ATTRIBUTES) : assembly.cxx $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk @echo $(ASSEMBLY_KEY_X) $(GNUCOPY) -p assembly.cxx $@ echo \ '[assembly:System::Reflection::AssemblyVersion( "$(CLI_CPPUHELPER_NEW_VERSION)" )];' \ >> $(OUT)$/misc$/assembly_cppuhelper.cxx echo \ '[assembly:System::Reflection::AssemblyKeyFile($(ASSEMBLY_KEY_X))];' \ >> $(OUT)$/misc$/assembly_cppuhelper.cxx #make sure we build cli_cppuhelper after the version changed $(SHL1OBJS) : $(BIN)$/cli_cppuhelper.config $(SIGN): $(SHL1TARGETN) $(WRAPCMD) sn.exe -R $(BIN)$/$(TARGET).dll $(BIN)$/cliuno.snk && $(TOUCH) $@ #do not forget to deliver cli_cppuhelper.config. It is NOT embedded in the policy file. # If the x86 switch is ommitted then the system assumes the assembly to be MSIL. # The policy file is still found when an application tries to load an older # cli_cppuhelper.dll but the system cannot locate it. It possibly assumes that the # assembly is also 'MSIL' like its policy file. $(POLICY_ASSEMBLY_FILE) : $(BIN)$/cli_cppuhelper.config $(WRAPCMD) AL.exe -out:$@ \ -version:$(CLI_CPPUHELPER_POLICY_VERSION) \ -keyfile:$(BIN)$/cliuno.snk \ -link:$(BIN)$/cli_cppuhelper.config \ -platform:x86 #Create the config file that is used with the policy assembly $(BIN)$/cli_cppuhelper.config: cli_cppuhelper_config $(BIN)$/cliureversion.mk $(PERL) $(SOLARENV)$/bin$/clipatchconfig.pl \ $< $@ .ENDIF # "$(BUILD_FOR_CLI)" != ""