#*************************************************************************
#
#  The Contents of this file are made available subject to the terms of
#  the BSD license.
#  
#  Copyright 2000, 2010 Oracle and/or its affiliates.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. Neither the name of Sun Microsystems, Inc. nor the names of its
#     contributors may be used to endorse or promote products derived
#     from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
#  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
#  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
#  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
#  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
#  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
#  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#     
#**************************************************************************

# Builds the Java Spreadsheet examples of the SDK.

PRJ=../../..
SETTINGS=$(PRJ)/settings

include $(SETTINGS)/settings.mk
include $(SETTINGS)/std.mk

# Define non-platform/compiler specific settings
EXAMPLE_NAME=JavaSpreadsheetExamples
OUT_COMP_CLASS = $(OUT_CLASS)/$(EXAMPLE_NAME)
OUT_COMP_GEN = $(OUT_MISC)/$(EXAMPLE_NAME)

APP1_NAME=EuroAdaption
APP1_JAR=$(OUT_COMP_CLASS)/$(APP1_NAME).jar
APP2_NAME=SCalc
APP2_JAR=$(OUT_COMP_CLASS)/$(APP2_NAME).jar
APP3_NAME=ChartTypeChange
APP3_JAR=$(OUT_COMP_CLASS)/$(APP3_NAME).jar

COMP_NAME=CalcAddins
COMP_RDB_NAME=$(COMP_NAME).uno.rdb
COMP_RDB=$(OUT_COMP_GEN)/$(COMP_RDB_NAME)
COMP_PACKAGE=$(OUT_BIN)/$(COMP_NAME).$(UNOOXT_EXT)
COMP_PACKAGE_URL=$(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP_NAME).$(UNOOXT_EXT)")
COMP_JAR_NAME=$(COMP_NAME).uno.jar
COMP_JAR=$(OUT_COMP_CLASS)/$(COMP_JAR_NAME)
COMP_MANIFESTFILE=$(OUT_COMP_CLASS)/$(COMP_NAME).uno.Manifest
COMP_UNOPKG_MANIFEST = $(OUT_COMP_CLASS)/$(COMP_NAME)/META-INF/manifest.xml
COMP_REGISTERFLAG=$(OUT_MISC)$(PS)java_$(COMP_NAME)_register_component.flag
COMP_COMPONENTS=$(COMP_NAME).components

IDLFILES = XCalcAddins.idl

# normally the idl file should be stored in a directory tree fitting the module structure,
# for the example we know the module structure
PACKAGE = org/openoffice/sheet/addin

COMPJAVAFILES  = CalcAddins.java

#GENJAVAFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/$(PACKAGE)/%.java,$(IDLFILES))
GENCLASSFILES = $(patsubst %.idl,$(OUT_COMP_CLASS)/$(PACKAGE)/%.class,$(IDLFILES))
GENTYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
GENURDFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/%.urd,$(IDLFILES))

COMPCLASSFILES = $(patsubst %.java,$(OUT_COMP_CLASS)/%.class,$(COMPJAVAFILES))
#COMPCLASSFILES += $(subst $(OUT_COMP_GEN),$(OUT_COMP_CLASS),$(GENJAVAFILES:.java=.class))

$(COMP_NAME)_CLASSFILES = $(COMP_NAME).class \
		$(COMP_NAME)$(QUOTE)$$_$(COMP_NAME).class

#$(COMP_NAME)_CLASSFILES += $(subst $(OUT_COMP_GEN)/,,$(GENJAVAFILES:.java=.class))
$(COMP_NAME)_CLASSFILES += $(subst $(OUT_COMP_CLASS)/,,$(GENCLASSFILES))

SDK_CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),$(CLASSPATH)\
		$(PATH_SEPARATOR)$(OUT_COMP_CLASS))

# Targets
.PHONY: ALL
ALL : $(EXAMPLE_NAME)

include $(SETTINGS)/stdtarget.mk

# rule for a component manifest file
$(OUT_COMP_CLASS)/%.Manifest :
	-$(MKDIR) $(subst /,$(PS),$(@D))
	@echo UNO-Type-Path: $(basename $*).uno.jar> $@
	@echo RegistrationClassName: $(basename $*)>> $@

$(OUT_COMP_GEN)/%.urd : %.idl
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(IDLC) -C -I. -I$(IDL_DIR) -O$(OUT_COMP_GEN) $<

$(OUT_COMP_GEN)/%.rdb : $(GENURDFILES)
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(REGMERGE) $@ /UCR $(GENURDFILES)

#$(OUT_COMP_GEN)/%.java : $(COMP_RDB)
$(GENCLASSFILES) : $(COMP_RDB)
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(JAVAMAKER) -nD $(GENTYPELIST) -O$(OUT_COMP_CLASS) $(COMP_RDB) -X$(URE_TYPES) -X$(OFFICE_TYPES)

$(OUT_COMP_CLASS)/%.class : %.java
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_COMP_CLASS) $<

# only the component depends on the generated types
$(COMPCLASSFILES) : $(JAVAFILES) $(GENCLASSFILES)
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(SDK_JAVAC) $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_COMP_CLASS) $(COMPJAVAFILES) 

# rule for client/example application manifest file
$(OUT_COMP_CLASS)/%.mf :
	-$(MKDIR) $(subst /,$(PS),$(@D))
	@echo Main-Class: com.sun.star.lib.loader.Loader> $@
	$(ECHOLINE)>> $@
	@echo Name: com/sun/star/lib/loader/Loader.class>> $@
	@echo Application-Class: $*>> $@

# rule for client/example application jar file
$(OUT_COMP_CLASS)/%.jar : $(OUT_COMP_CLASS)/%.mf $(OUT_COMP_CLASS)/%.class
	-$(MKDIR) $(subst /,$(PS),$(@D))
	+cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $*.mf $*.class
	+$(SDK_JAR) uvf $@ $(SDK_JAVA_UNO_BOOTSTRAP_FILES)

# rule for component jar file
$(COMP_JAR) : $(COMP_MANIFESTFILE) $(COMPCLASSFILES)
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
	-$(MKDIR) $(subst /,$(PS),$(@D))
	cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_JAR) cvfm $(@F) $(<F) $($(basename $(basename $(@F)))_CLASSFILES)

# rule for component package manifest
$(OUT_COMP_CLASS)/%/manifest.xml :
	-$(MKDIR) $(subst /,$(PS),$(@D))
	@echo $(OSEP)?xml version="$(QM)1.0$(QM)" encoding="$(QM)UTF-8$(QM)"?$(CSEP) > $@
	@echo $(OSEP)!DOCTYPE manifest:manifest PUBLIC "$(QM)-//OpenOffice.org//DTD Manifest 1.0//EN$(QM)" "$(QM)Manifest.dtd$(QM)"$(CSEP) >> $@
	@echo $(OSEP)manifest:manifest xmlns:manifest="$(QM)http://openoffice.org/2001/manifest$(QM)"$(CSEP) >> $@
	@echo $(SQM)  $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.uno-typelibrary;type=RDB$(QM)" >> $@
	@echo $(SQM)                       $(SQM)manifest:full-path="$(QM)$(subst /META-INF,,$(subst $(OUT_COMP_CLASS)/,,$(@D))).uno.rdb$(QM)"/$(CSEP) >> $@
	@echo $(SQM)  $(SQM)$(OSEP)manifest:file-entry manifest:media-type="$(QM)application/vnd.sun.star.uno-components$(QM)">> $@
	@echo $(SQM)                       $(SQM)manifest:full-path="$(QM)$(COMP_NAME).components$(QM)"/$(CSEP)>> $@
	@echo $(OSEP)/manifest:manifest$(CSEP) >> $@

# rule for component package file
$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(COPY) $(subst /,$(PS),$<) $(subst /,$(PS),$(OUT_COMP_CLASS))
	$(SDK_ZIP) $@ -u $(COMP_NAME).components
	cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME) $(COMP_JAR_NAME)
	cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
	$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_COMP_CLASS)/$(<F)))

$(COMP_REGISTERFLAG) : $(COMP_PACKAGE)
ifeq "$(SDK_AUTO_DEPLOYMENT)" "YES"
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
	-$(MKDIR) $(subst /,$(PS),$(@D))
	$(DEPLOYTOOL) $(COMP_PACKAGE_URL)
	@echo flagged > $(subst /,$(PS),$@)
