summaryrefslogtreecommitdiff
path: root/solenv/gbuild/platform
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-19 00:08:31 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:32 +0200
commitf2899508b3bd55ecdbd45a02e0e8071b95906b3a (patch)
tree061ab2746bbebb6ffff3fd1ecf845292c860a0bc /solenv/gbuild/platform
parent4c51feb06e9ee9be25eca5ae58d07cd6c12bca63 (diff)
gbuild: remove executables from OUTDIR and WORKDIR
Call and link executables directly in INSTDIR. - gb_Library_get_target is now same as the gb_LinkTarget_get_target - disable gb_Library_add_auxtarget, no auxtargets need to be copied - adjust paths of all external executables to OUTDIR_FOR_BUILD for now - use lazy assignment instead of := in AllLangResTarget because it's read before Executable - link.exe generates an import library for lots of executables because they export symbols, especially since commit 0ffab9363d527d55b12b9b09d7136ca1c9d171e0 "force 'main' to always be DLLPUBLIC." Change-Id: I3e1ee7425dd430bb83c7cd59e265869a0541b38d
Diffstat (limited to 'solenv/gbuild/platform')
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk20
-rw-r--r--solenv/gbuild/platform/mingw.mk4
2 files changed, 14 insertions, 10 deletions
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 92c23910cde6..af84d3526158 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -370,15 +370,17 @@ gb_Executable_TARGETTYPEFLAGS := $(gb_Windows_PE_TARGETTYPEFLAGS)
gb_Executable_get_rpath :=
+# surprisingly some executables have exports so link.exe creates import lib
define gb_Executable_Executable_platform
+$(call gb_LinkTarget_set_ilibtarget,$(2),$(3))
+
$(call gb_LinkTarget_add_auxtargets,$(2),\
- $(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \
+ $(patsubst %.lib,%.exp,$(3)) \
+ $(call gb_LinkTarget_get_pdbfile2,$(2)).pdb \
$(call gb_LinkTarget_get_pdbfile,$(2)) \
+ $(call gb_LinkTarget_get_manifestfile,$(2)) \
)
-$(call gb_Executable_add_auxtarget,$(1),$(call gb_Executable_get_target,$(1)).manifest)
-$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest,$(1))
-
$(call gb_LinkTarget_get_target,$(2)) \
$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE := $(call gb_LinkTarget_get_pdbfile,$(2))
$(call gb_LinkTarget_get_target,$(2)) : TARGETGUI :=
@@ -444,10 +446,11 @@ gb_PythonTest_PRECOMMAND := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY
# SrsPartTarget class
ifeq ($(gb_FULLDEPS),$(true))
-gb_SrsPartTarget__command_target = $(OUTDIR)/bin/makedepend$(gb_Executable_EXT)
+# FIXME this is used before TargetLocations is read?
+gb_SrsPartTarget__command_target = $(WORKDIR)/LinkTarget/Executable/makedepend.exe
define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(call gb_Executable_get_target,makedepend) \
$(INCLUDE) \
$(DEFS) \
$(2) \
@@ -485,12 +488,13 @@ $(eval $(call gb_Helper_make_dep_targets,\
))
ifeq ($(gb_FULLDEPS),$(true))
-gb_WinResTarget__command_target = $(OUTDIR)/bin/makedepend$(gb_Executable_EXT)
+# FIXME this is used before TargetLocations is read?
+gb_WinResTarget__command_target = $(WORKDIR)/LinkTarget/Executable/makedepend.exe
define gb_WinResTarget__command_dep
$(call gb_Output_announce,RC:$(2),$(true),DEP,1)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(call gb_Executable_get_target,makedepend) \
$(INCLUDE) \
$(DEFS) \
$(RCFILE) \
diff --git a/solenv/gbuild/platform/mingw.mk b/solenv/gbuild/platform/mingw.mk
index ceb67679f006..e36343b51c23 100644
--- a/solenv/gbuild/platform/mingw.mk
+++ b/solenv/gbuild/platform/mingw.mk
@@ -321,12 +321,12 @@ $(eval $(call gb_Helper_make_dep_targets,\
))
ifeq ($(gb_FULLDEPS),$(true))
-gb_WinResTarget__command_target = $(OUTDIR_FOR_BUILD)/bin/makedepend
+gb_WinResTarget__command_target = $(gb_Executable_BINDIR_FOR_BUILD)/makedepend
define gb_WinResTarget__command_dep
$(call gb_Output_announce,RC:$(2),$(true),DEP,1)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(OUTDIR_FOR_BUILD)/bin/makedepend \
+ $(gb_Executable_BINDIR_FOR_BUILD)/makedepend \
$(INCLUDE) \
$(DEFS) \
$(RCFILE) \