summaryrefslogtreecommitdiffstats
path: root/solenv
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-12-11 08:36:07 +0100
committerLuboš Luňák <l.lunak@suse.cz>2012-12-11 08:41:05 +0100
commit64c3dbc331fafa20fdbd4cfb4f8f46598c24624d (patch)
tree6530dc0070e427bf9a525856c7f23d89d8cf4f42 /solenv
parentmake PCH depend on LinkTarget/headers (diff)
downloadcore-64c3dbc331fafa20fdbd4cfb4f8f46598c24624d.tar.gz
core-64c3dbc331fafa20fdbd4cfb4f8f46598c24624d.zip
include PCHOBJS in target's objectlist
Otherwise gb_CppunitTest_use_library_objects won't work with MSVC.
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/LinkTarget.mk7
-rw-r--r--solenv/gbuild/platform/com_GCC_class.mk5
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk5
3 files changed, 14 insertions, 3 deletions
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index f5a1ec6313d3..9fd989870f75 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -432,7 +432,8 @@ TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
$(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \
- $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object)))) && \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(PCHOBJS)) && \
$(if $(EXTRAOBJECTLISTS),cat $(EXTRAOBJECTLISTS) >> $${TEMPFILE} && ) \
mv $${TEMPFILE} $(call gb_LinkTarget_get_objects_list,$(2))
@@ -1206,8 +1207,8 @@ $(call gb_PrecompiledHeader_get_target,$(3)) : $(call gb_LinkTarget_get_headers_
$(call gb_NoexPrecompiledHeader_get_target,$(3)) : $(call gb_LinkTarget_get_headers_target,$(1))
$(call gb_LinkTarget_get_target,$(1)) : PCH_NAME := $(3)
-$(call gb_LinkTarget_get_target,$(1)) : PCHOBJEX = $(call gb_PrecompiledHeader_get_target,$(3)).obj
-$(call gb_LinkTarget_get_target,$(1)) : PCHOBJNOEX = $(call gb_NoexPrecompiledHeader_get_target,$(3)).obj
+$(call gb_LinkTarget_get_target,$(1)) : PCHOBJEX = $(call gb_PrecompiledHeader_get_objectfile, $(call gb_PrecompiledHeader_get_target,$(3)))
+$(call gb_LinkTarget_get_target,$(1)) : PCHOBJNOEX = $(call gb_NoexPrecompiledHeader_get_objectfile, $(call gb_NoexPrecompiledHeader_get_target,$(3)))
$(call gb_LinkTarget_get_target,$(1)) : PCHOBJS = $$(PCHOBJEX)
$(call gb_LinkTarget_get_headers_target,$(1)) \
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk
index 4835802b436a..b3b5830346d2 100644
--- a/solenv/gbuild/platform/com_GCC_class.mk
+++ b/solenv/gbuild/platform/com_GCC_class.mk
@@ -148,6 +148,9 @@ ifeq ($(COM_GCC_IS_CLANG),TRUE)
gb_PrecompiledHeader_get_enableflags = -include-pch $(call gb_PrecompiledHeader_get_target,$(1))
+# Clang does not need any extra .o file for PCH
+gb_PrecompiledHeader_get_objectfile =
+
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs,\
@@ -169,6 +172,8 @@ endef
gb_NoexPrecompiledHeader_get_enableflags = -include-pch $(call gb_NoexPrecompiledHeader_get_target,$(1))
+gb_NoexPrecompiledHeader_get_objectfile =
+
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs,\
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 2d4d19e048d7..7814137b748a 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -101,6 +101,9 @@ gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
-Fp$(call gb_PrecompiledHeader_get_target,$(1)) \
$(gb_PCHWARNINGS)
+# MSVC PCH needs extra .obj created during the creation of the PCH file
+gb_PrecompiledHeader_get_objectfile = $(1).obj
+
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs,\
@@ -122,6 +125,8 @@ gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
-Fp$(call gb_NoexPrecompiledHeader_get_target,$(1)) \
$(gb_PCHWARNINGS)
+gb_NoexPrecompiledHeader_get_objectfile = $(1).obj
+
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs,\