kconfig: qconf: compile moc object separately
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 29 Jul 2020 17:02:38 +0000 (02:02 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Sat, 1 Aug 2020 11:54:39 +0000 (20:54 +0900)
Currently, qconf.moc is included from qconf.cc but they can be compiled
independently.

When you modify qconf.cc, qconf.moc does not need recompiling.

Rename qconf.moc to qconf-moc.cc, and split it out as an independent
compilation unit.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/kconfig/.gitignore
scripts/kconfig/Makefile
scripts/kconfig/qconf.cc

index 12a67fdab541dc90f5a2f721d7b811c8e6c9f2b7..c3d537cd027541ec3d5e079e47d56afebe969931 100644 (file)
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-*.moc
+/qconf-moc.cc
 *conf-cfg
 
 #
index a5e770e75653579605924f34439acd36997f4a57..52b59bf9efe41314cf2060ab2111e88c3447a61d 100644 (file)
@@ -181,21 +181,22 @@ $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
 
 # qconf: Used for the xconfig target based on Qt
 hostprogs      += qconf
-qconf-cxxobjs  := qconf.o
+qconf-cxxobjs  := qconf.o qconf-moc.o
 qconf-objs     := images.o $(common-objs)
 
 HOSTLDLIBS_qconf       = $(shell . $(obj)/qconf-cfg && echo $$libs)
 HOSTCXXFLAGS_qconf.o   = $(shell . $(obj)/qconf-cfg && echo $$cflags)
+HOSTCXXFLAGS_qconf-moc.o = $(shell . $(obj)/qconf-cfg && echo $$cflags)
 
-$(obj)/qconf.o: $(obj)/qconf-cfg $(obj)/qconf.moc
+$(obj)/qconf.o: $(obj)/qconf-cfg
 
 quiet_cmd_moc = MOC     $@
-      cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) -i $< -o $@
+      cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) $< -o $@
 
-$(obj)/%.moc: $(src)/%.h $(obj)/qconf-cfg FORCE
+$(obj)/qconf-moc.cc: $(src)/qconf.h $(obj)/qconf-cfg FORCE
        $(call if_changed,moc)
 
-targets += qconf.moc
+targets += qconf-moc.cc
 
 # gconf: Used for the gconfig target based on GTK+
 hostprogs      += gconf
index 4a616128a15484c6f9359cdd9ba35901dfebb41a..bb0a0bd511b9b9023248213d8c3be5e2c459a855 100644 (file)
@@ -23,7 +23,6 @@
 #include "lkc.h"
 #include "qconf.h"
 
-#include "qconf.moc"
 #include "images.h"