vcl2gnumake: #i116588# add: windows native resource files (thanks hjs !)
This commit is contained in:
parent
121d025d6a
commit
5ebffff3fa
6 changed files with 134 additions and 6 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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))),)
|
||||
|
|
2
solenv/gbuild/TargetLocations.mk
Normal file → Executable file
2
solenv/gbuild/TargetLocations.mk
Normal file → Executable file
|
@ -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 \
|
||||
|
|
|
@ -221,6 +221,7 @@ $(eval $(call gb_Deliver_init))
|
|||
include $(foreach class, \
|
||||
ComponentTarget \
|
||||
AllLangResTarget \
|
||||
WinResTarget \
|
||||
LinkTarget \
|
||||
Library \
|
||||
StaticLibrary \
|
||||
|
|
|
@ -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 := \
|
||||
|
@ -274,11 +282,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
|
||||
|
@ -383,7 +391,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)
|
||||
|
@ -406,7 +413,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
|
|||
echo "$(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)" > $${RESPONSEFILE} && \
|
||||
$(PCHOBJS) $(NATIVERES)" > $${RESPONSEFILE} && \
|
||||
$(gb_LINK) \
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
|
||||
|
@ -519,6 +526,20 @@ $(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/gbuild/shlinfo)
|
||||
$(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
|
||||
|
@ -672,6 +693,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
|
||||
|
||||
|
|
|
@ -96,6 +96,13 @@ gb_CPUDEFS := \
|
|||
-DINTEL \
|
||||
-D_M_IX86 \
|
||||
|
||||
gb_RCDEFS := \
|
||||
-DWINVER=0x0400 \
|
||||
-DWIN32 \
|
||||
|
||||
gb_RCFLAGS := \
|
||||
-V
|
||||
|
||||
gb_CFLAGS := \
|
||||
-Wall \
|
||||
-Wendif-labels \
|
||||
|
@ -521,6 +528,20 @@ $(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/gbuild/shlinfo)
|
||||
$(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
|
||||
|
@ -599,6 +620,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"
|
||||
|
|
Loading…
Reference in a new issue