else
	@echo --------------------------------------------------------------------------------
	@echo  If you want to install your component automatically, please set the environment
	@echo  variable SDK_AUTO_DEPLOYMENT = YES. But note that auto deployment is only 
	@echo  possible if no office instance is running. 
	@echo --------------------------------------------------------------------------------
endif

$(APP1_JAR) : $(OUT_COMP_CLASS)/$(APP1_NAME).mf $(OUT_COMP_CLASS)/$(APP1_NAME).class
$(APP2_JAR) : $(OUT_COMP_CLASS)/$(APP2_NAME).mf $(OUT_COMP_CLASS)/$(APP2_NAME).class
$(APP3_JAR) : $(OUT_COMP_CLASS)/$(APP3_NAME).mf $(OUT_COMP_CLASS)/$(APP3_NAME).class

$(EXAMPLE_NAME) : $(COMP_REGISTERFLAG) $(APP1_JAR) $(APP2_JAR) $(APP3_JAR)
	@echo --------------------------------------------------------------------------------
	@echo Please use the following command to execute the examples!
	@echo -
	@echo $(MAKE) EuroAdaption.run
	@echo $(MAKE) SCalc.run
	@echo $(MAKE) ChartTypeChange.run
	@echo --------------------------------------------------------------------------------
	@echo The Calc add-in component was installed if SDK_AUTO_DEPLOYMENT = YES.
	@echo You can use this component inside your office installation, see the example
	@echo description. You can also load the "$(QM)CalcAddins.ods$(QM)" document to see 
	@echo how the add-in functions works.
	@echo -
	@echo $(MAKE) CalcAddins.ods.load
	@echo --------------------------------------------------------------------------------

%.run: $(OUT_COMP_CLASS)/%.jar
	$(SDK_JAVA) -Dcom.sun.star.lib.loader.unopath="$(OFFICE_PROGRAM_PATH)" -jar $<

CalcAddins.ods.load : $(COMP_REGISTERFLAG)
	"$(OFFICE_PROGRAM_PATH)$(PS)soffice" $(basename $@)

.PHONY: clean
clean :
	-$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_CLASS))
	-$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_GEN))
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_PACKAGE_URL)))
	-$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_REGISTERFLAG)))
