Kaydet (Commit) 9bb21aea authored tarafından Lubos Lunak's avatar Lubos Lunak

do not bother trying to keep PCH and non-PCH dependencies correct together

When compiling using a PCH, includes included using the PCH usually don't
show up in compiler dependencies output, so the only the PCH has a dependency
on the include, and the source has only a transitive dependency. Switching
to non-PCH (e.g. ENABLE_PCH= on cmdline) means the dependency is lost.
Trying with the PCH timestamp was a nice try, but it can sometimes still
miss something. So whoever wants to switch needs cleaning first or
just know what they're doing.
üst 47b17ca7
...@@ -877,7 +877,9 @@ $(call gb_CxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target ...@@ -877,7 +877,9 @@ $(call gb_CxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target
$(call gb_CxxObject_get_target,$(2)) : T_CXXFLAGS += $(3) $(call gb_CxxObject_get_target,$(2)) : T_CXXFLAGS += $(3)
$(call gb_CxxObject_get_target,$(2)) : \ $(call gb_CxxObject_get_target,$(2)) : \
OBJECTOWNER := $(call gb_Object__owner,$(2),$(1)) OBJECTOWNER := $(call gb_Object__owner,$(2),$(1))
ifeq ($(gb_ENABLE_PCH),$(true))
$(call gb_CxxObject_get_target,$(2)) : $(call gb_PrecompiledHeader_get_timestamp,$(1)) $(call gb_CxxObject_get_target,$(2)) : $(call gb_PrecompiledHeader_get_timestamp,$(1))
endif
ifeq ($(gb_FULLDEPS),$(true)) ifeq ($(gb_FULLDEPS),$(true))
$(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS += $(2)
...@@ -974,8 +976,9 @@ $(call gb_GenCxxObject_get_target,$(2)) : T_CXXFLAGS += $(3) ...@@ -974,8 +976,9 @@ $(call gb_GenCxxObject_get_target,$(2)) : T_CXXFLAGS += $(3)
$(call gb_GenCxxObject_get_target,$(2)) : \ $(call gb_GenCxxObject_get_target,$(2)) : \
OBJECTOWNER := $(call gb_Object__owner,$(2),$(1)) OBJECTOWNER := $(call gb_Object__owner,$(2),$(1))
$(call gb_GenCxxObject_get_target,$(2)) : GEN_CXX_SOURCE := $(call gb_GenCxxObject_get_source,$(2),$(1)) $(call gb_GenCxxObject_get_target,$(2)) : GEN_CXX_SOURCE := $(call gb_GenCxxObject_get_source,$(2),$(1))
ifeq ($(gb_ENABLE_PCH),$(true))
$(call gb_GenCxxObject_get_target,$(2)) : $(call gb_PrecompiledHeader_get_timestamp,$(1)) $(call gb_GenCxxObject_get_target,$(2)) : $(call gb_PrecompiledHeader_get_timestamp,$(1))
endif
ifeq ($(gb_FULLDEPS),$(true)) ifeq ($(gb_FULLDEPS),$(true))
$(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2)
...@@ -1020,9 +1023,11 @@ endef ...@@ -1020,9 +1023,11 @@ endef
define gb_LinkTarget_add_noexception_object define gb_LinkTarget_add_noexception_object
$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3))) $(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3)))
ifeq ($(gb_ENABLE_PCH),$(true))
# noexception objects are rare, so generate matching .pch only when needed # noexception objects are rare, so generate matching .pch only when needed
$(call gb_CxxObject_get_target,$(2)) : $(call gb_NoexPrecompiledHeader_get_timestamp,$(1)) $(call gb_CxxObject_get_target,$(2)) : $(call gb_NoexPrecompiledHeader_get_timestamp,$(1))
$(call gb_LinkTarget_get_target,$(1)) : PCHOBJS = $$(PCHOBJEX) $$(PCHOBJNOEX) $(call gb_LinkTarget_get_target,$(1)) : PCHOBJS = $$(PCHOBJEX) $$(PCHOBJNOEX)
endif
endef endef
define gb_LinkTarget_add_exception_object define gb_LinkTarget_add_exception_object
......
...@@ -69,7 +69,6 @@ INTERACTIVE VARIABLES: ...@@ -69,7 +69,6 @@ INTERACTIVE VARIABLES:
3... = degugging information + no optimizations + extra 3... = degugging information + no optimizations + extra
debug output (usually extremely verbose). Levels debug output (usually extremely verbose). Levels
> 2 are not used very much. > 2 are not used very much.
ENABLE_PCH If not empty, use precompiled headers.
TIMELOG / timelog TIMELOG / timelog
If not empty enable the RTL_LOGFILE_* time logging facility. If not empty enable the RTL_LOGFILE_* time logging facility.
export RTL_LOGFILE=rtl_logfile.nopid when running office, to export RTL_LOGFILE=rtl_logfile.nopid when running office, to
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment