summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2011-04-22 15:07:18 +0200
committerJan Holesovsky <kendy@suse.cz>2011-04-22 15:07:18 +0200
commitfc1e9f253dd07362065f2be9691be89fb9b3f84f (patch)
tree89ff0b4e6733af107e34d1513df55479951b5221
parent535bee89a2f5aab6f997688313e47343cef298ea (diff)
parent5c8186bdd389fc05224d33add32e944d3f96dc27 (diff)
Merge branch 'DEV300_m106' into libreoffice-3-4
Conflicts: Module_ooo.mk Repository.mk configure configure.in ooo.lst scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/makefile.mk scp2/source/ooo/module_hidden_ooo.scp solenv/config/sdev300.ini solenv/config/ssolar.cmn solenv/gbuild/AllLangResTarget.mk solenv/gbuild/ComponentTarget.mk solenv/gbuild/CppunitTest.mk solenv/gbuild/Deliver.mk solenv/gbuild/JavaClassSet.mk solenv/gbuild/JunitTest.mk solenv/gbuild/Library.mk solenv/gbuild/LinkTarget.mk solenv/gbuild/Module.mk solenv/gbuild/Output.mk solenv/gbuild/SdiTarget.mk solenv/gbuild/TargetLocations.mk solenv/gbuild/gbuild.mk solenv/gbuild/platform/linux.mk solenv/gbuild/platform/macosx.mk solenv/gbuild/platform/solaris.mk solenv/gbuild/platform/windows.mk solenv/gbuild/platform/winmingw.mk solenv/inc/minor.mk
-rw-r--r--Module_ooo.mk1
-rwxr-xr-x[-rw-r--r--]Repository.mk14
-rwxr-xr-x[-rw-r--r--]RepositoryFixes.mk6
-rwxr-xr-xconfigure.in267
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt1
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt1
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt1
-rw-r--r--ooo.lst12
-rw-r--r--scp2/source/ooo/file_library_ooo.scp147
-rw-r--r--scp2/source/ooo/file_ooo.scp1
-rw-r--r--scp2/source/ooo/makefile.mk32
-rw-r--r--scp2/source/ooo/module_hidden_ooo.scp27
-rw-r--r--scp2/source/ooo/shortcut_ooo.scp7
-rw-r--r--scp2/source/ooo/windowscustomaction_ooo.scp14
-rwxr-xr-xset_soenv.in15
-rwxr-xr-xsolenv/bin/checkdll.sh2
-rw-r--r--solenv/bin/macosx-change-install-names.pl20
-rw-r--r--solenv/bin/modules/installer/globals.pm7
-rw-r--r--solenv/bin/modules/installer/systemactions.pm2
-rw-r--r--solenv/bin/modules/installer/windows/file.pm12
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm3
-rw-r--r--solenv/bin/modules/installer/windows/msp.pm197
-rw-r--r--solenv/bin/modules/installer/windows/property.pm6
-rw-r--r--solenv/bin/modules/installer/windows/registry.pm76
-rw-r--r--solenv/gbuild/Library.mk1
-rw-r--r--solenv/gbuild/LinkTarget.mk1
-rwxr-xr-x[-rw-r--r--]solenv/gbuild/TargetLocations.mk2
-rw-r--r--solenv/gbuild/WinResTarget.mk70
-rw-r--r--solenv/gbuild/gbuild.mk1
-rw-r--r--[-rwxr-xr-x]solenv/gbuild/platform/linux.mk0
-rw-r--r--[-rwxr-xr-x]solenv/gbuild/platform/macosx.mk4
-rw-r--r--[-rwxr-xr-x]solenv/gbuild/platform/solaris.mk13
-rw-r--r--[-rwxr-xr-x]solenv/gbuild/platform/windows.mk78
-rw-r--r--solenv/gbuild/platform/winmingw.mk69
-rw-r--r--solenv/inc/langlist.mk1
-rw-r--r--solenv/inc/minor.mk4
36 files changed, 1079 insertions, 36 deletions
diff --git a/Module_ooo.mk b/Module_ooo.mk
index 9835771e6da3..8805ac8b8f7f 100644
--- a/Module_ooo.mk
+++ b/Module_ooo.mk
@@ -40,6 +40,7 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
sw \
toolkit \
tools \
+ vcl \
unoxml \
xmloff \
vbahelper \
diff --git a/Repository.mk b/Repository.mk
index fc5aa93ceb08..584e63ad96e3 100644..100755
--- a/Repository.mk
+++ b/Repository.mk
@@ -43,9 +43,12 @@ $(eval $(call gb_Helper_register_executables,OOO, \
))
$(eval $(call gb_Helper_register_libraries,OOOLIBS, \
+ AppleRemote \
avmedia \
basegfx \
+ basebmp \
cui \
+ desktop_detector \
drawinglayer \
editeng \
for \
@@ -87,6 +90,11 @@ $(eval $(call gb_Helper_register_libraries,OOOLIBS, \
unoxml \
vbahelper \
vcl \
+ vclplug_gen \
+ vclplug_gtk \
+ vclplug_kde \
+ vclplug_kde4 \
+ vclplug_svp \
xcr \
xo \
xof \
@@ -100,6 +108,9 @@ $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
test \
cppunit \
icuuc \
+ icule \
+ graphite_dll \
+ cppunit \
rdf \
xslt \
))
@@ -109,6 +120,7 @@ $(eval $(call gb_Helper_register_libraries,RTLIBS, \
comphelper \
i18nisolang1 \
i18nutil \
+ jvmaccess \
ucbhelper \
))
@@ -139,8 +151,8 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
jpeglib \
ooopathutils \
salcpprt \
- vclmain \
zlib \
+ graphite \
))
# vim: set noet sw=4 ts=4:
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
index 15a0f878f8b4..f7aff979958b 100644..100755
--- a/RepositoryFixes.mk
+++ b/RepositoryFixes.mk
@@ -111,9 +111,14 @@ gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
gb_Library_NOILIBFILENAMES:=\
advapi32 \
gdi32 \
+ gdiplus \
+ graphite_dll \
gnu_getopt \
icuuc \
+ icule \
+ imm32\
kernel32 \
+ msimg32 \
msvcrt \
msvcprt \
mpr \
@@ -126,6 +131,7 @@ gb_Library_NOILIBFILENAMES:=\
user32 \
uuid \
uwinapi \
+ winspool \
gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES))
gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT))
diff --git a/configure.in b/configure.in
index 64f88ec4f5c5..537c84867018 100755
--- a/configure.in
+++ b/configure.in
@@ -282,6 +282,20 @@ AC_ARG_ENABLE(cairo,
available.]),
,enable_cairo=yes)
+AC_ARG_ENABLE(librsvg,
+[ --enable-librsvg Determines whether to use librsvg library on
+ platforms where librsvg is available.
+ (actually, it is possible to build with
+ --disable-librsvg and to still have SVG support
+ within a running soffice instance, since this
+ dependency is a runtime only dependency.
+ To have SVG suppport at runtime, the librsvg, the cairo
+ and the gobject library - and all depending libraries
+ as well - need to be accessible by the running soffice
+ instance.
+ The intention of defaulting this flag to yes is to
+ indicate this fact to the build maintainer)
+],,enable_librsvg=yes)
AC_ARG_ENABLE(opengl,
AS_HELP_STRING([--disable-opengl],
[Determines whether to build the OpenGL 3D slide transitions component.]),
@@ -1409,6 +1423,7 @@ case "$host_os" in
solaris*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_freetype=yes
test_gstreamer=yes
@@ -1441,6 +1456,7 @@ case "$host_os" in
linux-gnu*|k*bsd*-gnu*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_kde4=yes
test_freetype=yes
@@ -1456,6 +1472,7 @@ case "$host_os" in
cygwin*|interix*) # Windows
test_cups=no
test_randr=no
+ test_librsvg=no
test_freetype=no
test_cairo=no
test_fontconfig=no
@@ -1463,6 +1480,7 @@ case "$host_os" in
;;
darwin*) # Mac OS X
test_gtk=yes
+ test_librsvg=no
test_randr=no
test_freetype=no
test_fontconfig=no
@@ -1479,12 +1497,14 @@ case "$host_os" in
test_randr=no
test_gtk=no
test_cairo=no
+ test_librsvg=no
test_freetype=no
_os=OS2
;;
freebsd*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_kde4=yes
test_freetype=yes
@@ -1512,6 +1532,7 @@ case "$host_os" in
*netbsd*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=no
test_kde4=yes
test_freetype=yes
@@ -5930,7 +5951,12 @@ fi
dnl We also need to check for --with-gnu-cp
if test -z "$with_gnu_cp"; then
- AC_PATH_PROGS(GNUCP, gnucp cp)
+ # check the place where the good stuff is hidden on Solaris...
+ if test -x /usr/gnu/bin/cp; then
+ GNUCP=/usr/gnu/bin/cp
+ else
+ AC_PATH_PROGS(GNUCP, gnucp cp)
+ fi
if test -z $GNUCP; then
AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
fi
@@ -6117,6 +6143,7 @@ if test "$test_gtk" = "yes"; then
if test "$ENABLE_GTK" = "TRUE" ; then
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4 gdk-pixbuf-xlib-2.0 >= 2.2 ,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
+ PKG_CHECK_MODULES(GTHREAD, gthread-2.0,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
BUILD_TYPE="$BUILD_TYPE GTK"
if test "x$enable_systray" = "xyes"; then
@@ -6152,6 +6179,8 @@ AC_SUBST(ENABLE_DBUS)
AC_SUBST(ENABLE_SYSTRAY_GTK)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
+AC_SUBST(GTHREAD_CFLAGS)
+AC_SUBST(GTHREAD_LIBS)
AC_ARG_ENABLE(unix-qstart,
AS_HELP_STRING([--disable-unix-qstart],
@@ -6250,6 +6279,29 @@ fi
AC_SUBST(ENABLE_GSTREAMER)
dnl ===================================================================
+dnl Check whether the librsvg libraries are available.
+dnl ===================================================================
+
+ENABLE_LIBRSVG=""
+LIBRSVG_CFLAGS=""
+LIBRSVG_LIBS=""
+
+if test "$test_librsvg" = "yes"; then
+ AC_MSG_CHECKING([whether to use librsvg])
+ if test "x$enable_librsvg" != "xno" ; then
+ PKG_CHECK_MODULES( LIBRSVG, librsvg-2.0 >= 2.14,,AC_MSG_ERROR([requirements to build with librsvg support not met. Use --disable-librsvg or install the missing packages]))
+ ENABLE_LIBRSVG="TRUE"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+fi
+
+AC_SUBST(ENABLE_LIBRSVG)
+AC_SUBST(LIBRSVG_CFLAGS)
+AC_SUBST(LIBRSVG_LIBS)
+
+dnl ===================================================================
dnl Check whether the OpenGL libraries are available
dnl ===================================================================
@@ -7509,6 +7561,205 @@ AC_SUBST(USE_XINERAMA)
AC_SUBST(XINERAMA_LINK)
dnl ===================================================================
+dnl Test whether to build librsvg or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of librsvg])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBRSVG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBRSVG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBRSVG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBRSVG)
+
+dnl ===================================================================
+dnl Test whether to build gdk-pixbuf or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of gdk-pixbuf])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GDKPIXBUF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GDKPIXBUF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GDKPIXBUF=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GDKPIXBUF)
+
+dnl ===================================================================
+dnl Test whether to build glib or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of glib])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GLIB=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GLIB=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GLIB=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GLIB)
+
+dnl ===================================================================
+dnl Test whether to build gettext or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of gettext])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GETTEXT=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GETTEXT=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GETTEXT=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GETTEXT)
+
+dnl ===================================================================
+dnl Test whether to build libcroco or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libcroco])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBCROCO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBCROCO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBCROCO=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBCROCO)
+
+dnl ===================================================================
+dnl Test whether to build pango or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of pango])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_PANGO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_PANGO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_PANGO=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_PANGO)
+
+dnl ===================================================================
+dnl Test whether to build libgsf or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libgsf])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBGSF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBGSF=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBGSF)
+
+dnl ===================================================================
+dnl Test whether to build libpng or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libpng])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBPNG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBPNG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBPNG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBPNG)
+
+dnl ===================================================================
+dnl Test whether to build libjpeg or rely on the system version
+dnl ===================================================================
+dnl FIXME: this is currently because we have jpeg-6b for our filters
+dnl and jpeg-8 as dependency for librsvg
+dnl this should be unified into using only one version for both
+
+AC_MSG_CHECKING([whether to build own version of libjpeg])
+
+if test "$SYSTEM_JPEG" == "YES"; then
+SYSTEM_LIBJPEG=YES
+else
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBJPEG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBJPEG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBJPEG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+fi
+
+if test "$SYSTEM_LIBJPEG" == "YES"; then
+ AC_MSG_RESULT([no])
+else
+ AC_MSG_RESULT([yes])
+fi
+AC_SUBST(SYSTEM_LIBJPEG)
+
+dnl ===================================================================
dnl Check for runtime JVM search path
dnl ===================================================================
if test "$SOLAR_JAVA" != ""; then
@@ -7634,8 +7885,12 @@ if test "$ANT_HOME" != "NO_ANT_HOME"; then
if test -f $ANT_HOME/lib/ant/ant.jar; then
ANT_LIB="$ANT_HOME/lib/ant"
else
- AC_MSG_ERROR([Ant libraries not found!])
- fi
+ if test -f /usr/share/lib/ant/ant.jar; then
+ ANT_LIB=/usr/share/lib/ant
+ else
+ AC_MSG_ERROR([Ant libraries not found!])
+ fi
+ fi
fi
fi
fi
@@ -7717,7 +7972,11 @@ if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
if test -e /usr/share/java/junit4.jar; then
OOO_JUNIT_JAR=/usr/share/java/junit4.jar
else
- OOO_JUNIT_JAR=/usr/share/java/junit.jar
+ if test -e /usr/share/lib/java/junit.jar; then
+ OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
+ else
+ OOO_JUNIT_JAR=/usr/share/java/junit.jar
+ fi
fi
else
OOO_JUNIT_JAR=$with_junit
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
index ede3f7cb4f42..18b3ca47bdf2 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
@@ -11,3 +11,4 @@ InstallFinalize 400
InstallInitialize 250
InstallValidate 200
ScheduleReboot ISSCHEDULEREBOOT 375
+SetInstalllocation 390
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
index 17a47e8e9889..8708803f2cc9 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
@@ -122,6 +122,7 @@ setAllUsersProfile2K 51 ALLUSERSPROFILE [%ALLUSERSPROFILE]
SetAllUsersProfileNT 51 ALLUSERSPROFILE [%SystemRoot]\Profiles\All Users
setUserProfileNT 51 USERPROFILE [%USERPROFILE]
SetARPInstallLocation 51 ARPINSTALLLOCATION [INSTALLLOCATION]
+SetInstalllocation 51 RegisterExtensions [INSTALLLOCATION]
NewProductFound 19 OOO_CUSTOMACTION_1
SameProductFound 19 OOO_CUSTOMACTION_2
SetLanguageSelected 51 LANG_SELECTED 1
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
index defde2299409..13ac5a5aaf55 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
@@ -173,6 +173,7 @@ ScheduleReboot ISSCHEDULEREBOOT 3125
SelfRegModules 2850
SelfUnregModules 1100
SetARPInstallLocation 990
+SetInstalllocation 3140
SetODBCFolders 550
StartServices VersionNT 2800
StopServices VersionNT 950
diff --git a/ooo.lst b/ooo.lst
index 979f049f9ba3..f5691435c353 100644
--- a/ooo.lst
+++ b/ooo.lst
@@ -41,7 +41,6 @@ c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz
ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz
d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip
d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz
-dbd5f3b47ed13132f04c685d608a7547-jpeg-6b.tar.gz
e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt
e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2
e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz
@@ -65,6 +64,17 @@ eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz
+3dd55b952826d2b32f51308f2f91aa89-gettext-0.18.1.1.tar.gz
+9f6e85e1e38490c3956f4415bcd33e6e-glib-2.28.1.tar.gz
+a7d6c5f2fe2d481149ed3ba807b5c043-gdk-pixbuf-2.23.0.tar.gz
+3a84ac2da37cae5bf7ce616228c6fbde-libgsf-1.14.19.tar.gz
+22ad1c8d3fda7e73b0798035f3dd96bc-pango-1.28.3.tar.gz
+0611e099e807210cf738dcb41425d104-libcroco-0.6.2.tar.gz
+d7a242ca43e33e1b63d3073f9d46a6a8-librsvg-2.32.1.tar.gz
+220035f111ea045a51e290906025e8b5-libpng-1.5.1.tar.gz
+a2c10c04f396a9ce72894beb18b4e1f9-jpeg-8c.tar.gz
+c735eab2d659a96e5a594c9e8541ad63-zlib-1.2.5.tar.gz
+
http://download.go-oo.org/src
314e582264c36b3735466c522899aa07-icu4c-4_4_2-src.tgz
451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 7321ca2a2d8c..95c7ea2c20a1 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -1786,6 +1786,153 @@ STD_LIB_FILE(gid_File_Lib_Unordf, unordf)
STD_LIB_FILE( gid_File_Lib_For, for)
STD_LIB_FILE( gid_File_Lib_Forui, forui)
+// RSVG and dependencies
+#if ! defined (SYSTEM_GETTEXT)
+File gid_File_Lib_Intl
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libintl.8.dylib";
+ #elif defined WNT
+ Name = "intl.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_GLIB
+File gid_File_Lib_Glib
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libglib-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libglib-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gthread
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgthread-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgthread-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gobject
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgobject-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgobject-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gio
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgio-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgio-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gmodule
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgmodule-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgmodule-2.0-0.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_GDKPIXBUF
+File gid_File_Lib_Gdkpixbuf
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgdk_pixbuf-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgdk_pixbuf-2.0-0.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_LIBCROCO
+File gid_File_Lib_Libcroco
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libcroco-0.6.3.0.1.dylib";
+ #elif defined WNT
+ Name = "libcroco-0.6-3.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_PANGO
+File gid_File_Lib_Libpango
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libpango-1.0.0.dylib";
+ #elif defined WNT
+ Name = "libpango-1.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Libpangocairo
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libpangocairo-1.0.0.dylib";
+ #elif defined WNT
+ Name = "libpangocairo-1.0-0.dll";
+ #endif
+End
+#if defined WNT
+File gid_File_Lib_Libpangowin32
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = "libpangowin32-1.0-0.dll";
+End
+#endif
+#endif
+
+#if ! defined SYSTEM_LIBGSF
+File gid_File_Lib_Libgsf
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+#ifdef WNT
+ Name = "gsf-1.dll";
+#endif
+End
+#endif
+
+#if ! defined SYSTEM_LIBRSVG
+File gid_File_Lib_Librsvg
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "librsvg-2.2.dylib";
+ #elif defined WNT
+ Name = "librsvg-2-2.dll";
+ #endif
+End
+#endif
#ifdef WNT
File gid_File_Lib_sellangmsi
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 65769d268113..277308160d3f 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -2159,3 +2159,4 @@ End
// UnixRights = 444;
// End
// #endif
+
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index 86ef48cc2667..db402e7278ce 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -250,6 +250,38 @@ SCPDEFS+=-DMINGW_GCCDLL=\""$(MINGW_GCCDLL)"\"
SCPDEFS+=-DMINGW_GXXDLL=\""$(MINGW_GXXDLL)"\"
.ENDIF
+.IF "$(SYSTEM_GDKPIXBUF)" == "YES"
+SCPDEFS+=-DSYSTEM_GDKPIXBUF
+.ENDIF
+
+.IF "$(SYSTEM_GETTEXT)" == "YES"
+SCPDEFS+=-DSYSTEM_GETTEXT
+.ENDIF
+
+.IF "$(SYSTEM_GLIB)" == "YES"
+SCPDEFS+=-DSYSTEM_GLIB
+.ENDIF
+
+.IF "$(SYSTEM_LIBCROCO)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBCROCO
+.ENDIF
+
+.IF "$(SYSTEM_LIBJPEG)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBJPEG
+.ENDIF
+
+.IF "$(SYSTEM_LIBRSVG)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBRSVG
+.ENDIF
+
+.IF "$(SYSTEM_PANGO)" == "YES"
+SCPDEFS+=-DSYSTEM_PANGO
+.ENDIF
+
+.IF "$(SYSTEM_LIBGSF)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBGSF
+.ENDIF
+
.IF "$(ENABLE_LOMENUBAR)" == "TRUE"
SCPDEFS+=-DENABLE_LOMENUBAR
.ENDIF
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index c27d21d2ea2d..3253f0099cc6 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -306,6 +306,32 @@ Module gid_Module_Root_Files_5
Default = YES;
Styles = (HIDDEN_ROOT);
Files = (gid_File_Dat_Root5,
+#if ! defined SYSTEM_GETTEXT
+ gid_File_Lib_Intl,
+#endif
+#if ! defined SYSTEM_GLIB
+ gid_File_Lib_Glib,
+ gid_File_Lib_Gobject,
+ gid_File_Lib_Gthread,
+ gid_File_Lib_Gmodule,
+ gid_File_Lib_Gio,
+#endif
+#if ! defined SYSTEM_GDKPIXBUF
+ gid_File_Lib_Gdkpixbuf,
+#endif
+#if ! defined SYSTEM_LIBCROCO
+ gid_File_Lib_Libcroco,
+#endif
+#if ! defined SYSTEM_PANGO
+ gid_File_Lib_Libpango,
+ gid_File_Lib_Libpangocairo,
+#ifdef WNT
+ gid_File_Lib_Libpangowin32,
+#endif
+#endif
+#if ! defined SYSTEM_LIBGSF
+ gid_File_Lib_Libgsf,
+#endif
gid_File_Lib_Dict_Ja,
gid_File_Lib_Dict_Zh,
gid_File_Lib_Collator_Data,
@@ -865,4 +891,3 @@ End
// Styles = (HIDDEN_ROOT);
// End
// #endif
-
diff --git a/scp2/source/ooo/shortcut_ooo.scp b/scp2/source/ooo/shortcut_ooo.scp
index cec7ed172b52..9f400afbbed0 100644
--- a/scp2/source/ooo/shortcut_ooo.scp
+++ b/scp2/source/ooo/shortcut_ooo.scp
@@ -87,6 +87,13 @@ Shortcut gid_Shortcut_Lib_Hsqldb_2
Styles = (NETWORK, RELATIVE);
End
+Shortcut gid_Shortcut_Lib_Libcroco
+ FileID = gid_File_Lib_Libcroco;
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = "libcroco-0.6.3.dylib";
+ Styles = (NETWORK, RELATIVE);
+End
+
#endif
//i44154 -end-
diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp
index 3426fc921e78..f35482e4dd39 100644
--- a/scp2/source/ooo/windowscustomaction_ooo.scp
+++ b/scp2/source/ooo/windowscustomaction_ooo.scp
@@ -210,12 +210,12 @@ End
WindowsCustomAction gid_Customaction_Register_Extensions
Name = "RegisterExtensions";
- Typ = "65";
+ Typ = "1025";
Source = "shlxtmsi.dll";
Target = "RegisterExtensions";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
- Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "behind_SetInstalllocation");
+ Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "behind_SetInstalllocation");
End
WindowsCustomAction gid_Customaction_Remove_Extensions
@@ -273,8 +273,8 @@ WindowsCustomAction gid_Customaction_CopyExtensionData
Source = "shlxtmsi.dll";
Target = "copyExtensionData";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "RegisterExtensions");
- Assignment2 = ("AdminExecuteSequence", "", "RegisterExtensions");
+ Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment2 = ("AdminExecuteSequence", "", "end");
End
WindowsCustomAction gid_Customaction_RegCleanOld
@@ -474,8 +474,8 @@ WindowsCustomAction gid_Customaction_RebaseLibrariesonproperties
Source = "rebase.dll";
Target = "RebaseLibrariesOnProperties";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
- Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment1 = ("InstallExecuteSequence", "VersionNT < 600 And Not REMOVE=\"ALL\"", "end");
+ Assignment2 = ("AdminExecuteSequence", "VersionNT < 600 And Not REMOVE=\"ALL\"", "end");
End
WindowsCustomAction gid_Customaction_LookForRegisteredExtensions
diff --git a/set_soenv.in b/set_soenv.in
index 01865ded5f8a..9535ee11c4f0 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -201,7 +201,7 @@ if ( $platform =~ m/solaris/ )
$CPU = "I";
$CPUNAME = "INTEL";
$JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386";
- $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."motif21";
+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."xawt";
$JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."native_threads";
}
@@ -217,7 +217,7 @@ if ( $platform =~ m/solaris/ )
$CPU = "S";
$CPUNAME = "SPARC";
$JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc";
- $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."motif21";
+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."xawt";
$JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."native_threads";
}
@@ -1616,6 +1616,8 @@ ToFile( "DEFAULT_TO_ENGLISH_FOR_PACKING", "yes", "e" );
ToFile( "ENABLE_GTK", "@ENABLE_GTK@", "e" );
ToFile( "GTK_CFLAGS", "@GTK_CFLAGS@", "e" );
ToFile( "GTK_LIBS", "@GTK_LIBS@", "e" );
+ToFile( "GTHREAD_CFLAGS", "@GTHREAD_CFLAGS@", "e" );
+ToFile( "GTHREAD_LIBS", "@GTHREAD_LIBS@", "e" );
ToFile( "ENABLE_SYSTRAY_GTK", "@ENABLE_SYSTRAY_GTK@", "e" );
ToFile( "ENABLE_STATIC_GTK", "@ENABLE_STATIC_GTK@", "e" );
ToFile( "ENABLE_CAIRO", "@ENABLE_CAIRO@", "e" );
@@ -1969,6 +1971,15 @@ ToFile( "MDDS_CPPFLAGS", "@MDDS_CPPFLAGS@", "e" );
ToFile( "SYSTEM_MDDS", "@SYSTEM_MDDS@", "e" );
ToFile( "SYSTEM_VIGRA", "@SYSTEM_VIGRA@", "e" );
ToFile( "SYSTEM_NEON", "@SYSTEM_NEON@", "e" );
+ToFile( "SYSTEM_LIBRSVG", "@SYSTEM_LIBRSVG@", "e" );
+ToFile( "SYSTEM_GDKPIXBUF", "@SYSTEM_GDKPIXBUF@", "e" );
+ToFile( "SYSTEM_GLIB", "@SYSTEM_GLIB@", "e" );
+ToFile( "SYSTEM_GETTEXT", "@SYSTEM_GETTEXT@", "e" );
+ToFile( "SYSTEM_LIBCROCO", "@SYSTEM_LIBCROCO@", "e" );
+ToFile( "SYSTEM_PANGO", "@SYSTEM_PANGO@", "e" );
+ToFile( "SYSTEM_LIBGSF", "@SYSTEM_LIBGSF@", "e" );
+ToFile( "SYSTEM_LIBPNG", "@SYSTEM_LIBPNG@", "e" );
+ToFile( "SYSTEM_LIBJPEG", "@SYSTEM_LIBJPEG@", "e" );
ToFile( "NEON_VERSION", "@NEON_VERSION@", "e" );
ToFile( "NEON_LIBS", "@NEON_LIBS@", "e" );
ToFile( "NEON_CFLAGS", "@NEON_CFLAGS@", "e" );
diff --git a/solenv/bin/checkdll.sh b/solenv/bin/checkdll.sh
index b7ad3d4628f0..f51bcfa940a2 100755
--- a/solenv/bin/checkdll.sh
+++ b/solenv/bin/checkdll.sh
@@ -42,7 +42,7 @@ if [ -x $checkdll ]; then
-L) shift; option=$1;;
--) break;;
esac
- case "${libpath+X}" in
+ case "${libpath:+X}" in
X) libpath=$libpath:$option;;
*) libpath=$option;;
esac
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 52b2ffa343ec..7ac07d9f88b0 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -43,6 +43,7 @@ sub action($$$)
'shl/URELIB/URELIB' => '@loader_path',
'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
'shl/OOO/OOO' => '@loader_path',
+ 'shl/LOADER/LOADER' => '@loader_path',
'shl/OXT/URELIB' => '@executable_path/urelibs',
'shl/BOXT/URELIB' => '@executable_path/urelibs',
'shl/BOXT/OOO' => '@loader_path/../../../basis-link/program',
@@ -57,7 +58,7 @@ sub action($$$)
}
@ARGV == 3 || @ARGV >= 2 && $ARGV[0] eq "extshl" or die
- 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
+ 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE|LOADER <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
if ($type eq "SharedLibrary")
@@ -85,10 +86,21 @@ if ($type eq "extshl")
$change .= " -change $1 " . action($type, $loc, $loc) . "/$2";
$inames{$file} = $2;
}
- foreach $file (@ARGV)
+ if( $loc eq "LOADER" )
{
- my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file";
- system($call) == 0 or die "cannot $call";
+ foreach $file (@ARGV)
+ {
+ my $call = "install_name_tool$change -id \@loader_path/$inames{$file} $file";
+ system($call) == 0 or die "cannot $call";
+ }
+ }
+ else
+ {
+ foreach $file (@ARGV)
+ {
+ my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file";
+ system($call) == 0 or die "cannot $call";
+ }
}
}
foreach $file (@ARGV)
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 2f7249c24f47..ace634a3ac5e 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -94,7 +94,8 @@ BEGIN
"fur",
"ny",
"so",
- "kab"
+ "kab",
+ "tk"
);
@items_at_modules = ("Files", "Dirs", "Unixlinks");
@asianlanguages = ("ja", "ko", "zh-CN", "zh-TW");
@@ -385,6 +386,10 @@ BEGIN
%allcomponents_in_this_database = ();
%allshortcomponents = ();
%alluniquedirectorynames = ();
+ %allregistrycomponents_ = ();
+ %allregistrycomponents_in_this_database_ = ();
+ %allshortregistrycomponents = ();
+ %allregistryidentifier = ();
$installlocationdirectory = "";
$installlocationdirectoryset = 0;
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index b96b1268a716..09b4cb1882a3 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -859,7 +859,7 @@ sub find_file_with_file_extension
push(@installer::globals::logfileinfo, $infoline);
opendir(DIR, $dir);
- @sourcefiles = readdir(DIR);
+ @sourcefiles = sort readdir(DIR);
closedir(DIR);
my $onefile;
diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm
index 059c394278d6..c4315b43aceb 100644
--- a/solenv/bin/modules/installer/windows/file.pm
+++ b/solenv/bin/modules/installer/windows/file.pm
@@ -282,7 +282,7 @@ sub get_file_component_name
}
else
{
- if ( length($componentname) > 72 )
+ if ( length($componentname) > 60 )
{
# Using md5sum needs much time
# chomp(my $shorter = `echo $componentname | md5sum | sed -e "s/ .*//g"`);
@@ -674,7 +674,15 @@ sub get_language_for_file
if ( $fileref->{'specificlanguage'} ) { $language = $fileref->{'specificlanguage'}; }
- if (!($language eq ""))
+ if ( $language eq "" )
+ {
+ $language = 0; # language independent
+ # If this is not a font, the return value should be "0" (Check ICE 60)
+ my $styles = "";
+ if ( $fileref->{'Styles'} ) { $styles = $fileref->{'Styles'}; }
+ if ( $styles =~ /\bFONT\b/ ) { $language = ""; }
+ }
+ else
{
$language = installer::windows::language::get_windows_language($language);
}
diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm
index 333df0e8ea08..94b5dcc62399 100644
--- a/solenv/bin/modules/installer/windows/idtglobal.pm
+++ b/solenv/bin/modules/installer/windows/idtglobal.pm
@@ -49,11 +49,14 @@ sub shorten_feature_gid
my ($stringref) = @_;
$$stringref =~ s/gid_Module_/gm_/;
+ $$stringref =~ s/_Extension_/_ex_/;
$$stringref =~ s/_Root_/_r_/;
$$stringref =~ s/_Prg_/_p_/;
$$stringref =~ s/_Optional_/_o_/;
+ $$stringref =~ s/_Tools_/_tl_/;
$$stringref =~ s/_Wrt_Flt_/_w_f_/;
$$stringref =~ s/_Javafilter_/_jf_/;
+ $$stringref =~ s/_Productivity_/_pr_/;
}
############################################
diff --git a/solenv/bin/modules/installer/windows/msp.pm b/solenv/bin/modules/installer/windows/msp.pm
index 85945a05499d..7593c96a6ea8 100644
--- a/solenv/bin/modules/installer/windows/msp.pm
+++ b/solenv/bin/modules/installer/windows/msp.pm
@@ -27,6 +27,7 @@
package installer::windows::msp;
+use File::Copy;
use installer::control;
use installer::converter;
use installer::exiter;
@@ -85,6 +86,196 @@ sub install_installation_sets
}
#################################################################################
+# Collecting the destinations of all files with flag PATCH in a hash.
+#################################################################################
+
+sub collect_patch_file_destinations
+{
+ my ( $filesarray ) = @_;
+
+ my %patchfiledestinations = ();
+ my %nopatchfiledestinations = ();
+ my $patchcounter = 0;
+ my $nopatchcounter = 0;
+
+ for ( my $i = 0; $i <= $#{$filesarray}; $i++ )
+ {
+ my $onefile = ${$filesarray}[$i];
+ my $styles = "";
+
+ if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'} };
+
+ if ( $styles =~ /\bPATCH\b/ )
+ {
+ $patchfiledestinations{$onefile->{'destination'}} = 1;
+ $patchcounter++;
+ }
+ else
+ {
+ $nopatchfiledestinations{$onefile->{'destination'}} = 1;
+ $nopatchcounter++;
+ }
+ }
+
+ return (\%patchfiledestinations, \%nopatchfiledestinations, $patchcounter, $nopatchcounter);
+}
+
+#################################################################################
+# Returning the first path segment of a path
+#################################################################################
+
+sub get_first_path_segment
+{
+ my ( $path ) = @_;
+
+ my $firstsegment = "";
+ my $remainder = $path;
+
+ if ( $path =~ /^\s*(.*?)[\/\\](.*)\s*$/ )
+ {
+ $firstsegment = $1;
+ $remainder = $2;
+ }
+
+ return ($firstsegment, $remainder);
+}
+
+#################################################################################
+# Finding the flexible path in the destinations, that are saved in
+# the hash $nopatchfiledestinations.
+#################################################################################
+
+sub prepare_path_in_nopatchfilehash
+{
+ my ($nopatchfiledestinations, $newpath) = @_;
+
+ my $infoline = "";
+ my $flexiblepath = "";
+ my $found = 0;
+ my %checked_destinations = ();
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ $flexiblepath = "";
+ $found = 0;
+
+ my $found_first_segement = 1;
+ my $firstsegement = "";
+ my $fixedpath = $onedestination;
+ my $testfile = $newpath . $installer::globals::separator . $fixedpath;
+
+ while (( ! -f $testfile ) && ( $found_first_segement ))
+ {
+ $firstsegement = "";
+ ( $firstsegement, $fixedpath ) = get_first_path_segment($fixedpath);
+
+ if ( $firstsegement ne "" )
+ {
+ $found_first_segement = 1;
+ $flexiblepath = $flexiblepath . $firstsegement . $installer::globals::separator;
+ }
+ else
+ {
+ $found_first_segement = 0;
+ }
+
+ $testfile = $newpath . $installer::globals::separator . $fixedpath;
+ }
+
+ if ( -f $testfile ) { $found = 1; }
+
+ if ( $found ) { last; }
+ }
+
+ if ( ! $found ) { installer::exiter::exit_program("ERROR: Could not determine flexible destination path for msp patch creation!", "prepare_path_in_nopatchfilehash"); }
+
+ $infoline = "Setting flexible path for msp creation: $flexiblepath\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ $onedestination =~ s/^\s*\Q$flexiblepath\E//;
+ $checked_destinations{$onedestination} = 1;
+ }
+
+ return \%checked_destinations;
+}
+
+#################################################################################
+# Synchronizing the two installed products in that way, that only
+# files with flag PATCH are different.
+#################################################################################
+
+sub synchronize_installation_sets
+{
+ my ($olddatabase, $newdatabase, $filesarray) = @_;
+
+ my $infoline = "\nSynchronizing installed products because of PATCH flag\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "Old product: $olddatabase\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "New product: $newdatabase\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ my ( $patchfiledestinations, $nopatchfiledestinations, $patchfilecounter, $nopatchfilecounter ) = collect_patch_file_destinations($filesarray);
+
+ $infoline = "Number of files with PATCH flag: $patchfilecounter\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ $infoline = "Number of files without PATCH flag: $nopatchfilecounter\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ foreach my $localfile ( sort keys %{$patchfiledestinations} )
+ {
+ $infoline = "\tPATCH file: $localfile\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+
+ my $oldpath = $olddatabase;
+ if ( $^O =~ /cygwin/i ) { $oldpath =~ s/\\/\//g; }
+ installer::pathanalyzer::get_path_from_fullqualifiedname(\$oldpath);
+ $oldpath =~ s/\\\s*$//;
+ $oldpath =~ s/\/\s*$//;
+
+ my $newpath = $newdatabase;
+ if ( $^O =~ /cygwin/i ) { $newpath =~ s/\\/\//g; }
+ installer::pathanalyzer::get_path_from_fullqualifiedname(\$newpath);
+ $newpath =~ s/\\\s*$//;
+ $newpath =~ s/\/\s*$//;
+
+ # The destination path is not correct. destinations in the hash contain
+ # the flexible installation path, that is not part in the administrative installation
+ $nopatchfiledestinations = prepare_path_in_nopatchfilehash($nopatchfiledestinations, $newpath);
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ my $source = $oldpath . $installer::globals::separator . $onedestination;
+ my $dest = $newpath . $installer::globals::separator . $onedestination;
+
+ if ( -f $source )
+ {
+ if ( -f $dest )
+ {
+ my $copyreturn = copy($source, $dest);
+ # installer::systemactions::copy_one_file($source, $dest);
+ # $infoline = "Synchronizing file: $source to $dest\n";
+ # push( @installer::globals::logfileinfo, $infoline);
+ }
+ else
+ {
+ $infoline = "Not synchronizing. Destination file \"$dest\" does not exist.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+ }
+ else
+ {
+ $infoline = "Not synchronizing. Source file \"$source\" does not exist.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+ }
+}
+
+#################################################################################
# Extracting all tables from a pcp file
#################################################################################
@@ -1197,6 +1388,12 @@ sub create_msp_patch
installer::logger::print_message( "... installing products ...\n" );
my ($olddatabase, $newdatabase) = install_installation_sets($installationdir);
+ installer::logger::include_timestamp_into_logfile("\nPerformance Info: Starting synchronization of installation sets");
+
+ # Synchronizing installed products, allowing only different files with PATCH flag
+ installer::logger::print_message( "... synchronizing installation sets ...\n" );
+ synchronize_installation_sets($olddatabase, $newdatabase, $filesarray);
+
installer::logger::include_timestamp_into_logfile("\nPerformance Info: Starting pcp file creation");
# Create pcp file
diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm
index 44d9a3c06598..a8d30673fc73 100644
--- a/solenv/bin/modules/installer/windows/property.pm
+++ b/solenv/bin/modules/installer/windows/property.pm
@@ -312,6 +312,12 @@ sub set_important_properties
push(@{$propertyfile}, $onepropertyline);
}
+ if ( $allvariables->{'EXCLUDE_FROM_REBASE'} )
+ {
+ my $onepropertyline = "EXCLUDE_FROM_REBASE" . "\t" . $allvariables->{'EXCLUDE_FROM_REBASE'} . "\n";
+ push(@{$propertyfile}, $onepropertyline);
+ }
+
if ( $allvariables->{'PREREQUIREDPATCH'} )
{
my $onepropertyline = "PREREQUIREDPATCH" . "\t" . $allvariables->{'PREREQUIREDPATCH'} . "\n";
diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm
index bc907d704f50..ad036865ebc3 100644
--- a/solenv/bin/modules/installer/windows/registry.pm
+++ b/solenv/bin/modules/installer/windows/registry.pm
@@ -61,12 +61,13 @@ sub get_registry_component_name
# Attention: Maximum length for the componentname is 72
+ # identifying this component as registryitem component
+ $componentname = "registry_" . $componentname;
+
$componentname =~ s/gid_module_/g_m_/g;
$componentname =~ s/_optional_/_o_/g;
$componentname =~ s/_javafilter_/_jf_/g;
- $componentname = $componentname . "_registry"; # identifying this component as registryitem component
-
# This componentname must be more specific
my $addon = "_";
if ( $allvariables->{'PRODUCTNAME'} ) { $addon = $addon . $allvariables->{'PRODUCTNAME'}; }
@@ -96,11 +97,74 @@ sub get_registry_component_name
elsif (( $styles =~ /\bHELPPACK\b/ ) && ( $installer::globals::helppack )) { $componentname = $componentname . "_help"; }
if ( $styles =~ /\bALWAYS_REQUIRED\b/ ) { $componentname = $componentname . "_forced"; }
+ # Attention: Maximum length for the componentname is 72
+ # %installer::globals::allregistrycomponents_in_this_database_ : resetted for each database
+ # %installer::globals::allregistrycomponents_ : not resetted for each database
+ # Component strings must be unique for the complete product, because they are used for
+ # the creation of the globally unique identifier.
+
+ my $fullname = $componentname; # This can be longer than 72
+
+ if (( exists($installer::globals::allregistrycomponents_{$fullname}) ) && ( ! exists($installer::globals::allregistrycomponents_in_this_database_{$fullname}) ))
+ {
+ # This is not allowed: One component cannot be installed with different packages.
+ installer::exiter::exit_program("ERROR: Windows registry component \"$fullname\" is already included into another package. This is not allowed.", "get_registry_component_name");
+ }
+
+ if ( exists($installer::globals::allregistrycomponents_{$fullname}) )
+ {
+ $componentname = $installer::globals::allregistrycomponents_{$fullname};
+ }
+ else
+ {
+ if ( length($componentname) > 60 )
+ {
+ $componentname = generate_new_short_registrycomponentname($componentname); # This has to be unique for the complete product, not only one package
+ }
+
+ $installer::globals::allregistrycomponents_{$fullname} = $componentname;
+ $installer::globals::allregistrycomponents_in_this_database_{$fullname} = 1;
+ }
+
if ( $isrootmodule ) { $installer::globals::registryrootcomponent = $componentname; }
return $componentname;
}
+#########################################################
+# Create a shorter version of a long component name,
+# because maximum length in msi database is 72.
+# Attention: In multi msi installation sets, the short
+# names have to be unique over all packages, because
+# this string is used to create the globally unique id
+# -> no resetting of
+# %installer::globals::allshortregistrycomponents
+# after a package was created.
+#########################################################
+
+sub generate_new_short_registrycomponentname
+{
+ my ($componentname) = @_;
+
+ my $shortcomponentname = "";
+ my $counter = 1;
+
+ my $startversion = substr($componentname, 0, 60); # taking only the first 60 characters
+ $startversion = $startversion . "_";
+
+ $shortcomponentname = $startversion . $counter;
+
+ while ( exists($installer::globals::allshortregistrycomponents{$shortcomponentname}) )
+ {
+ $counter++;
+ $shortcomponentname = $startversion . $counter;
+ }
+
+ $installer::globals::allshortregistrycomponents{$shortcomponentname} = 1;
+
+ return $shortcomponentname;
+}
+
##############################################################
# Returning identifier for registry table.
##############################################################
@@ -122,8 +186,16 @@ sub get_registry_identifier
$identifier =~ s/_clsid_/_c_/;
$identifier =~ s/_currentversion_/_cv_/;
$identifier =~ s/_microsoft_/_ms_/;
+ $identifier =~ s/_manufacturer_/_mf_/;
+ $identifier =~ s/_productname_/_pn_/;
+ $identifier =~ s/_productversion_/_pv_/;
$identifier =~ s/_staroffice_/_so_/;
+ $identifier =~ s/_software_/_sw_/;
+ $identifier =~ s/_capabilities_/_cap_/;
$identifier =~ s/_classpath_/_cp_/;
+ $identifier =~ s/_extension_/_ex_/;
+ $identifier =~ s/_fileassociations_/_fa_/;
+ $identifier =~ s/_propertysheethandlers_/_psh_/;
$identifier =~ s/__/_/g;
# Saving this in the registry collector
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index e6f358a9ef30..4d06274175bf 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -60,6 +60,7 @@ $$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk
endif
$(call gb_Library_get_target,$(1)) : AUXTARGETS :=
$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))
+$(call gb_Library_add_default_nativeres,$(1),default)
endef
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index b71a05de0f17..607a3b749a8e 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -401,6 +401,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCHOBJS :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : PDBFILE :=
$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS :=
+$(call gb_LinkTarget_get_target,$(1)) : NATIVERES :=
ifeq ($(gb_FULLDEPS),$(true))
ifneq ($(wildcard $(call gb_LinkTarget_get_dep_target,$(1))),)
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 486a5b6d1218..3cb92bcc23c4 100644..100755
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -82,6 +82,7 @@ gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1)
gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1)
gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1)
gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs
+gb_WinResTarget_get_target = $(WORKDIR)/WinResTarget/$(1)$(gb_WinResTarget_POSTFIX)
define gb_Library_get_external_headers_target
$(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES)))
@@ -106,6 +107,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
JunitTest \
LinkTarget \
Module \
+ WinResTarget \
NoexPrecompiledHeader \
PackagePart \
PrecompiledHeader \
diff --git a/solenv/gbuild/WinResTarget.mk b/solenv/gbuild/WinResTarget.mk
new file mode 100644
index 000000000000..af768ff2c596
--- /dev/null
+++ b/solenv/gbuild/WinResTarget.mk
@@ -0,0 +1,70 @@
+
+# WinResTarget class
+
+gb_WinResTarget_DEFAULTDEFS := $(gb_RCDEFS)
+
+define gb_WinResTarget_WinResTarget
+$(call gb_WinResTarget_WinResTarget_init,$(1))
+$$(eval $$(call gb_Module_register_target,$(call gb_WinResTarget_get_target,$(1)),$(call gb_WinResTarget_get_clean_target,$(1))))
+
+endef
+
+define gb_WinResTarget_WinResTarget_init
+$(call gb_WinResTarget_get_target,$(1)) : DEFS := $(gb_WinResTarget_DEFAULTDEFS)
+$(call gb_WinResTarget_get_target,$(1)) : INCLUDE := $(SOLARINC)
+$(call gb_WinResTarget_get_clean_target,$(1)) : RCFILE :=
+$(call gb_WinResTarget_get_target,$(1)) : RCFILE :=
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_WinResTarget_get_target,$(1)) : $(call gb_WinResTarget_get_dep_target,$(1))
+ifneq ($(wildcard $(call gb_WinResTarget_get_dep_target,$(1))),)
+include $(call gb_WinResTarget_get_dep_target,$(1))
+else
+$(firstword $(MAKEFILE_LIST)) : $(call gb_WinResTarget_get_dep_target,$(1))
+endif
+$(call gb_WinResTarget_get_dep_target,$(1)) : DEFS := $$(gb_WinResTarget_DEFAULTDEFS)
+$(call gb_WinResTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_WinResTarget_INCLUDE)
+$(call gb_WinResTarget_get_dep_target,$(1)) : RCFILE :=
+endif
+
+endef
+
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_WinResTarget_get_dep_target,%) : $(gb_Helper_MISCDUMMY)
+ mkdir -p $(dir $@) && \
+ echo '$(call gb_WinResTarget_get_target,$*) : $$(gb_Helper_PHONY)' > $@
+endif
+
+
+$(call gb_WinResTarget_get_target,%) :
+ $(call gb_Output_announce,$*,$(true),RES,1)
+ $(call gb_WinResTarget__command_dep,$*,$<)
+ $(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $@))
+ $(call gb_WinResTarget__command,$@)
+
+$(call gb_WinResTarget_get_clean_target,%) :
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $(call gb_WinResTarget_get_target,$*))
+
+define gb_WinResTarget_set_defs
+$(call gb_WinResTarget_get_target,$(1)) : DEFS := $(2)
+$(call gb_WinResTarget_get_dep_target,$(1)) : DEFS := $(2)
+
+endef
+
+define gb_WinResTarget_set_include
+$(call gb_WinResTarget_get_target,$(1)) : INCLUDE := $(2)
+
+endef
+
+define gb_WinResTarget_add_file
+$(call gb_WinResTarget_get_clean_target,$(1)) : RCFILE=$(gb_Helper_SRCDIR_NATIVE)/$(2).rc
+$(call gb_WinResTarget_get_target,$(1)) : RCFILE=$(foreach file,$(gb_REPOS),$(realpath $(file)/$(strip $(2)).rc))
+$(call gb_WinResTarget_get_target,$(1)) : $(foreach file,$(gb_REPOS),$(realpath $(file)/$(strip $(2)).rc))
+
+endef
+
+define gb_WinResTarget_add_dependency
+$(call gb_WinResTarget_get_target,$(1)) : $(foreach file,$(2),$(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(strip $(file)))))
+
+endef
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index b10579f042a0..67cea40d4813 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -261,6 +261,7 @@ $(eval $(call gb_Deliver_init))
include $(foreach class, \
ComponentTarget \
AllLangResTarget \
+ WinResTarget \
LinkTarget \
Library \
StaticLibrary \
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
index 4ef02d54b2f7..4ef02d54b2f7 100755..100644
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 2def0c9828f0..46520ec3d159 100755..100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -29,7 +29,7 @@ GUI := UNX
COM := GCC
# Darwin mktemp -t expects a prefix, not a pattern
-gb_MKTEMP := /usr/bin/mktemp -t gbuild.
+gb_MKTEMP ?= /usr/bin/mktemp -t gbuild.
gb_CC := cc
gb_CXX := g++
@@ -227,7 +227,7 @@ endef
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
-gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
ifeq ($(gb_SYMBOL),$(true))
gb_LinkTarget_CFLAGS += -g
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 9095d609f8e4..449a5f1d7e9b 100755..100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -101,6 +101,8 @@ gb_LinkTarget_LDFLAGS := \
-temp=/tmp \
-w \
-mt \
+ -Bdirect \
+ -z defs \
-z combreloc \
-norunpath \
-PIC \
@@ -244,12 +246,21 @@ gb_Library_OOOEXT := ss$(gb_Library_PLAINEXT)
gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
endif
+gb_STDLIBS := \
+ Crun \
+ m \
+ c \
+
gb_Library_PLAINLIBS_NONE += \
+ $(gb_STDLIBS) \
dl \
+ freetype \
jpeg \
- m \
pthread \
X11 \
+ Xext \
+ SM \
+ ICE \
z
gb_Library_FILENAMES := \
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
index f9182c8f30ee..d23bdbc602d8 100755..100644
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -37,6 +37,7 @@ gb_CXX := cl
gb_LINK := link
gb_AWK := awk
gb_CLASSPATHSEP := ;
+gb_RC := rc
# use CC/CXX if they are nondefaults
ifneq ($(origin CC),default)
@@ -68,6 +69,13 @@ gb_COMPILERDEFS := \
gb_CPUDEFS := -DINTEL -D_X86_=1
+gb_RCDEFS := \
+ -DWINVER=0x0400 \
+ -DWIN32 \
+
+gb_RCFLAGS := \
+ -V
+
gb_CFLAGS := \
-Gd \
-GR \
@@ -288,7 +296,7 @@ endef
# PrecompiledHeader class
gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_PrecompiledHeader_get_target,$(1))
+ -Fp$(call gb_PrecompiledHeader_get_target,$(1))
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
@@ -307,7 +315,7 @@ endef
# NoexPrecompiledHeader class
gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
+ -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
@@ -323,7 +331,6 @@ $(call gb_Helper_abbreviate_dirs_native,\
-Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_NoexPrecompiledHeader,$(2)),$(realpath $(3)))
endef
-
# LinkTarget class
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
@@ -347,7 +354,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),$(shell cat $(extraobjectlist))) \
- $(PCHOBJS))) && \
+ $(PCHOBJS) $(NATIVERES))) && \
$(gb_LINK) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
@@ -373,8 +380,11 @@ gb_Library_PLAINEXT := .lib
gb_Library_PLAINLIBS_NONE += \
advapi32 \
gdi32 \
+ gdiplus \
gnu_getopt \
+ imm32\
kernel32 \
+ msimg32 \
msvcrt \
msvcprt \
mpr \
@@ -386,6 +396,7 @@ gb_Library_PLAINLIBS_NONE += \
user32 \
uuid \
uwinapi \
+ winspool \
z \
gb_Library_LAYER := \
@@ -450,6 +461,26 @@ $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_g
endef
+define gb_Library_add_default_nativeres
+$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2))
+$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo)
+$(call gb_WinResTarget_set_defs,$(1)/$(2),\
+ $$(DEFS) \
+ -DADDITIONAL_VERINFO1 \
+ -DADDITIONAL_VERINFO2 \
+ -DADDITIONAL_VERINFO3 \
+)
+$(call gb_Library_add_nativeres,$(1),$(2))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2))
+
+endef
+
+define gb_Library_add_nativeres
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2))
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2))
+
+endef
+
define gb_Library_get_dllname
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
endef
@@ -610,6 +641,45 @@ else
gb_SrsPartTarget__command_dep =
endif
+# WinResTarget class
+
+gb_WinResTarget_POSTFIX :=.res
+
+define gb_WinResTarget__command
+$(call gb_Output_announce,$(2),$(true),RES,3)
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_RC) \
+ $(DEFS) $(FLAGS) \
+ -I$(dir $(3)) \
+ $(INCLUDE) \
+ -Fo$(1) \
+ $(RCFILE) )
+endef
+
+$(eval $(call gb_Helper_make_dep_targets,\
+ WinResTarget \
+))
+
+ifeq ($(gb_FULLDEPS),$(true))
+define gb_WinResTarget__command_dep
+$(call gb_Helper_abbreviate_dirs_native,\
+ $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(INCLUDE) \
+ $(DEFS) \
+ $(2) \
+ -f - \
+ | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
+ -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \
+ -v OUTDIR=$(OUTDIR)/ \
+ -v WORKDIR=$(WORKDIR)/ \
+ -v SRCDIR=$(SRCDIR)/ \
+ -v REPODIR=$(REPODIR)/ \
+ > $(call gb_WinResTarget_get_dep_target,$(1)))
+endef
+else
+gb_WinResTarget__command_dep =
+endif
# ComponentTarget
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
index 4b223b45af97..70a053471b6b 100644
--- a/solenv/gbuild/platform/winmingw.mk
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -98,6 +98,13 @@ gb_CPUDEFS := \
-DINTEL \
-D_M_IX86 \
+gb_RCDEFS := \
+ -DWINVER=0x0400 \
+ -DWIN32 \
+
+gb_RCFLAGS := \
+ -V
+
gb_CFLAGS := \
-Wall \
-Wendif-labels \
@@ -535,6 +542,26 @@ $(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3))
endef
+define gb_Library_add_default_nativeres
+$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2))
+$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo)
+$(call gb_WinResTarget_set_defs,$(1)/$(2),\
+ $$(DEFS) \
+ -DADDITIONAL_VERINFO1 \
+ -DADDITIONAL_VERINFO2 \
+ -DADDITIONAL_VERINFO3 \
+)
+$(call gb_Library_add_nativeres,$(1),$(2))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2))
+
+endef
+
+define gb_Library_add_nativeres
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2))
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2))
+
+endef
+
define gb_Library_get_dllname
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
endef
@@ -613,6 +640,48 @@ else
gb_SrsPartTarget__command_dep =
endif
+# WinResTarget class
+
+gb_WinResTarget_POSTFIX :=_res.o
+
+define gb_WinResTarget__command
+$(call gb_Output_announce,$(2),$(true),RES,3)
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_RC) \
+ $(DEFS) $(FLAGS) \
+ -I$(dir $(3)) \
+ $(INCLUDE) \
+ -Fo$(patsubst %_res.o,%.res,$(1)) \
+ $(RCFILE) )
+ windres $(patsubst %_res.o,%.res,$(1)) $(1)
+ rm $(patsubst %_res.o,%.res,$(1))
+endef
+
+$(eval $(call gb_Helper_make_dep_targets,\
+ WinResTarget \
+))
+
+ifeq ($(gb_FULLDEPS),$(true))
+define gb_WinResTarget__command_dep
+$(call gb_Helper_abbreviate_dirs_native,\
+ $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(INCLUDE) \
+ $(DEFS) \
+ $(2) \
+ -f - \
+ | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
+ -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \
+ -v OUTDIR=$(OUTDIR)/ \
+ -v WORKDIR=$(WORKDIR)/ \
+ -v SRCDIR=$(SRCDIR)/ \
+ -v REPODIR=$(REPODIR)/ \
+ > $(call gb_WinResTarget_get_dep_target,$(1)))
+endef
+else
+gb_WinResTarget__command_dep =
+endif
+
# ComponentTarget
gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk
index 18680e77ce38..f4e485380ae1 100644
--- a/solenv/inc/langlist.mk
+++ b/solenv/inc/langlist.mk
@@ -150,6 +150,7 @@ tlh \
th \
tn \
tr \
+tk \
ts \
tg \
ug \
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index 6d45a96930c9..cbfc3b99eff7 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m103(Build:2)
+RSCREVISION=300m106(Build:2)
BUILD=2
-LAST_MINOR=m103
+LAST_MINOR=m106
SOURCEVERSION=DEV300