@@ -17,19 +17,27 @@ UPSTREAM_CHECK_URI = "https://github.com/ip7z/7zip/releases/latest"
S = "${WORKDIR}/git"
# Support Yocto cross compiling
+CXXFLAGS:append:toolchain-clang = " -Wno-error=cast-qual -Wno-error=sign-conversion \
+ -Wno-error=disabled-macro-expansion \
+ -Wno-error=cast-function-type-strict"
+
EXTRA_OEMAKE += " \
CXXFLAGS_EXTRA='${CXXFLAGS}' \
CFLAGS_BASE2='${CFLAGS}' \
LDFLAGS_STATIC_3='${LDFLAGS}' \
"
+# Support clang
+MAKEFILE ?= "../../cmpl_gcc.mak"
+MAKEFILE:class-target:toolchain-clang = "../../cmpl_clang.mak"
+
do_compile() {
- oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
- oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
- oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
- oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
- oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
- oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone2 -f ${MAKEFILE}
+ oe_runmake -C CPP/7zip/Bundles/Format7zF -f ${MAKEFILE}
+ oe_runmake -C CPP/7zip/UI/Console -f ${MAKEFILE}
+ oe_runmake -C CPP/7zip/Bundles/SFXCon -f ${MAKEFILE}
+ oe_runmake -C CPP/7zip/Bundles/Alone -f ${MAKEFILE}
+ oe_runmake -C CPP/7zip/Bundles/Alone7z -f ${MAKEFILE}
}
FILES:${PN} += "${libdir}/*"
@@ -37,15 +45,18 @@ FILES:${PN} += "${libdir}/*"
FILES_SOLIBSDEV = ""
INSANE_SKIP:${PN} += "dev-so"
+INSTALLDIR ?= "g"
+INSTALLDIR:class-target:toolchain-clang = "c"
+
do_install() {
install -d ${D}${bindir}
- install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
- install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
- install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}/7z.real
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/${INSTALLDIR}/7za ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/${INSTALLDIR}/7zr ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/UI/Console/b/${INSTALLDIR}/7z ${D}${bindir}/7z.real
install -m 0755 ${UNPACKDIR}/7z_wrapper.sh ${D}${bindir}/7z
install -d ${D}${libdir}
- install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
+ install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/${INSTALLDIR}/7z.so ${D}${libdir}/lib7z.so
ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
}
@@ -21,8 +21,6 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
CPP/7zip/var_gcc.mak | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
-diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
-index bcb06a0..297f0a8 100644
--- a/CPP/7zip/7zip_gcc.mak
+++ b/CPP/7zip/7zip_gcc.mak
@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
@@ -30,12 +28,10 @@ index bcb06a0..297f0a8 100644
CFLAGS_DEBUG = -DNDEBUG
ifneq ($(CC), $(CROSS_COMPILE)clang)
-LFLAGS_STRIP = -s
-+LFLAGS_STRIP =
++LFLAGS_STRIP =
endif
endif
-diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
-index 664491c..6d0f485 100644
--- a/CPP/7zip/var_gcc.mak
+++ b/CPP/7zip/var_gcc.mak
@@ -6,7 +6,5 @@ IS_ARM64=
@@ -46,6 +42,12 @@ index 664491c..6d0f485 100644
-CXX=$(CROSS_COMPILE)g++
# -march=armv8-a+crc+crypto
-2.34.1
-
+--- a/CPP/7zip/var_clang.mak
++++ b/CPP/7zip/var_clang.mak
+@@ -6,6 +6,4 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)clang
+-CXX=$(CROSS_COMPILE)clang++
+ USE_CLANG=1
Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta-oe/recipes-extended/7zip/7zip_24.09.bb | 31 +++++++++++++------ .../0001-support-yocto-cross-compiling.patch | 18 ++++++----- 2 files changed, 31 insertions(+), 18 deletions(-)