ature/5-1-pick</option>
<option value='feature/BorderlineFix'>feature/BorderlineFix</option>
<option value='feature/OperationSmiley'>feature/OperationSmiley</option>
<option value='feature/RotGrfFlyFrame'>feature/RotGrfFlyFrame</option>
<option value='feature/RotateFlyFrame'>feature/RotateFlyFrame</option>
<option value='feature/RotateFlyFrame2'>feature/RotateFlyFrame2</option>
<option value='feature/RotateFlyFrame3'>feature/RotateFlyFrame3</option>
<option value='feature/SOSAW080'>feature/SOSAW080</option>
<option value='feature/SfxShell_refcount'>feature/SfxShell_refcount</option>
<option value='feature/SwFrameBorder'>feature/SwFrameBorder</option>
<option value='feature/accessibilitycheck'>feature/accessibilitycheck</option>
<option value='feature/accfixes2'>feature/accfixes2</option>
<option value='feature/allo_contract34185'>feature/allo_contract34185</option>
<option value='feature/allo_contract45533'>feature/allo_contract45533</option>
<option value='feature/allo_contract45533b'>feature/allo_contract45533b</option>
<option value='feature/autostyle'>feature/autostyle</option>
<option value='feature/barcode'>feature/barcode</option>
<option value='feature/base-preview'>feature/base-preview</option>
<option value='feature/benchmarks'>feature/benchmarks</option>
<option value='feature/borderline3'>feature/borderline3</option>
<option value='feature/bplustree'>feature/bplustree</option>
<option value='feature/cairo'>feature/cairo</option>
<option value='feature/calc-coordinates'>feature/calc-coordinates</option>
<option value='feature/calc-data-table'>feature/calc-data-table</option>
<option value='feature/calc-parallel'>feature/calc-parallel</option>
<option value='feature/calctiledrendering'>feature/calctiledrendering</option>
<option value='feature/calctiledrendering2'>feature/calctiledrendering2</option>
<option value='feature/calctiledrendering3'>feature/calctiledrendering3</option>
<option value='feature/calctiledrendering4'>feature/calctiledrendering4</option>
<option value='feature/calctiledrendering5'>feature/calctiledrendering5</option>
<option value='feature/calctiledrendering_alt'>feature/calctiledrendering_alt</option>
<option value='feature/calctiledrendering_attempt3'>feature/calctiledrendering_attempt3</option>
<option value='feature/calctiledrendering_attempt3_2'>feature/calctiledrendering_attempt3_2</option>
<option value='feature/calczoom'>feature/calczoom</option>
<option value='feature/chained-text-boxes'>feature/chained-text-boxes</option>
<option value='feature/change-tracking'>feature/change-tracking</option>
<option value='feature/chart-style-experiment-markus'>feature/chart-style-experiment-markus</option>
<option value='feature/chartdatatable'>feature/chartdatatable</option>
<option value='feature/cib_contract101'>feature/cib_contract101</option>
<option value='feature/cib_contract116'>feature/cib_contract116</option>
<option value='feature/cib_contract136'>feature/cib_contract136</option>
<option value='feature/cib_contract138'>feature/cib_contract138</option>
<option value='feature/cib_contract138b'>feature/cib_contract138b</option>
<option value='feature/cib_contract138c'>feature/cib_contract138c</option>
<option value='feature/cib_contract138d'>feature/cib_contract138d</option>
<option value='feature/cib_contract138e'>feature/cib_contract138e</option>
<option value='feature/cib_contract139'>feature/cib_contract139</option>
<option value='feature/cib_contract152'>feature/cib_contract152</option>
<option value='feature/cib_contract152b'>feature/cib_contract152b</option>
<option value='feature/cib_contract3197'>feature/cib_contract3197</option>
<option value='feature/cib_contract3753'>feature/cib_contract3753</option>
<option value='feature/cib_contract3756'>feature/cib_contract3756</option>
<option value='feature/cib_contract3756b'>feature/cib_contract3756b</option>
<option value='feature/cib_contract4236'>feature/cib_contract4236</option>
<option value='feature/cib_contract4236b'>feature/cib_contract4236b</option>
<option value='feature/cib_contract49'>feature/cib_contract49</option>
<option value='feature/cib_contract49b'>feature/cib_contract49b</option>
<option value='feature/cib_contract49c'>feature/cib_contract49c</option>
<option value='feature/cib_contract49d'>feature/cib_contract49d</option>
<option value='feature/cib_contract561'>feature/cib_contract561</option>
<option value='feature/cib_contract57'>feature/cib_contract57</option>
<option value='feature/cib_contract57b'>feature/cib_contract57b</option>
<option value='feature/cib_contract57c'>feature/cib_contract57c</option>
<option value='feature/cib_contract57d'>feature/cib_contract57d</option>
<option value='feature/cib_contract57d+hotfix'>feature/cib_contract57d+hotfix</option>
<option value='feature/cib_contract57d_p1'>feature/cib_contract57d_p1</option>
<option value='feature/cib_contract57e'>feature/cib_contract57e</option>
<option value='feature/cib_contract57l'>feature/cib_contract57l</option>
<option value='feature/cib_contract6721b'>feature/cib_contract6721b</option>
<option value='feature/cib_contract6721c'>feature/cib_contract6721c</option>
<option value='feature/cib_contract7409'>feature/cib_contract7409</option>
<option value='feature/cib_contract8161'>feature/cib_contract8161</option>
<option value='feature/cib_contract891'>feature/cib_contract891</option>
<option value='feature/cib_contract891b'>feature/cib_contract891b</option>
<option value='feature/cib_contract891c'>feature/cib_contract891c</option>
<option value='feature/cib_contract891d'>feature/cib_contract891d</option>
<option value='feature/cib_contract935'>feature/cib_contract935</option>
<option value='feature/cib_contract935b'>feature/cib_contract935b</option>
<option value='feature/clipboard'>feature/clipboard</option>
<option value='feature/cmis'>feature/cmis</option>
<option value='feature/components'>feature/components</option>
<option value='feature/controlstate'>feature/controlstate</option>
<option value='feature/coretext'>feature/coretext</option>
<option value='feature/coverrest-featuretests'>feature/coverrest-featuretests</option>
<option value='feature/cp-5.0-cairo-svp'>feature/cp-5.0-cairo-svp</option>
<option value='feature/cpu_intrinsics_support'>feature/cpu_intrinsics_support</option>
<option value='feature/custom-widgets'>feature/custom-widgets</option>
<option value='feature/dataprovider'>feature/dataprovider</option>
<option value='feature/debugevent'>feature/debugevent</option>
<option value='feature/dematurize01'>feature/dematurize01</option>
<option value='feature/dialog-screenshots'>feature/dialog-screenshots</option>
<option value='feature/docking_windows'>feature/docking_windows</option>
<option value='feature/docx-commentsex'>feature/docx-commentsex</option>
<option value='feature/drawinglayercore'>feature/drawinglayercore</option>
<option value='feature/drawinglayercore2'>feature/drawinglayercore2</option>
<option value='feature/droid_calcimpress3'>feature/droid_calcimpress3</option>
<option value='feature/droid_calimpress4'>feature/droid_calimpress4</option>
<option value='feature/drop-findcmap'>feature/drop-findcmap</option>
<option value='feature/editviewoverlay'>feature/editviewoverlay</option>
<option value='feature/eszka'>feature/eszka</option>
<option value='feature/extended-tooltips'>feature/extended-tooltips</option>
<option value='feature/external-data-ui'>feature/external-data-ui</option>
<option value='feature/fastparser'>feature/fastparser</option>
<option value='feature/firebird-sdbc'>feature/firebird-sdbc</option>
<option value='feature/firebird-sdbc2'>feature/firebird-sdbc2</option>
<option value='feature/firebird-sdbc3'>feature/firebird-sdbc3</option>
<option value='feature/fixstyles3'>feature/fixstyles3</option>
<option value='feature/fontsubtitutions'>feature/fontsubtitutions</option>
<option value='feature/foo'>feature/foo</option>
<option value='feature/gbuild_cli'>feature/gbuild_cli</option>
<option value='feature/gccwrapper'>feature/gccwrapper</option>
<option value='feature/glyphy'>feature/glyphy</option>
<option value='feature/go2'>feature/go2</option>
<option value='feature/gpg4libre'>feature/gpg4libre</option>
<option value='feature/gpg4libre-5-4'>feature/gpg4libre-5-4</option>
<option value='feature/gpg4libre-6-0'>feature/gpg4libre-6-0</option>
<option value='feature/gpg4libre2'>feature/gpg4libre2</option>
<option value='feature/graphicobject'>feature/graphicobject</option>
<option value='feature/gsoc-basic-ide-completion-and-other-bits'>feature/gsoc-basic-ide-completion-and-other-bits</option>
<option value='feature/gsoc-calc-enhanced-db-range'>feature/gsoc-calc-enhanced-db-range</option>
<option value='feature/gsoc-svm-writer'>feature/gsoc-svm-writer</option>
<option value='feature/gsoc-uitest-2019'>feature/gsoc-uitest-2019</option>
<option value='feature/gsoc14-colors'>feature/gsoc14-colors</option>
<option value='feature/gsoc14-draw-chained-text-boxes'>feature/gsoc14-draw-chained-text-boxes</option>
<option value='feature/gsoc14-draw-text-background-color'>feature/gsoc14-draw-text-background-color</option>
<option value='feature/gsoc14-libcmis'>feature/gsoc14-libcmis</option>
<option value='feature/gsoc14-libcmis2'>feature/gsoc14-libcmis2</option>
<option value='feature/gsoc14-personas'>feature/gsoc14-personas</option>
<option value='feature/gsoc14-personas2'>feature/gsoc14-personas2</option>
<option value='feature/gsoc15-online-update'>feature/gsoc15-online-update</option>
<option value='feature/gsoc15-open-remote-files-dialog'>feature/gsoc15-open-remote-files-dialog</option>
<option value='feature/gsoc17-revamp-customize-dialog'>feature/gsoc17-revamp-customize-dialog</option>
<option value='feature/gsoc19-chart-style'>feature/gsoc19-chart-style</option>
<option value='feature/gsoc2011_wizards'>feature/gsoc2011_wizards</option>
<option value='feature/gsoc24-lua'>feature/gsoc24-lua</option>
<option value='feature/gtk3_kde5'>feature/gtk3_kde5</option>
<option value='feature/gtk3nativedialogs'>feature/gtk3nativedialogs</option>
<option value='feature/gtktiledviewer'>feature/gtktiledviewer</option>
<option value='feature/ia2'>feature/ia2</option>
<option value='feature/ia2.2'>feature/ia2.2</option>
<option value='feature/ia2.3'>feature/ia2.3</option>
<option value='feature/ia2.4'>feature/ia2.4</option>
<option value='feature/ia2.5'>feature/ia2.5</option>
<option value='feature/improvexlsximport'>feature/improvexlsximport</option>
<option value='feature/instdirlinktargets'>feature/instdirlinktargets</option>
<option value='feature/item_refactor2'>feature/item_refactor2</option>
<option value='feature/jsdialogs'>feature/jsdialogs</option>
<option value='feature/jssidebar'>feature/jssidebar</option>
<option value='feature/lfrb-vcl-opengl'>feature/lfrb-vcl-opengl</option>
<option value='feature/libffi'>feature/libffi</option>
<option value='feature/lok-calc-rtl'>feature/lok-calc-rtl</option>
<option value='feature/lok-clipboard'>feature/lok-clipboard</option>
<option value='feature/lok_cellcursor'>feature/lok_cellcursor</option>
<option value='feature/lok_dialog'>feature/lok_dialog</option>
<option value='feature/lok_dialog-backport'>feature/lok_dialog-backport</option>
<option value='feature/lok_dialog2'>feature/lok_dialog2</option>
<option value='feature/lok_sofficemain'>feature/lok_sofficemain</option>
<option value='feature/lok_sofficemain2'>feature/lok_sofficemain2</option>
<option value='feature/mac-opengl-fixes'>feature/mac-opengl-fixes</option>
<option value='feature/macOS-weld'>feature/macOS-weld</option>
<option value='feature/mailmerge-toolbar'>feature/mailmerge-toolbar</option>
<option value='feature/mar-updater'>feature/mar-updater</option>
<option value='feature/mariadb'>feature/mariadb</option>
<option value='feature/misc-vba-rework'>feature/misc-vba-rework</option>
<option value='feature/mork'>feature/mork</option>
<option value='feature/nativealpha'>feature/nativealpha</option>
<option value='feature/notebookbar'>feature/notebookbar</option>
<option value='feature/notes-refactoring'>feature/notes-refactoring</option>
<option value='feature/ooxml-analyze'>feature/ooxml-analyze</option>
<option value='feature/opengl-canvas-rework'>feature/opengl-canvas-rework</option>
<option value='feature/opengl-transitions-rework'>feature/opengl-transitions-rework</option>
<option value='feature/opengl-vcl-text'>feature/opengl-vcl-text</option>
<option value='feature/orcus-continuous-integration'>feature/orcus-continuous-integration</option>
<option value='feature/orcus-odf'>feature/orcus-odf</option>
<option value='feature/orcus-odf-rebased'>feature/orcus-odf-rebased</option>
<option value='feature/orcus-odf-rebased2'>feature/orcus-odf-rebased2</option>
<option value='feature/orcus-rebased'>feature/orcus-rebased</option>
<option value='feature/owncloud-provider-for-android'>feature/owncloud-provider-for-android</option>
<option value='feature/pdfium-master'>feature/pdfium-master</option>
<option value='feature/perfwork4'>feature/perfwork4</option>
<option value='feature/perfwork5'>feature/perfwork5</option>
<option value='feature/pivotcharts'>feature/pivotcharts</option>
<option value='feature/print_revamp'>feature/print_revamp</option>
<option value='feature/priorities'>feature/priorities</option>
<option value='feature/profilesafemode'>feature/profilesafemode</option>
<option value='feature/propose-master-cib'>feature/propose-master-cib</option>
<option value='feature/pytable'>feature/pytable</option>
<option value='feature/pyweb-wizard'>feature/pyweb-wizard</option>
<option value='feature/qt5-win+mac'>feature/qt5-win+mac</option>
<option value='feature/refactor-god-objects'>feature/refactor-god-objects</option>
<option value='feature/rendercontext'>feature/rendercontext</option>
<option value='feature/resolve-comments'>feature/resolve-comments</option>
<option value='feature/scaling-geometry-provider'>feature/scaling-geometry-provider</option>
<option value='feature/screenshotannotation'>feature/screenshotannotation</option>
<option value='feature/sgexperiment'>feature/sgexperiment</option>
<option value='feature/skia'>feature/skia</option>
<option value='feature/slidehack'>feature/slidehack</option>
<option value='feature/slidehack2'>feature/slidehack2</option>
<option value='feature/slideshow_onlySprites'>feature/slideshow_onlySprites</option>
<option value='feature/slideshowprimitives'>feature/slideshowprimitives</option>
<option value='feature/sparklines'>feature/sparklines</option>
<option value='feature/spellig_popup_SID'>feature/spellig_popup_SID</option>
<option value='feature/stub_writer'>feature/stub_writer</option>
<option value='feature/svg-export'>feature/svg-export</option>
<option value='feature/svg-optimisations'>feature/svg-optimisations</option>
<option value='feature/svg-optimisations-5-0'>feature/svg-optimisations-5-0</option>
<option value='feature/sw-delete-undo-rework'>feature/sw-delete-undo-rework</option>
<option value='feature/sw_redlinehide_4a_for_libreoffice-6-2'>feature/sw_redlinehide_4a_for_libreoffice-6-2</option>
<option value='feature/sw_redlinehide_4b_for_libreoffice-6-2'>feature/sw_redlinehide_4b_for_libreoffice-6-2</option>
<option value='feature/table-style'>feature/table-style</option>
<option value='feature/table-style-rebased'>feature/table-style-rebased</option>
<option value='feature/table_panel'>feature/table_panel</option>
<option value='feature/table_rotated_text'>feature/table_rotated_text</option>
<option value='feature/taggedPDF'>feature/taggedPDF</option>
<option value='feature/template_manager_improvements'>feature/template_manager_improvements</option>
<option value='feature/template_manager_improvements2'>feature/template_manager_improvements2</option>
<option value='feature/themesupport'>feature/themesupport</option>
<option value='feature/themesupport2'>feature/themesupport2</option>
<option value='feature/tiled-editing'>feature/tiled-editing</option>
<option value='feature/tscp3'>feature/tscp3</option>
<option value='feature/unitver'>feature/unitver</option>
<option value='feature/unocrsrptr'>feature/unocrsrptr</option>
<option value='feature/unostyles'>feature/unostyles</option>
<option value='feature/unostyles2'>feature/unostyles2</option>
<option value='feature/unostyles3'>feature/unostyles3</option>
<option value='feature/use-ogl-context-in-canvas'>feature/use-ogl-context-in-canvas</option>
<option value='feature/vcl-opengl'>feature/vcl-opengl</option>
<option value='feature/vcl-opengl-integration'>feature/vcl-opengl-integration</option>
<option value='feature/vcl-opengl2'>feature/vcl-opengl2</option>
<option value='feature/vclptr'>feature/vclptr</option>
<option value='feature/vlc'>feature/vlc</option>
<option value='feature/vlc-rb'>feature/vlc-rb</option>
<option value='feature/vs2012'>feature/vs2012</option>
<option value='feature/wasm'>feature/wasm</option>
<option value='feature/window-iter'>feature/window-iter</option>
<option value='feature/windows-cross-build'>feature/windows-cross-build</option>
<option value='feature/windowsupdater'>feature/windowsupdater</option>
<option value='feature/xtiledrenderable'>feature/xtiledrenderable</option>
<option value='feature/yrs-demo'>feature/yrs-demo</option>
<option value='libreoffice-24-2'>libreoffice-24-2</option>
<option value='libreoffice-24-2-0'>libreoffice-24-2-0</option>
<option value='libreoffice-24-2-1'>libreoffice-24-2-1</option>
<option value='libreoffice-24-2-2'>libreoffice-24-2-2</option>
<option value='libreoffice-24-2-3'>libreoffice-24-2-3</option>
<option value='libreoffice-24-2-4'>libreoffice-24-2-4</option>
<option value='libreoffice-24-2-5'>libreoffice-24-2-5</option>
<option value='libreoffice-24-2-6'>libreoffice-24-2-6</option>
<option value='libreoffice-24-2-7'>libreoffice-24-2-7</option>
<option value='libreoffice-24-8'>libreoffice-24-8</option>
<option value='libreoffice-24-8-0'>libreoffice-24-8-0</option>
<option value='libreoffice-24-8-1'>libreoffice-24-8-1</option>
<option value='libreoffice-24-8-2'>libreoffice-24-8-2</option>
<option value='libreoffice-24-8-3'>libreoffice-24-8-3</option>
<option value='libreoffice-24-8-4'>libreoffice-24-8-4</option>
<option value='libreoffice-24-8-5'>libreoffice-24-8-5</option>
<option value='libreoffice-24-8-6'>libreoffice-24-8-6</option>
<option value='libreoffice-25-2'>libreoffice-25-2</option>
<option value='libreoffice-25-2-0'>libreoffice-25-2-0</option>
<option value='libreoffice-25-2-1'>libreoffice-25-2-1</option>
<option value='libreoffice-25-2-2'>libreoffice-25-2-2</option>
<option value='libreoffice-3-5'>libreoffice-3-5</option>
<option value='libreoffice-3-5-0'>libreoffice-3-5-0</option>
<option value='libreoffice-3-5-1'>libreoffice-3-5-1</option>
<option value='libreoffice-3-5-2'>libreoffice-3-5-2</option>
<option value='libreoffice-3-5-3'>libreoffice-3-5-3</option>
<option value='libreoffice-3-5-4'>libreoffice-3-5-4</option>
<option value='libreoffice-3-5-5'>libreoffice-3-5-5</option>
<option value='libreoffice-3-5-6'>libreoffice-3-5-6</option>
<option value='libreoffice-3-5-7'>libreoffice-3-5-7</option>
<option value='libreoffice-3-6'>libreoffice-3-6</option>
<option value='libreoffice-3-6-0'>libreoffice-3-6-0</option>
<option value='libreoffice-3-6-1'>libreoffice-3-6-1</option>
<option value='libreoffice-3-6-2'>libreoffice-3-6-2</option>
<option value='libreoffice-3-6-3'>libreoffice-3-6-3</option>
<option value='libreoffice-3-6-4'>libreoffice-3-6-4</option>
<option value='libreoffice-3-6-5'>libreoffice-3-6-5</option>
<option value='libreoffice-3-6-6'>libreoffice-3-6-6</option>
<option value='libreoffice-3-6-7'>libreoffice-3-6-7</option>
<option value='libreoffice-4-0'>libreoffice-4-0</option>
<option value='libreoffice-4-0-0'>libreoffice-4-0-0</option>
<option value='libreoffice-4-0-1'>libreoffice-4-0-1</option>
<option value='libreoffice-4-0-2'>libreoffice-4-0-2</option>
<option value='libreoffice-4-0-3'>libreoffice-4-0-3</option>
<option value='libreoffice-4-0-4'>libreoffice-4-0-4</option>
<option value='libreoffice-4-0-5'>libreoffice-4-0-5</option>
<option value='libreoffice-4-0-6'>libreoffice-4-0-6</option>
<option value='libreoffice-4-1'>libreoffice-4-1</option>
<option value='libreoffice-4-1-0'>libreoffice-4-1-0</option>
<option value='libreoffice-4-1-1'>libreoffice-4-1-1</option>
<option value='libreoffice-4-1-2'>libreoffice-4-1-2</option>
<option value='libreoffice-4-1-3'>libreoffice-4-1-3</option>
<option value='libreoffice-4-1-4'>libreoffice-4-1-4</option>
<option value='libreoffice-4-1-5'>libreoffice-4-1-5</option>
<option value='libreoffice-4-1-6'>libreoffice-4-1-6</option>
<option value='libreoffice-4-2'>libreoffice-4-2</option>
<option value='libreoffice-4-2-0'>libreoffice-4-2-0</option>
<option value='libreoffice-4-2-1'>libreoffice-4-2-1</option>
<option value='libreoffice-4-2-2'>libreoffice-4-2-2</option>
<option value='libreoffice-4-2-3'>libreoffice-4-2-3</option>
<option value='libreoffice-4-2-4'>libreoffice-4-2-4</option>
<option value='libreoffice-4-2-5'>libreoffice-4-2-5</option>
<option value='libreoffice-4-2-6'>libreoffice-4-2-6</option>
<option value='libreoffice-4-2-7'>libreoffice-4-2-7</option>
<option value='libreoffice-4-2-8'>libreoffice-4-2-8</option>
<option value='libreoffice-4-3'>libreoffice-4-3</option>
<option value='libreoffice-4-3-0'>libreoffice-4-3-0</option>
<option value='libreoffice-4-3-1'>libreoffice-4-3-1</option>
<option value='libreoffice-4-3-2'>libreoffice-4-3-2</option>
<option value='libreoffice-4-3-3'>libreoffice-4-3-3</option>
<option value='libreoffice-4-3-4'>libreoffice-4-3-4</option>
<option value='libreoffice-4-3-5'>libreoffice-4-3-5</option>
<option value='libreoffice-4-3-6'>libreoffice-4-3-6</option>
<option value='libreoffice-4-3-7'>libreoffice-4-3-7</option>
<option value='libreoffice-4-4'>libreoffice-4-4</option>
<option value='libreoffice-4-4-0'>libreoffice-4-4-0</option>
<option value='libreoffice-4-4-1'>libreoffice-4-4-1</option>
<option value='libreoffice-4-4-2'>libreoffice-4-4-2</option>
<option value='libreoffice-4-4-3'>libreoffice-4-4-3</option>
<option value='libreoffice-4-4-4'>libreoffice-4-4-4</option>
<option value='libreoffice-4-4-5'>libreoffice-4-4-5</option>
<option value='libreoffice-4-4-6'>libreoffice-4-4-6</option>
<option value='libreoffice-4-4-7'>libreoffice-4-4-7</option>
<option value='libreoffice-5-0'>libreoffice-5-0</option>
<option value='libreoffice-5-0-0'>libreoffice-5-0-0</option>
<option value='libreoffice-5-0-1'>libreoffice-5-0-1</option>
<option value='libreoffice-5-0-2'>libreoffice-5-0-2</option>
<option value='libreoffice-5-0-3'>libreoffice-5-0-3</option>
<option value='libreoffice-5-0-4'>libreoffice-5-0-4</option>
<option value='libreoffice-5-0-5'>libreoffice-5-0-5</option>
<option value='libreoffice-5-0-6'>libreoffice-5-0-6</option>
<option value='libreoffice-5-1'>libreoffice-5-1</option>
<option value='libreoffice-5-1-0'>libreoffice-5-1-0</option>
<option value='libreoffice-5-1-1'>libreoffice-5-1-1</option>
<option value='libreoffice-5-1-2'>libreoffice-5-1-2</option>
<option value='libreoffice-5-1-3'>libreoffice-5-1-3</option>
<option value='libreoffice-5-1-4'>libreoffice-5-1-4</option>
<option value='libreoffice-5-1-5'>libreoffice-5-1-5</option>
<option value='libreoffice-5-1-6'>libreoffice-5-1-6</option>
<option value='libreoffice-5-2'>libreoffice-5-2</option>
<option value='libreoffice-5-2-0'>libreoffice-5-2-0</option>
<option value='libreoffice-5-2-1'>libreoffice-5-2-1</option>
<option value='libreoffice-5-2-2'>libreoffice-5-2-2</option>
<option value='libreoffice-5-2-3'>libreoffice-5-2-3</option>
<option value='libreoffice-5-2-4'>libreoffice-5-2-4</option>
<option value='libreoffice-5-2-5'>libreoffice-5-2-5</option>
<option value='libreoffice-5-2-6'>libreoffice-5-2-6</option>
<option value='libreoffice-5-2-7'>libreoffice-5-2-7</option>
<option value='libreoffice-5-3'>libreoffice-5-3</option>
<option value='libreoffice-5-3-0'>libreoffice-5-3-0</option>
<option value='libreoffice-5-3-1'>libreoffice-5-3-1</option>
<option value='libreoffice-5-3-2'>libreoffice-5-3-2</option>
<option value='libreoffice-5-3-3'>libreoffice-5-3-3</option>
<option value='libreoffice-5-3-4'>libreoffice-5-3-4</option>
<option value='libreoffice-5-3-5'>libreoffice-5-3-5</option>
<option value='libreoffice-5-3-6'>libreoffice-5-3-6</option>
<option value='libreoffice-5-3-7'>libreoffice-5-3-7</option>
<option value='libreoffice-5-4'>libreoffice-5-4</option>
<option value='libreoffice-5-4-0'>libreoffice-5-4-0</option>
<option value='libreoffice-5-4-1'>libreoffice-5-4-1</option>
<option value='libreoffice-5-4-2'>libreoffice-5-4-2</option>
<option value='libreoffice-5-4-3'>libreoffice-5-4-3</option>
<option value='libreoffice-5-4-4'>libreoffice-5-4-4</option>
<option value='libreoffice-5-4-5'>libreoffice-5-4-5</option>
<option value='libreoffice-5-4-6'>libreoffice-5-4-6</option>
<option value='libreoffice-5-4-7'>libreoffice-5-4-7</option>
<option value='libreoffice-6-0'>libreoffice-6-0</option>
<option value='libreoffice-6-0-0'>libreoffice-6-0-0</option>
<option value='libreoffice-6-0-1'>libreoffice-6-0-1</option>
<option value='libreoffice-6-0-2'>libreoffice-6-0-2</option>
<option value='libreoffice-6-0-3'>libreoffice-6-0-3</option>
<option value='libreoffice-6-0-4'>libreoffice-6-0-4</option>
<option value='libreoffice-6-0-5'>libreoffice-6-0-5</option>
<option value='libreoffice-6-0-6'>libreoffice-6-0-6</option>
<option value='libreoffice-6-0-7'>libreoffice-6-0-7</option>
<option value='libreoffice-6-1'>libreoffice-6-1</option>
<option value='libreoffice-6-1-0'>libreoffice-6-1-0</option>
<option value='libreoffice-6-1-1'>libreoffice-6-1-1</option>
<option value='libreoffice-6-1-2'>libreoffice-6-1-2</option>
<option value='libreoffice-6-1-3'>libreoffice-6-1-3</option>
<option value='libreoffice-6-1-4'>libreoffice-6-1-4</option>
<option value='libreoffice-6-1-5'>libreoffice-6-1-5</option>
<option value='libreoffice-6-1-6'>libreoffice-6-1-6</option>
<option value='libreoffice-6-2'>libreoffice-6-2</option>
<option value='libreoffice-6-2-0'>libreoffice-6-2-0</option>
<option value='libreoffice-6-2-1'>libreoffice-6-2-1</option>
<option value='libreoffice-6-2-2'>libreoffice-6-2-2</option>
<option value='libreoffice-6-2-3'>libreoffice-6-2-3</option>
<option value='libreoffice-6-2-4'>libreoffice-6-2-4</option>
<option value='libreoffice-6-2-5'>libreoffice-6-2-5</option>
<option value='libreoffice-6-2-6'>libreoffice-6-2-6</option>
<option value='libreoffice-6-2-7'>libreoffice-6-2-7</option>
<option value='libreoffice-6-2-8'>libreoffice-6-2-8</option>
<option value='libreoffice-6-3'>libreoffice-6-3</option>
<option value='libreoffice-6-3-0'>libreoffice-6-3-0</option>
<option value='libreoffice-6-3-1'>libreoffice-6-3-1</option>
<option value='libreoffice-6-3-2'>libreoffice-6-3-2</option>
<option value='libreoffice-6-3-3'>libreoffice-6-3-3</option>
<option value='libreoffice-6-3-4'>libreoffice-6-3-4</option>
<option value='libreoffice-6-3-5'>libreoffice-6-3-5</option>
<option value='libreoffice-6-3-6'>libreoffice-6-3-6</option>
<option value='libreoffice-6-4'>libreoffice-6-4</option>
<option value='libreoffice-6-4-0'>libreoffice-6-4-0</option>
<option value='libreoffice-6-4-1'>libreoffice-6-4-1</option>
<option value='libreoffice-6-4-2'>libreoffice-6-4-2</option>
<option value='libreoffice-6-4-3'>libreoffice-6-4-3</option>
<option value='libreoffice-6-4-4'>libreoffice-6-4-4</option>
<option value='libreoffice-6-4-5'>libreoffice-6-4-5</option>
<option value='libreoffice-6-4-6'>libreoffice-6-4-6</option>
<option value='libreoffice-6-4-7'>libreoffice-6-4-7</option>
<option value='libreoffice-7-0'>libreoffice-7-0</option>
<option value='libreoffice-7-0-0'>libreoffice-7-0-0</option>
<option value='libreoffice-7-0-1'>libreoffice-7-0-1</option>
<option value='libreoffice-7-0-2'>libreoffice-7-0-2</option>
<option value='libreoffice-7-0-3'>libreoffice-7-0-3</option>
<option value='libreoffice-7-0-4'>libreoffice-7-0-4</option>
<option value='libreoffice-7-0-5'>libreoffice-7-0-5</option>
<option value='libreoffice-7-0-6'>libreoffice-7-0-6</option>
<option value='libreoffice-7-1'>libreoffice-7-1</option>
<option value='libreoffice-7-1-0'>libreoffice-7-1-0</option>
<option value='libreoffice-7-1-1'>libreoffice-7-1-1</option>
<option value='libreoffice-7-1-2'>libreoffice-7-1-2</option>
<option value='libreoffice-7-1-3'>libreoffice-7-1-3</option>
<option value='libreoffice-7-1-4'>libreoffice-7-1-4</option>
<option value='libreoffice-7-1-5'>libreoffice-7-1-5</option>
<option value='libreoffice-7-1-6'>libreoffice-7-1-6</option>
<option value='libreoffice-7-1-7'>libreoffice-7-1-7</option>
<option value='libreoffice-7-2'>libreoffice-7-2</option>
<option value='libreoffice-7-2-0'>libreoffice-7-2-0</option>
<option value='libreoffice-7-2-1'>libreoffice-7-2-1</option>
<option value='libreoffice-7-2-2'>libreoffice-7-2-2</option>
<option value='libreoffice-7-2-3'>libreoffice-7-2-3</option>
<option value='libreoffice-7-2-5'>libreoffice-7-2-5</option>
<option value='libreoffice-7-2-6'>libreoffice-7-2-6</option>
<option value='libreoffice-7-2-7'>libreoffice-7-2-7</option>
<option value='libreoffice-7-3'>libreoffice-7-3</option>
<option value='libreoffice-7-3-0'>libreoffice-7-3-0</option>
<option value='libreoffice-7-3-1'>libreoffice-7-3-1</option>
<option value='libreoffice-7-3-2'>libreoffice-7-3-2</option>
<option value='libreoffice-7-3-3'>libreoffice-7-3-3</option>
<option value='libreoffice-7-3-4'>libreoffice-7-3-4</option>
<option value='libreoffice-7-3-5'>libreoffice-7-3-5</option>
<option value='libreoffice-7-3-6'>libreoffice-7-3-6</option>
<option value='libreoffice-7-3-7'>libreoffice-7-3-7</option>
<option value='libreoffice-7-4'>libreoffice-7-4</option>
<option value='libreoffice-7-4-0'>libreoffice-7-4-0</option>
<option value='libreoffice-7-4-1'>libreoffice-7-4-1</option>
<option value='libreoffice-7-4-2'>libreoffice-7-4-2</option>
<option value='libreoffice-7-4-3'>libreoffice-7-4-3</option>
<option value='libreoffice-7-4-4'>libreoffice-7-4-4</option>
<option value='libreoffice-7-4-6'>libreoffice-7-4-6</option>
<option value='libreoffice-7-4-7'>libreoffice-7-4-7</option>
<option value='libreoffice-7-5'>libreoffice-7-5</option>
<option value='libreoffice-7-5-0'>libreoffice-7-5-0</option>
<option value='libreoffice-7-5-1'>libreoffice-7-5-1</option>
<option value='libreoffice-7-5-2'>libreoffice-7-5-2</option>
<option value='libreoffice-7-5-3'>libreoffice-7-5-3</option>
<option value='libreoffice-7-5-4'>libreoffice-7-5-4</option>
<option value='libreoffice-7-5-5'>libreoffice-7-5-5</option>
<option value='libreoffice-7-5-6'>libreoffice-7-5-6</option>
<option value='libreoffice-7-5-7'>libreoffice-7-5-7</option>
<option value='libreoffice-7-5-8'>libreoffice-7-5-8</option>
<option value='libreoffice-7-5-9'>libreoffice-7-5-9</option>
<option value='libreoffice-7-6'>libreoffice-7-6</option>
<option value='libreoffice-7-6-0'>libreoffice-7-6-0</option>
<option value='libreoffice-7-6-1'>libreoffice-7-6-1</option>
<option value='libreoffice-7-6-2'>libreoffice-7-6-2</option>
<option value='libreoffice-7-6-3'>libreoffice-7-6-3</option>
<option value='libreoffice-7-6-4'>libreoffice-7-6-4</option>
<option value='libreoffice-7-6-5'>libreoffice-7-6-5</option>
<option value='libreoffice-7-6-6'>libreoffice-7-6-6</option>
<option value='libreoffice-7-6-7'>libreoffice-7-6-7</option>
<option value='master'>master</option>
<option value='ports/macosx10.5/master'>ports/macosx10.5/master</option>
<option value='private/Ashod/cd-5.3-3.2_import_unloaded'>private/Ashod/cd-5.3-3.2_import_unloaded</option>
<option value='private/Ashod/cd-5.3-3.2_import_unloaded_share_GfxLink'>private/Ashod/cd-5.3-3.2_import_unloaded_share_GfxLink</option>
<option value='private/Ashod/cd-5.3.3.2'>private/Ashod/cd-5.3.3.2</option>
<option value='private/Ashod/cp-5.0-preinit'>private/Ashod/cp-5.0-preinit</option>
<option value='private/Ashod/fast-calc-rendering'>private/Ashod/fast-calc-rendering</option>
<option value='private/Ashod/pdfium'>private/Ashod/pdfium</option>
<option value='private/Ashod/pdfium_on_master'>private/Ashod/pdfium_on_master</option>
<option value='private/Ashod/pdfium_on_master_fixed'>private/Ashod/pdfium_on_master_fixed</option>
<option value='private/EL-SHREIF/ui_logger'>private/EL-SHREIF/ui_logger</option>
<option value='private/Minion3665/swf-export'>private/Minion3665/swf-export</option>
<option value='private/Rosemary/change-tracking'>private/Rosemary/change-tracking</option>
<option value='private/Sweetshark/killswclient'>private/Sweetshark/killswclient</option>
<option value='private/Sweetshark/lessdepend'>private/Sweetshark/lessdepend</option>
<option value='private/Sweetshark/multilistenerfix'>private/Sweetshark/multilistenerfix</option>
<option value='private/ajrhunt/c4'>private/ajrhunt/c4</option>
<option value='private/ajrhunt/cunit'>private/ajrhunt/cunit</option>
<option value='private/ajrhunt/cunitdemo'>private/ajrhunt/cunitdemo</option>
<option value='private/ajrhunt/firebird-improvement'>private/ajrhunt/firebird-improvement</option>
<option value='private/bansan/chardraw'>private/bansan/chardraw</option>
<option value='private/bubli/textboxchaining'>private/bubli/textboxchaining</option>
<option value='private/hcvcastro/preinit'>private/hcvcastro/preinit</option>
<option value='private/hcvcastro/undo-row-comment'>private/hcvcastro/undo-row-comment</option>
<option value='private/jmux/armin-strip-before-squash'>private/jmux/armin-strip-before-squash</option>
<option value='private/jmux/broken-static-win'>private/jmux/broken-static-win</option>
<option value='private/jmux/current-reorga'>private/jmux/current-reorga</option>
<option value='private/jmux/meson'>private/jmux/meson</option>
<option value='private/jmux/meson-gsoc-2021'>private/jmux/meson-gsoc-2021</option>
<option value='private/jmux/oss-fuzz'>private/jmux/oss-fuzz</option>
<option value='private/jmux/oss-fuzz-wip'>private/jmux/oss-fuzz-wip</option>
<option value='private/jmux/scheduler-fixes'>private/jmux/scheduler-fixes</option>
<option value='private/jmux/shape.odt'>private/jmux/shape.odt</option>
<option value='private/jmux/wasm-for-master'>private/jmux/wasm-for-master</option>
<option value='private/jmux/wasm-tmp'>private/jmux/wasm-tmp</option>
<option value='private/jmux/wasm_for_master_catchall'>private/jmux/wasm_for_master_catchall</option>
<option value='private/jmux/win-arm64'>private/jmux/win-arm64</option>
<option value='private/jmux/win-test-nohang'>private/jmux/win-test-nohang</option>
<option value='private/juergen/Tests'>private/juergen/Tests</option>
<option value='private/juergen/check-cjk'>private/juergen/check-cjk</option>
<option value='private/kendy/condformat-api'>private/kendy/condformat-api</option>
<option value='private/kendy/condformat-fdo82014'>private/kendy/condformat-fdo82014</option>
<option value='private/kendy/mailmerge-04'>private/kendy/mailmerge-04</option>
<option value='private/kendy/mailmerge-05'>private/kendy/mailmerge-05</option>
<option value='private/kendy/swinterpreter'>private/kendy/swinterpreter</option>
<option value='private/kendy/testcl'>private/kendy/testcl</option>
<option value='private/khaledhosny/color-fonts'>private/khaledhosny/color-fonts</option>
<option value='private/khaledhosny/vcl-cleanup-font'>private/khaledhosny/vcl-cleanup-font</option>
<option value='private/kohei/chart-bugs'>private/kohei/chart-bugs</option>
<option value='private/kohei/find-replace-all-perf'>private/kohei/find-replace-all-perf</option>
<option value='private/kohei/headless-perf'>private/kohei/headless-perf</option>
<option value='private/kohei/if-or-not-if-jump'>private/kohei/if-or-not-if-jump</option>
<option value='private/kohei/sort-ref-update'>private/kohei/sort-ref-update</option>
<option value='private/lfrb/opengl-vcl'>private/lfrb/opengl-vcl</option>
<option value='private/lgodard/calc_notes_import_export'>private/lgodard/calc_notes_import_export</option>
<option value='private/lgodard/tdf#117202'>private/lgodard/tdf#117202</option>
<option value='private/llunak/mailmerge'>private/llunak/mailmerge</option>
<option value='private/llunak/mailmerge_01'>private/llunak/mailmerge_01</option>
<option value='private/llunak/mailmerge_02'>private/llunak/mailmerge_02</option>
<option value='private/llunak/mailmerge_03'>private/llunak/mailmerge_03</option>
<option value='private/llunak/munich_12587'>private/llunak/munich_12587</option>
<option value='private/llunak/skia'>private/llunak/skia</option>
<option value='private/lmamane/basetest'>private/lmamane/basetest</option>
<option value='private/lmamane/for-julien2412'>private/lmamane/for-julien2412</option>
<option value='private/lmamane/for-julien2412-master'>private/lmamane/for-julien2412-master</option>
<option value='private/lmamane/tdf110997'>private/lmamane/tdf110997</option>
<option value='private/lmamane/timedate-controls-nanosecond'>private/lmamane/timedate-controls-nanosecond</option>
<option value='private/lmamane/validation'>private/lmamane/validation</option>
<option value='private/mcecchetti/23H1/a11y/paragraph'>private/mcecchetti/23H1/a11y/paragraph</option>
<option value='private/mcecchetti/accessibility/paragraph'>private/mcecchetti/accessibility/paragraph</option>
<option value='private/mcecchetti/amd/pdf-export-jpeg'>private/mcecchetti/amd/pdf-export-jpeg</option>
<option value='private/mcecchetti/bitmapcrc64'>private/mcecchetti/bitmapcrc64</option>
<option value='private/mcecchetti/bitmapcrc64-5-0'>private/mcecchetti/bitmapcrc64-5-0</option>
<option value='private/mcecchetti/calc-perf-unit-test'>private/mcecchetti/calc-perf-unit-test</option>
<option value='private/mcecchetti/calc-unit-test'>private/mcecchetti/calc-unit-test</option>
<option value='private/mcecchetti/gl-program-binary'>private/mcecchetti/gl-program-binary</option>
<option value='private/mert/wip_deepl'>private/mert/wip_deepl</option>
<option value='private/mikekaganski/multicolumn'>private/mikekaganski/multicolumn</option>
<option value='private/mmeeks/aafixes44'>private/mmeeks/aafixes44</option>
<option value='private/mmeeks/backports'>private/mmeeks/backports</option>
<option value='private/mmeeks/binarydatacache'>private/mmeeks/binarydatacache</option>
<option value='private/mmeeks/bitmapcrc64'>private/mmeeks/bitmapcrc64</option>
<option value='private/mmeeks/copy-paste'>private/mmeeks/copy-paste</option>
<option value='private/mmeeks/copypaste'>private/mmeeks/copypaste</option>
<option value='private/mmeeks/cp-6.2-bits'>private/mmeeks/cp-6.2-bits</option>
<option value='private/mmeeks/cp64merge'>private/mmeeks/cp64merge</option>
<option value='private/mmeeks/currency-dropdown'>private/mmeeks/currency-dropdown</option>
<option value='private/mmeeks/foo'>private/mmeeks/foo</option>
<option value='private/mmeeks/formula-iterator'>private/mmeeks/formula-iterator</option>
<option value='private/mmeeks/gldebug'>private/mmeeks/gldebug</option>
<option value='private/mmeeks/hidpi-bits'>private/mmeeks/hidpi-bits</option>
<option value='private/mmeeks/icontest'>private/mmeeks/icontest</option>
<option value='private/mmeeks/opengl-backbuffer'>private/mmeeks/opengl-backbuffer</option>
<option value='private/mmeeks/opengl-backbuffer2'>private/mmeeks/opengl-backbuffer2</option>
<option value='private/mmeeks/sandbox'>private/mmeeks/sandbox</option>
<option value='private/mmeeks/swapdatacontainer'>private/mmeeks/swapdatacontainer</option>
<option value='private/mmeeks/vcl-opengl3'>private/mmeeks/vcl-opengl3</option>
<option value='private/moggi/fix-opengl-context-problems'>private/moggi/fix-opengl-context-problems</option>
<option value='private/moggi/improved-dxf-xls-export'>private/moggi/improved-dxf-xls-export</option>
<option value='private/moggi/opengl-4-4-build-test'>private/moggi/opengl-4-4-build-test</option>
<option value='private/moggi/opengl-preparation'>private/moggi/opengl-preparation</option>
<option value='private/moggi/opengl-vcl-win'>private/moggi/opengl-vcl-win</option>
<option value='private/moggi/orcus-improvements'>private/moggi/orcus-improvements</option>
<option value='private/moggi/track-win-dc'>private/moggi/track-win-dc</option>
<option value='private/moggi/ui-test'>private/moggi/ui-test</option>
<option value='private/moggi/vcl-opengl3'>private/moggi/vcl-opengl3</option>
<option value='private/mst/sw_fieldmarkhide'>private/mst/sw_fieldmarkhide</option>
<option value='private/mst/sw_redlinehide'>private/mst/sw_redlinehide</option>
<option value='private/mst/sw_redlinehide_2'>private/mst/sw_redlinehide_2</option>
<option value='private/mst/sw_redlinehide_3'>private/mst/sw_redlinehide_3</option>
<option value='private/mst/sw_redlinehide_4a'>private/mst/sw_redlinehide_4a</option>
<option value='private/mst/sw_redlinehide_4b'>private/mst/sw_redlinehide_4b</option>
<option value='private/pranavk/modernize_gtktiledviewer'>private/pranavk/modernize_gtktiledviewer</option>
<option value='private/quwex/gsoc-box2d-experimental'>private/quwex/gsoc-box2d-experimental</option>
<option value='private/quwex/notespane-search'>private/quwex/notespane-search</option>
<option value='private/quwex/notespaneflat'>private/quwex/notespaneflat</option>
<option value='private/quwex/notespanesquashed'>private/quwex/notespanesquashed</option>
<option value='private/quwex/tdf59323'>private/quwex/tdf59323</option>
<option value='private/s.mehrbrodt/colorpicker-backport'>private/s.mehrbrodt/colorpicker-backport</option>
<option value='private/sweetshark/swdepend'>private/sweetshark/swdepend</option>
<option value='private/tbsdy/clipping'>private/tbsdy/clipping</option>
<option value='private/tbsdy/drawserverfontlayout'>private/tbsdy/drawserverfontlayout</option>
<option value='private/tbsdy/emf'>private/tbsdy/emf</option>
<option value='private/tbsdy/osl_getAllEnvironment'>private/tbsdy/osl_getAllEnvironment</option>
<option value='private/tbsdy/outdev'>private/tbsdy/outdev</option>
<option value='private/tbsdy/printinfomgr'>private/tbsdy/printinfomgr</option>
<option value='private/tbsdy/workbench'>private/tbsdy/workbench</option>
<option value='private/thb/libo-6-1+backports'>private/thb/libo-6-1+backports</option>
<option value='private/thb/libreoffice-5-2+backports'>private/thb/libreoffice-5-2+backports</option>
<option value='private/thb/sw_redlinehide-6-1'>private/thb/sw_redlinehide-6-1</option>
<option value='private/thb/tdf149754'>private/thb/tdf149754</option>
<option value='private/thb/wasm-upstreaming'>private/thb/wasm-upstreaming</option>
<option value='private/timar/cp-6.2-centos7'>private/timar/cp-6.2-centos7</option>
<option value='private/timar/fontconfigcrash'>private/timar/fontconfigcrash</option>
<option value='private/timar/pythonupgrademsp'>private/timar/pythonupgrademsp</option>
<option value='private/tml/Use-the-iOS-French-and-Italian-dictionaries-for-othe'>private/tml/Use-the-iOS-French-and-Italian-dictionaries-for-othe</option>
<option value='private/tml/android-use-bionic-linker-copy'>private/tml/android-use-bionic-linker-copy</option>
<option value='private/tml/android-use-faulty.lib'>private/tml/android-use-faulty.lib</option>
<option value='private/tml/cp-6-4-28-1'>private/tml/cp-6-4-28-1</option>
<option value='private/tml/fixwintext'>private/tml/fixwintext</option>
<option value='private/tml/iculess'>private/tml/iculess</option>
<option value='private/tml/lov-6.1.5.2'>private/tml/lov-6.1.5.2</option>
<option value='private/tml/lov-6.2.1'>private/tml/lov-6.2.1</option>
<option value='private/tml/lov-7.0.3.3'>private/tml/lov-7.0.3.3</option>
<option value='private/tml/lov-7.0.4'>private/tml/lov-7.0.4</option>
<option value='private/tml/lov-7.1.2'>private/tml/lov-7.1.2</option>
<option value='private/tml/opencl-default-1'>private/tml/opencl-default-1</option>
<option value='private/tvajngerl/staging'>private/tvajngerl/staging</option>
<option value='ref/for/distro/collabora/cp-6.2'>ref/for/distro/collabora/cp-6.2</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>LibreOffice 核心代码仓库</td><td class='sub right'>文档基金会</td></tr></table>
<table class='tabs'><tr><td>
<a href='/cgit/lo/core/?h=cp-5.3-56'>summary</a><a href='/cgit/lo/core/refs/?h=cp-5.3-56'>refs</a><a class='active' href='/cgit/lo/core/log/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;showmsg=1'>log</a><a href='/cgit/lo/core/tree/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56'>tree</a><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56'>commit</a><a href='/cgit/lo/core/diff/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit/lo/core/log/connectivity/inc/pch/precompiled_ado.hxx'>
<input type='hidden' name='h' value='cp-5.3-56'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit/lo/core/log/?h=cp-5.3-56&amp;showmsg=1'>root</a>/<a href='/cgit/lo/core/log/connectivity?h=cp-5.3-56&amp;showmsg=1'>connectivity</a>/<a href='/cgit/lo/core/log/connectivity/inc?h=cp-5.3-56&amp;showmsg=1'>inc</a>/<a href='/cgit/lo/core/log/connectivity/inc/pch?h=cp-5.3-56&amp;showmsg=1'>pch</a>/<a href='/cgit/lo/core/log/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;showmsg=1'>precompiled_ado.hxx</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit/lo/core/log/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56'>Collapse</a>)</th><th class='left'>Author</th></tr>
<tr class='logheader'><td><span title='2016-02-17 11:33:57 +0000'>2016-02-17</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=2087484c65a3d5e75a9e8ad116d11a4e13366219'>use consistent #define checks for the Windows platform</a><span class='decoration'></span></td><td>Noel Grandin</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
stage 2 of replacing usage of various checks for the windows platform
with the compiler-defined '_WIN32' macro

