diff mbox

[2/2] qt5base: use ccache if enabled

Message ID 1384436438-2119-2-git-send-email-fatih.asici@gmail.com
State Superseded
Headers show

Commit Message

Fatih Aşıcı Nov. 14, 2013, 1:40 p.m. UTC
For now, it doesn't use ccache when compiling host tools (e.g. qmake).
It seems the fix is not trivial.

Signed-off-by: Fatih Aşıcı <fatih.asici@gmail.com>
---
 package/qt5/qt5base/qt5base-0002-mkspecs-files.patch | 6 +++++-
 package/qt5/qt5base/qt5base.mk                       | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

Comments

Peter Korsgaard Nov. 28, 2013, 10:11 p.m. UTC | #1
>>>>> "Fatih" == Fatih Aşıcı <fatih.asici@gmail.com> writes:

 > For now, it doesn't use ccache when compiling host tools (e.g. qmake).
 > It seems the fix is not trivial.

 > Signed-off-by: Fatih Aşıcı <fatih.asici@gmail.com>
 > ---
 >  package/qt5/qt5base/qt5base-0002-mkspecs-files.patch | 6 +++++-
 >  package/qt5/qt5base/qt5base.mk                       | 1 +
 >  2 files changed, 6 insertions(+), 1 deletion(-)

 > diff --git a/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch b/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
 > index 3fddeac..6fa8a92 100644
 > --- a/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
 > +++ b/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
 > @@ -14,9 +14,13 @@ Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf
 >  ===================================================================
 >  --- /dev/null
 >  +++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
 > -@@ -0,0 +1,11 @@
 > +@@ -0,0 +1,15 @@
 >  +include(../common/linux_device_pre.conf)
 >  +
 > ++# modifications to g++.conf
 > ++QMAKE_CC                = $${BUILDROOT_CCACHE} $${QMAKE_CC}
 > ++QMAKE_CXX               = $${BUILDROOT_CCACHE} $${QMAKE_CXX}
 > ++
 >  +#modifications to gcc-base.conf
 >  +QMAKE_CFLAGS           += $${BUILDROOT_COMPILER_CFLAGS}
 >  +QMAKE_CXXFLAGS         += $${BUILDROOT_COMPILER_CXXFLAGS}
 > diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
 > index febdc9b..a1d5dba 100644
 > --- a/package/qt5/qt5base/qt5base.mk
 > +++ b/package/qt5/qt5base/qt5base.mk
 > @@ -168,6 +168,7 @@ define QT5BASE_CONFIGURE_CMDS
 >  		-nomake examples -nomake tests \
 >  		-device buildroot \
 >  		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
 > +		-device-option BUILDROOT_CCACHE="$(CCACHE)" \

Can't we just pass it in CROSS_COMPILE?
Fatih Aşıcı Nov. 29, 2013, 7:10 a.m. UTC | #2
On Friday 29 November 2013 00:11:35 Peter Korsgaard wrote:
>  >  --- /dev/null
>  >  +++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
>  > 
>  > -@@ -0,0 +1,11 @@
>  > +@@ -0,0 +1,15 @@
>  > 
>  >  +include(../common/linux_device_pre.conf)
>  >  +
>  > 
>  > ++# modifications to g++.conf
>  > ++QMAKE_CC                = $${BUILDROOT_CCACHE} $${QMAKE_CC}
>  > ++QMAKE_CXX               = $${BUILDROOT_CCACHE} $${QMAKE_CXX}
>  > ++
>  > 
>  >  +#modifications to gcc-base.conf
>  >  +QMAKE_CFLAGS           += $${BUILDROOT_COMPILER_CFLAGS}
>  >  +QMAKE_CXXFLAGS         += $${BUILDROOT_COMPILER_CXXFLAGS}
>  > 
>  > diff --git a/package/qt5/qt5base/qt5base.mk
>  > b/package/qt5/qt5base/qt5base.mk index febdc9b..a1d5dba 100644
>  > --- a/package/qt5/qt5base/qt5base.mk
>  > +++ b/package/qt5/qt5base/qt5base.mk
>  > @@ -168,6 +168,7 @@ define QT5BASE_CONFIGURE_CMDS
>  > 
>  >  		-nomake examples -nomake tests \
>  >  		-device buildroot \
>  >  		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
>  > 
>  > +		-device-option BUILDROOT_CCACHE="$(CCACHE)" \
> 
> Can't we just pass it in CROSS_COMPILE?

