summaryrefslogtreecommitdiffstats
path: root/package/unzip/0001-Add-a-CMakeFile.txt-to-ease-cross-compilation.patch
blob: cbc58e484b92ac69ded6284d68ccd3e28f59c9ff (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
From 992a497e9c5c421d3931e02a01e9d7c159f27135 Mon Sep 17 00:00:00 2001
From: Luca Ceresoli <luca@lucaceresoli.net>
Date: Thu, 26 Nov 2015 12:49:10 +0100
Subject: [PATCH] Add a CMakeFile.txt to ease cross-compilation

Info-ZIP's UnZip 6.0 has a complex, hand-crafted Makefile with a
companion configure script which try to support an extremely wide
range of UNIX-like operating systems. The result is an overly complex
mass of code that does not support cross-compilation in several ways.

Zip 3.0 has a similar build system, and has as many as 6 patches in
Buildroot to cross-compile [0]. UnZip fails at building even with
these patches adapted and a few more on top of them.

Instead of tweaking and fixing a huge and complex build system, skip
it entirely and add a pretty simple CMakeLists.txt that cross-compiles
smoothly using CMake. It also preserves all of the Buildroot-provided
build options and flags as the original Makefile does.

[0] http://git.buildroot.net/buildroot/tree/package/infozip?id=2015.11-rc3

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
---
 CMakeLists.txt | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..27951b4
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 2.8)
+INCLUDE(CheckFunctionExists)
+
+project(unzip C)
+
+CHECK_FUNCTION_EXISTS(lchmod HAVE_LCHMOD)
+if(NOT HAVE_LCHMOD)
+add_definitions("-DNO_LCHMOD")
+endif()
+
+set(UNZIP_SOURCES unzip.c crc32.c crypt.c envargs.c explode.c
+  extract.c fileio.c globals.c inflate.c list.c match.c process.c
+  ttyio.c ubz2err.c unreduce.c unshrink.c zipinfo.c unix/unix.c)
+
+include_directories(.)
+add_executable(unzip ${UNZIP_SOURCES})
+install(TARGETS unzip DESTINATION bin)
-- 
1.9.1

OpenPOWER on IntegriCloud