In this stage we focus on replacing usage of the WIN macro

Change-Id: Ie8a4a63198a6de96bd158ecd707dadafb9c8ea84
Reviewed-on: https://gerrit.libreoffice.org/22393
Tested-by: Jenkins &lt;ci@libreoffice.org&gt;
Reviewed-by: Noel Grandin &lt;noelgrandin@gmail.com&gt;


</td></tr>
<tr class='logheader'><td><span title='2015-12-10 07:03:31 +0000'>2015-12-10</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=b8ecfd83bac98ea58a435c59856da8fd94f5c6d9'>Undef RGB where it was defined, not where it gets used</a><span class='decoration'></span></td><td>Stephan Bergmann</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Change-Id: I274958964292f78c802748e17fca7f265ae5a4b8
Reviewed-on: https://gerrit.libreoffice.org/20429
Tested-by: Jenkins &lt;ci@libreoffice.org&gt;
Reviewed-by: Stephan Bergmann &lt;sbergman@redhat.com&gt;


</td></tr>
<tr class='logheader'><td><span title='2015-12-04 11:26:22 +0000'>2015-12-04</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=a027ed9573858f3ec6361577ff541d7f2495bd32'>Wingdi RGB macro handling improved</a><span class='decoration'></span></td><td>Ashod Nakashian</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Improved the isolation of windows headers.
Specifically, RGB macro is better handled now.