No. linux_device_pre.conf uses CROSS_COMPILE for other tools, too (ar, 
objcopy, ...).

# modifications to g++-unix.conf
QMAKE_CC                = $${CROSS_COMPILE}gcc
QMAKE_CXX               = $${CROSS_COMPILE}g++
QMAKE_LINK              = $${QMAKE_CXX}
QMAKE_LINK_SHLIB        = $${QMAKE_CXX}

# modifications to linux.conf
QMAKE_AR                = $${CROSS_COMPILE}ar cqs
QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
QMAKE_NM                = $${CROSS_COMPILE}nm -P
QMAKE_STRIP             = $${CROSS_COMPILE}strip
Peter Korsgaard Nov. 29, 2013, 8:14 a.m. UTC | #3
>>>>> "Fatih" == Fatih Aşıcı <fatih.asici@gmail.com> writes:

Hi,

 >> > + -device-option BUILDROOT_CCACHE="$(CCACHE)" \

 >> Can't we just pass it in CROSS_COMPILE?

>> No. linux_device_pre.conf uses CROSS_COMPILE for other tools, too (ar, objcopy,

Yes, but ccache then just becomes a NOOP - E.G:

./output/host/usr/bin/ccache ./output/host/usr/bin/arm-linux-objdump -v
GNU objdump (GNU Binutils) 2.21.1
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.

We do the same for E.G. the Linux kernel and other packages using
CROSS_COMPILE:

git grep 'CCACHE.*TARGET_CROSS'
boot/barebox/barebox.mk:BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)"
boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk:              CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
boot/uboot/uboot.mk:    CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
linux/linux.mk: CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
package/freescale-imx/imx-lib/imx-lib.mk:       CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
package/libebml/libebml.mk:     $(MAKE) -C $(@D)/make/linux CROSS="$(CCACHE) $(TARGET_CROSS)"
package/libmatroska/libmatroska.mk:     $(MAKE) -C $(@D)/make/linux CROSS="$(CCACHE) $(TARGET_CROSS)"
Fatih Aşıcı Nov. 29, 2013, 8:26 a.m. UTC | #4
On Friday 29 November 2013 10:14:34 Peter Korsgaard wrote:
> >>>>> "Fatih" == Fatih Aşıcı <fatih.asici@gmail.com> writes:
> Hi,
> 
>  >> > + -device-option BUILDROOT_CCACHE="$(CCACHE)" \
>  >> 
>  >> Can't we just pass it in CROSS_COMPILE?
> >> 
> >> No. linux_device_pre.conf uses CROSS_COMPILE for other tools, too (ar,
> >> objcopy,
> 
> Yes, but ccache then just becomes a NOOP - E.G:

I did not know this. Will send a new patch if it works.
diff mbox

Patch

diff --git a/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch b/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
index 3fddeac..6fa8a92 100644
--- a/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
+++ b/package/qt5/qt5base/qt5base-0002-mkspecs-files.patch
@@ -14,9 +14,13 @@  Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf
 ===================================================================
 --- /dev/null
 +++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
-@@ -0,0 +1,11 @@
+@@ -0,0 +1,15 @@
 +include(../common/linux_device_pre.conf)
 +
++# modifications to g++.conf
++QMAKE_CC                = $${BUILDROOT_CCACHE} $${QMAKE_CC}
++QMAKE_CXX               = $${BUILDROOT_CCACHE} $${QMAKE_CXX}
++
 +#modifications to gcc-base.conf
 +QMAKE_CFLAGS           += $${BUILDROOT_COMPILER_CFLAGS}
 +QMAKE_CXXFLAGS         += $${BUILDROOT_COMPILER_CXXFLAGS}
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index febdc9b..a1d5dba 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -168,6 +168,7 @@  define QT5BASE_CONFIGURE_CMDS
 		-nomake examples -nomake tests \
 		-device buildroot \
 		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
+		-device-option BUILDROOT_CCACHE="$(CCACHE)" \
 		-device-option BUILDROOT_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
 		-device-option BUILDROOT_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
 		-device-option EGLFS_PLATFORM_HOOKS_SOURCES="$(QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES)" \