| 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 |
| |