Change-Id: I0eeea16d0de9da3455810c80b0715f7b54ae8c3f
Reviewed-on: https://gerrit.libreoffice.org/20039
Tested-by: Jenkins &lt;ci@libreoffice.org&gt;
Reviewed-by: Michael Stahl &lt;mstahl@redhat.com&gt;


</td></tr>
<tr class='logheader'><td><span title='2015-11-15 20:31:35 +0000'>2015-11-15</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=06116bd15b1fb8b03e65e1166f5ddad929614246'>Fast PCH generator and optimized PCH files</a><span class='decoration'></span></td><td>Ashod Nakashian</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Ported update_pch.sh to Python with improved performance
and features. The new script is invoked from the same
update_pch.sh which calls it for each library in
parallel, although it can be invoked directly.

The ported script (update_pch) updates all PCH files
in ~15 seconds where the old script took ~4500 seconds.
In addition, the new script supports 3-tiered headers
(system, module, and local) and is very flexible to
support other improvement. It has a per-library
optimal configuration settings that can be updated
using another new scripts (update_pch_autotune.sh)
which finds optimal per-PCH settings.

PCH files have been generated using the new scripts
which builds significantly faster (2-3x, depending
on module and configuration) and the intermediate
binaries are noticably smaller (by several GBs).

The new script stamps each generated PCH file with
the command that generated it to make it trivial
for users to update them, and also adds the command
to invoke another script (update_pch_bisect) that
helps find missing headers or conflicting headers
that may break the build after updating the PCH.

