blob: 74e44c44e33dede3f1fdfd95fbf4976a73cb71e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
file://DOC/License.txt;md5=44483e232b64ffca25fe001f3d6418d0"
CVE_PRODUCT = "7-zip 7zip"
SRC_URI = "git://github.com/ip7z/7zip.git;protocol=https;branch=main \
file://0001-support-yocto-cross-compiling.patch \
file://7z_wrapper.sh \
"
SRCREV = "e5431fa6f5505e385c6f9367260717e9c47dc2ee"
UPSTREAM_CHECK_URI = "https://github.com/ip7z/7zip/releases/latest"
# Support Yocto cross compiling
CXXFLAGS:append:toolchain-clang = " -Wno-error=cast-qual -Wno-error=sign-conversion \
-Wno-error=disabled-macro-expansion \
-Wno-error=shorten-64-to-32 \
-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 ${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}/*"
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/${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/${INSTALLDIR}/7z.so ${D}${libdir}/lib7z.so
ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
# install headers (for development) and readme (for version information)
for header_file in $(find ${S}/CPP/${BPN} ${S}/CPP/Common ${S}/C -name "*.h"); do
header_dir=$(dirname $(echo $header_file | sed "s|${S}/||"))
install -d ${D}${includedir}/${BPN}/$header_dir
install -m 0644 $header_file ${D}${includedir}/${BPN}/$header_dir
done
install -d ${D}${includedir}/${BPN}/DOC
install -m 0644 ${S}/DOC/readme.txt ${D}${includedir}/${BPN}/DOC
}
PROVIDES += "p7zip"
RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
BBCLASSEXTEND = "native nativesdk"
|