summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2011-03-29 16:29:12 +0200
committerIvo Hinkelmann <ihi@openoffice.org>2011-03-29 16:29:12 +0200
commit2c421503b9540e4d50ae3ad848e9ba104c3cb376 (patch)
treef9ade4e356396be950b0aa03740964fc44d3617e /solenv
parent0753870ef92abba2c996d2825e73ce6e349bd1bd (diff)
parentc121bdfc1f11f41a76c1d04fa28075b2315633e4 (diff)
CWS-TOOLING: integrate CWS vcl2gnumake
Diffstat (limited to 'solenv')
-rw-r--r--solenv/config/sdev300.ini18
-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.mk4
-rw-r--r--solenv/gbuild/platform/macosx.mk2
-rw-r--r--[-rwxr-xr-x]solenv/gbuild/platform/solaris.mk4
-rw-r--r--solenv/gbuild/platform/windows.mk82
-rw-r--r--solenv/gbuild/platform/winmingw.mk69
11 files changed, 245 insertions, 9 deletions
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
index befa1c6c891f..fbef30a0f604 100644
--- a/solenv/config/sdev300.ini
+++ b/solenv/config/sdev300.ini
@@ -643,6 +643,7 @@ unxlngi6
SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig
+ KDE_ROOT /so/env/kde/linux/kde-3.2.2
}
common2
{
@@ -666,7 +667,6 @@ unxlngi6
JDK13PATH %SOLAR_JDK13PATH%
JDK14PATH %SOLAR_JDK14PATH%
JDK15PATH %SOLAR_JDK15PATH%
- KDE_ROOT /so/env/kde/linux/kde-3.2.2
LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngi6
NO_BSYMBOLIC True
OJDK16PATH %SOLAR_OJDK16PATH%
@@ -678,6 +678,10 @@ unxlngi6
SYSBASE %SOLAR_SYSBASE_ROOT%
TEMP /tmp
TMP /tmp
+ GTK_CFLAGS -I%SOLAR_SYSBASE_ROOT%/usr/include/gtk-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_SYSBASE_ROOT%/usr/include/atk-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/cairo -I%SOLAR_SYSBASE_ROOT%/usr/include/pango-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/glib-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/glib-2.0/include
+ GTK_LIBS -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0
+ KDE_CFLAGS -I%KDE_ROOT%/include -DQT_CLEAN_NAMESPACE
+ KDE_LIBS -L%KDE_ROOT%/lib -lkdeui -lkdecore -lqt-mt
}
common3:0 IF X%UPDATER%X == XX
{
@@ -926,6 +930,7 @@ unxlngx6
USE_SYSTEM_STL YES
XAU_LIBS -lXau
PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig
+ KDE_ROOT /so/env/kde/linux-x64/kde-3.5.10
}
common2
{
@@ -949,7 +954,6 @@ unxlngx6
INPATH unxlngx6%PROEXT%
JDK14PATH %SOLAR_JDK14PATH%
JDK15PATH %SOLAR_JDK15PATH%
- KDE_ROOT /so/env/kde/linux-x64/kde-3.5.10
LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngx6
NO_BSYMBOLIC True
OJDK16PATH %SOLAR_OJDK16PATH%
@@ -963,6 +967,10 @@ unxlngx6
SYSBASE %SOLAR_SYSBASE_ROOT%
TEMP /tmp
TMP /tmp
+ GTK_CFLAGS -I%SOLAR_SYSBASE_ROOT%/usr/include/gtk-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_SYSBASE_ROOT%/usr/include/atk-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/cairo -I%SOLAR_SYSBASE_ROOT%/usr/include/pango-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/glib-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/glib-2.0/include
+ GTK_LIBS -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0
+ KDE_CFLAGS -I%KDE_ROOT%/include -DQT_CLEAN_NAMESPACE
+ KDE_LIBS -L%KDE_ROOT%/lib -lkdeui -lkdecore -lqt-mt
}
common3:0 IF X%UPDATER%X == XX
{
@@ -1480,6 +1488,7 @@ unxsoli4
SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-i586
SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ SOLAR_GTK_ROOT /so/env/gnome/solaris_intel/cinnabar_b15
}
common2
{
@@ -1509,6 +1518,8 @@ unxsoli4
SYSBASE %SOLAR_SYSBASE_ROOT%
TEMP /var/tmp
TMP /var/tmp
+ GTK_CFLAGS -I%SOLAR_GTK_ROOT%/usr/include/gtk-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_GTK_ROOT%/usr/include/atk-1.0 -I%SOLAR_GTK_ROOT%/usr/include/pango-1.0 -I/usr/openwin/include -I%SOLAR_GTK_ROOT%/usr/sfw/include -I%SOLAR_GTK_ROOT%/usr/sfw/include/freetype2 -I%SOLAR_GTK_ROOT%/usr/include/glib-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/glib-2.0/include
+ GTK_LIBS -L%SOLAR_GTK_ROOT%/usr/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0
}
compath
{
@@ -1745,6 +1756,7 @@ unxsols4
SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-sparc
SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ SOLAR_GTK_ROOT /so/env/gnome/solaris_sparc/cinnabar_b15
}
common2
{
@@ -1775,6 +1787,8 @@ unxsols4
SYSBASE %SOLAR_SYSBASE_ROOT%
TEMP /var/tmp
TMP /var/tmp
+ GTK_CFLAGS -I%SOLAR_GTK_ROOT%/usr/include/gtk-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_GTK_ROOT%/usr/include/atk-1.0 -I%SOLAR_GTK_ROOT%/usr/include/pango-1.0 -I/usr/openwin/include -I%SOLAR_GTK_ROOT%/usr/sfw/include -I%SOLAR_GTK_ROOT%/usr/sfw/include/freetype2 -I%SOLAR_GTK_ROOT%/usr/include/glib-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/glib-2.0/include
+ GTK_LIBS -L%SOLAR_GTK_ROOT%/usr/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0
}
common:3 IF %UPDATER% == YES
{
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index d697b1a777ca..0ce56ce41ea2 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -61,6 +61,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 8c55367fac84..cdde6ab3dbaf 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -362,6 +362,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCH_NAME :=
$(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)) : 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 aba209c29136..60e53ec10e15 100644..100755
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -81,6 +81,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)))
@@ -105,6 +106,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..17c7500769f9
--- /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 6d22074dc8e6..c370ca57ce81 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -221,6 +221,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 757ae52c1b52..0a239360d724 100755..100644
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
@@ -277,10 +277,14 @@ endif
gb_Library_PLAINLIBS_NONE += \
dl \
+ freetype \
jpeg \
m \
pthread \
X11 \
+ Xext \
+ SM \
+ ICE \
z
gb_Library_FILENAMES := \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 203ace96b15c..0611d2088e15 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -225,7 +225,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_DEBUGLEVEL),2)
gb_LinkTarget_CFLAGS += -g
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 6f29a9745f0d..f39f3e559385 100755..100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -250,10 +250,14 @@ endif
gb_Library_PLAINLIBS_NONE += \
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 5c5b2a060070..97e778d7ae9c 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)
@@ -67,6 +68,13 @@ gb_COMPILERDEFS := \
gb_CPUDEFS := -DINTEL -D_X86_=1
+gb_RCDEFS := \
+ -DWINVER=0x0400 \
+ -DWIN32 \
+
+gb_RCFLAGS := \
+ -V
+
gb_CFLAGS := \
-Gd \
-GR \
@@ -180,7 +188,7 @@ gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS)
gb_LinkTarget_NOEXCEPTIONFLAGS := \
-DEXCEPTIONS_OFF \
-
+
gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS)
gb_LinkTarget_LDFLAGS := \
@@ -285,11 +293,11 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(3) \
-f - \
| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
+ -v OBJECTFILE=$(1) \
+ -v OUTDIR=$(OUTDIR)/ \
-v WORKDIR=$(WORKDIR)/ \
-v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
+ -v REPODIR=$(REPODIR)/ \
> $(call gb_CxxObject_get_dep_target,$(2)))
endef
else
@@ -394,7 +402,6 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
endef
-
# LinkTarget class
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
@@ -417,7 +424,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
- $(PCHOBJS))) && \
+ $(PCHOBJS) $(NATIVERES))) && \
$(gb_LINK) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
@@ -443,8 +450,11 @@ gb_Library_PLAINEXT := .lib
gb_Library_PLAINLIBS_NONE += \
advapi32 \
gdi32 \
+ gdiplus \
gnu_getopt \
+ imm32\
kernel32 \
+ msimg32 \
msvcrt \
mpr \
oldnames \
@@ -455,6 +465,7 @@ gb_Library_PLAINLIBS_NONE += \
user32 \
uuid \
uwinapi \
+ winspool \
z \
gb_Library_LAYER := \
@@ -526,6 +537,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
@@ -679,6 +710,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 e03f37a68d2b..49c36c14bc1b 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 \
@@ -534,6 +541,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
@@ -612,6 +639,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"