Finally update_pch has built-in unit-tests for
makefile parsing and other core functionality.

Change-Id: Ib933b50e50374d7e2e7e3e95ba8799b0cc8a27fa
Reviewed-on: https://gerrit.libreoffice.org/19965
Tested-by: Jenkins &lt;ci@libreoffice.org&gt;
Reviewed-by: Caolán McNamara &lt;caolanm@redhat.com&gt;
Tested-by: Caolán McNamara &lt;caolanm@redhat.com&gt;


</td></tr>
<tr class='logheader'><td><span title='2015-08-11 22:22:05 +0000'>2015-08-11</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=f6595f0b3389ffeefa10035d915a884b02d26c0e'>tdf#92459 remove o3tl/compat_functional.hxx</a><span class='decoration'></span></td><td>Daniel Robertson</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Replace all uses of deprecated features from the o3tl included in
compat_functional.hxx with lambda expressions in connectivity and
reportdesign. The patch should not cause any side effects. The change is
largely cosmetic.

Change-Id: I2042b91bf0fa2b47cce9ea11c97fa4ca6734c5e2
Reviewed-on: https://gerrit.libreoffice.org/17588
Reviewed-by: Thorsten Behrens &lt;Thorsten.Behrens@CIB.de&gt;
Tested-by: Thorsten Behrens &lt;Thorsten.Behrens@CIB.de&gt;


</td></tr>
<tr class='logheader'><td><span title='2015-02-05 10:46:33 +0000'>2015-02-05</span></td><td class='logsubject'><a href='/cgit/lo/core/commit/connectivity/inc/pch/precompiled_ado.hxx?h=cp-5.3-56&amp;id=de68bb85145e68fc170b8eab0fa3357cd7165421'>Updated all precompiled headers.</a><span class='decoration'></span></td><td>Ashod Nakashian</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Change-Id: I955c8ac4dbe002d23531df7eb10fb4444d6b5157
Reviewed-on: https://gerrit.libreoffice.org/14292
Tested-by: Jenkins &lt;ci@libreoffice.org&gt;
Reviewed-by: Caolán McNamara &lt;caolanm@redhat.com&gt;
Tested-by: Caolán McNamara &lt;caolanm@redhat.com&gt;


</td></tr>