summaryrefslogtreecommitdiff
path: root/extra/qhull
diff options
context:
space:
mode:
Diffstat (limited to 'extra/qhull')
-rw-r--r--extra/qhull/PKGBUILD49
-rw-r--r--extra/qhull/qhull-2010.1-cmake-install.patch98
-rw-r--r--extra/qhull/qhull-2010.1-overflows.patch50
3 files changed, 197 insertions, 0 deletions
diff --git a/extra/qhull/PKGBUILD b/extra/qhull/PKGBUILD
new file mode 100644
index 000000000..ebd94380f
--- /dev/null
+++ b/extra/qhull/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 120895 2011-04-27 06:52:39Z ronald $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=qhull
+pkgver=2010.1
+pkgrel=1
+pkgdesc="A general dimension code for computing convex hulls and related structures"
+arch=('i686' 'x86_64')
+url="http://www.qhull.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('cmake')
+source=(http://www.qhull.org/download/$pkgname-$pkgver-src.tgz
+ qhull-2010.1-cmake-install.patch
+ qhull-2010.1-overflows.patch)
+options=('!libtool')
+sha1sums=('ed480912e03efdd767195c06c7e8c252c78112b1'
+ '0a7747eb13c2e07c25882c1f0f5c0dfb4ef1c8c0'
+ '21295d57af2f8cdfc775512fa44fe90f49d89c41')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # gentoo patches
+ patch -Np1 -i ${srcdir}/qhull-2010.1-cmake-install.patch
+ patch -Np1 -i ${srcdir}/qhull-2010.1-overflows.patch
+
+ [ -d build ] || mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DDOC_INSTALL_DIR=/usr/share/doc \
+ -DLIB_INSTALL_DIR=/usr/lib ..
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+
+ make DESTDIR=$pkgdir install
+
+ # install manpages
+ install -Dm644 $srcdir/$pkgname-$pkgver/html/rbox.man $pkgdir/usr/share/man/man1/rbox.1
+ install -Dm644 $srcdir/$pkgname-$pkgver/html/qhull.man $pkgdir/usr/share/man/man1/qhull.1
+
+ # Install license
+ install -Dm644 $srcdir/$pkgname-$pkgver/COPYING.txt "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+}
diff --git a/extra/qhull/qhull-2010.1-cmake-install.patch b/extra/qhull/qhull-2010.1-cmake-install.patch
new file mode 100644
index 000000000..9e1914d13
--- /dev/null
+++ b/extra/qhull/qhull-2010.1-cmake-install.patch
@@ -0,0 +1,98 @@
+diff -Nur qhull-2010.1.orig/CMakeLists.txt qhull-2010.1/CMakeLists.txt
+--- qhull-2010.1.orig/CMakeLists.txt 2010-10-03 23:04:04.000000000 +0100
++++ qhull-2010.1/CMakeLists.txt 2010-10-03 23:26:54.000000000 +0100
+@@ -1,8 +1,44 @@
+ project(qhull)
+-cmake_minimum_required(VERSION 2.4)
+-if(COMMAND cmake_policy)
+- cmake_policy(SET CMP0003 NEW)
+-endif(COMMAND cmake_policy)
++cmake_minimum_required(VERSION 2.6)
++
++
++set(QHULL_VERSION "2010.1")
++
++if(INCLUDE_INSTALL_DIR)
++else()
++set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
++endif()
++if(LIB_INSTALL_DIR)
++else()
++set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
++endif()
++if(BIN_INSTALL_DIR)
++else()
++set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
++endif()
++if(DOC_INSTALL_DIR)
++else()
++set(DOC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/qhull)
++endif()
++
++message(STATUS)
++message(STATUS "========== qhull Build Information ==========")
++message(STATUS "Build Version: ${QHULL_VERSION}")
++message(STATUS "Install Prefix (CMAKE_INSTALL_PREFIX): ${CMAKE_INSTALL_PREFIX}")
++message(STATUS "Binary Directory (BIN_INSTALL_DIR): ${BIN_INSTALL_DIR}")
++message(STATUS "Library Directory (LIB_INSTALL_DIR): ${LIB_INSTALL_DIR}")
++message(STATUS "Include Directory (INCLUDE_INSTALL_DIR): ${INCLUDE_INSTALL_DIR}")
++message(STATUS "Documentation Directory (DOC_INSTALL_DIR): ${DOC_INSTALL_DIR}")
++message(STATUS)
++message(STATUS "To change any of these options, override them using -D{OPTION_NAME} on the commandline.")
++message(STATUS "To build and install qhull, run \"make\" and \"make install\"")
++message(STATUS)
++
+
+ add_subdirectory(src)
++option(WITH_STATIC_LIBS "Build with a static library" OFF)
++option(WITH_DOCS "Install HTML documentation" OFF)
+
++if (WITH_DOCS)
++install(DIRECTORY html/ DESTINATION ${DOC_INSTALL_DIR})
++endif (WITH_DOCS)
+diff -Nur qhull-2010.1.orig/src/CMakeLists.txt qhull-2010.1/src/CMakeLists.txt
+--- qhull-2010.1.orig/src/CMakeLists.txt 2010-10-03 23:04:04.000000000 +0100
++++ qhull-2010.1/src/CMakeLists.txt 2010-10-04 00:23:47.000000000 +0100
+@@ -23,8 +23,25 @@
+
+ file(GLOB qhull_hdr *.h)
+
+-add_library(qhull ${qhull_src})
++add_library(qhull SHARED ${qhull_src})
+ target_link_libraries(qhull m)
++if(UNIX)
++ if(APPLE)
++ set_target_properties(qhull PROPERTIES
++ INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
++ else(APPLE)
++ set_target_properties(qhull PROPERTIES
++ INSTALL_RPATH "${LIB_INSTALL_DIR}"
++ INSTALL_RPATH_USE_LINK_PATH TRUE
++ BUILD_WITH_INSTALL_RPATH FALSE)
++ endif(APPLE)
++endif(UNIX)
++
++if(WITH_STATIC_LIBS)
++ add_library(qhullstatic STATIC ${qhull_src})
++ set_property(TARGET qhullstatic PROPERTY OUTPUT_NAME "qhull")
++ install(TARGETS qhullstatic ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
++endif(WITH_STATIC_LIBS)
+
+ set(qhullcmd_SOURCES unix.c)
+ set(rbox_SOURCES rbox.c)
+@@ -36,6 +53,7 @@
+
+ add_executable(qhullcmd ${qhullcmd_SOURCES})
+ target_link_libraries(qhullcmd qhull)
++set_property(TARGET qhullcmd PROPERTY OUTPUT_NAME "qhull")
+
+ add_executable(rbox ${rbox_SOURCES})
+ target_link_libraries(rbox qhull)
+@@ -52,3 +70,7 @@
+ add_executable(qhalf ${qhalf_SOURCES})
+ target_link_libraries(qhalf qhull)
+
++install(TARGETS qhull qhullcmd rbox qconvex qdelaunay qvoronoi qhalf
++ RUNTIME DESTINATION ${BIN_INSTALL_DIR}
++ LIBRARY DESTINATION ${LIB_INSTALL_DIR})
++install(FILES ${qhull_hdr} DESTINATION ${INCLUDE_INSTALL_DIR}/qhull)
diff --git a/extra/qhull/qhull-2010.1-overflows.patch b/extra/qhull/qhull-2010.1-overflows.patch
new file mode 100644
index 000000000..df4aa3da1
--- /dev/null
+++ b/extra/qhull/qhull-2010.1-overflows.patch
@@ -0,0 +1,50 @@
+From 176c01851026125f574a8223ad49ec58b2b58ec0 Mon Sep 17 00:00:00 2001
+From: Johannes Obermayr <johannesobermayr@gmx.de>
+Date: Fri, 23 Jul 2010 20:02:19 +0200
+Subject: [PATCH] Fix some serious compiler warnings causing build breakage on openSUSE.
+
+---
+ src/global.c | 2 +-
+ src/rboxlib.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/global.c b/src/global.c
+index 3c6141a..4c9f56c 100644
+--- a/src/global.c
++++ b/src/global.c
+@@ -614,7 +614,7 @@ void qh_initflags(char *command) {
+ if (command <= &qh qhull_command[0] || command > &qh qhull_command[0] + sizeof(qh qhull_command)) {
+ if (command != &qh qhull_command[0]) {
+ *qh qhull_command= '\0';
+- strncat( qh qhull_command, command, sizeof( qh qhull_command));
++ strncat(qh qhull_command, command, sizeof(qh qhull_command)-strlen(qh qhull_command)-1);
+ }
+ while (*s && !isspace(*s)) /* skip program name */
+ s++;
+diff --git a/src/rboxlib.c b/src/rboxlib.c
+index 4f11d22..17d01ac 100644
+--- a/src/rboxlib.c
++++ b/src/rboxlib.c
+@@ -124,7 +124,7 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
+ }
+
+ *command= '\0';
+- strncat(command, rbox_command, sizeof(command));
++ strncat(command, rbox_command, sizeof(command)-strlen(command)-1);
+
+ while (*s && !isspace(*s)) /* skip program name */
+ s++;
+@@ -346,8 +346,8 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
+ }
+ }else if (israndom) {
+ seed= (int)time(&timedata);
+- sprintf(seedbuf, " t%d", seed); /* appends an extra t, not worth removing */
+- strncat(command, seedbuf, sizeof(command));
++ printf(seedbuf, " t%d", seed); /* appends an extra t, not worth removing */
++ strncat(command, seedbuf, sizeof(command)-strlen(command)-1);
+ t= strstr(command, " t ");
+ if (t)
+ strcpy(t+1, t+3); /* remove " t " */
+--
+1.6.1
+