aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/qhull
diff options
context:
space:
mode:
authormaxim-yurchuk <maxim-yurchuk@yandex-team.com>2024-10-09 12:29:46 +0300
committermaxim-yurchuk <maxim-yurchuk@yandex-team.com>2024-10-09 13:14:22 +0300
commit9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80 (patch)
treea8fb3181d5947c0d78cf402aa56e686130179049 /contrib/libs/qhull
parenta44b779cd359f06c3ebbef4ec98c6b38609d9d85 (diff)
downloadydb-9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80.tar.gz
publishFullContrib: true for ydb
<HIDDEN_URL> commit_hash:c82a80ac4594723cebf2c7387dec9c60217f603e
Diffstat (limited to 'contrib/libs/qhull')
-rw-r--r--contrib/libs/qhull/.yandex_meta/__init__.py10
-rw-r--r--contrib/libs/qhull/.yandex_meta/devtools.copyrights.report61
-rw-r--r--contrib/libs/qhull/.yandex_meta/devtools.licenses.report83
-rw-r--r--contrib/libs/qhull/.yandex_meta/licenses.list.txt816
-rw-r--r--contrib/libs/qhull/.yandex_meta/override.nix10
-rw-r--r--contrib/libs/qhull/patches/001-qh-new-qhull-feaspoint.patch53
6 files changed, 1033 insertions, 0 deletions
diff --git a/contrib/libs/qhull/.yandex_meta/__init__.py b/contrib/libs/qhull/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..afacd081cc
--- /dev/null
+++ b/contrib/libs/qhull/.yandex_meta/__init__.py
@@ -0,0 +1,10 @@
+from devtools.yamaker.project import CMakeNinjaNixProject
+
+
+qhull = CMakeNinjaNixProject(
+ arcdir="contrib/libs/qhull",
+ nixattr="qhull",
+ install_targets=["qhull_r"],
+ install_subdir="src",
+ copy_top_sources_except=["REGISTER.TXT", "QHULL-GO.lnk"],
+)
diff --git a/contrib/libs/qhull/.yandex_meta/devtools.copyrights.report b/contrib/libs/qhull/.yandex_meta/devtools.copyrights.report
new file mode 100644
index 0000000000..71dc81f690
--- /dev/null
+++ b/contrib/libs/qhull/.yandex_meta/devtools.copyrights.report
@@ -0,0 +1,61 @@
+# File format ($ symbol means the beginning of a line):
+#
+# $ # this message
+# $ # =======================
+# $ # comments (all commentaries should starts with some number of spaces and # symbol)
+# ${action} {license id} {license text hash}
+# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
+# ${all_file_action} filename
+# $ # user commentaries (many lines)
+# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
+# ${action} {license spdx} {license text hash}
+# $BELONGS ./ya/make/file/relative/path/3/ya.make
+# ${all_file_action} filename
+# $ # user commentaries
+# $ generated description
+# $ ...
+#
+# You can modify action, all_file_action and add commentaries
+# Available actions:
+# keep - keep license in contrib and use in credits
+# skip - skip license
+# remove - remove all files with this license
+# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
+#
+# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
+# We suppose that that files can contain some license info
+# Available all file actions:
+# FILE_IGNORE - ignore file (do nothing)
+# FILE_INCLUDE - include all file data into licenses text file
+# =======================
+
+KEEP COPYRIGHT_SERVICE_LABEL 34e0a31246e1d7eb0ff65ef66d378c6f
+BELONGS ya.make
+ License text:
+ Qhull, Copyright (c) 1993-2020
+ Scancode info:
+ Original SPDX id: COPYRIGHT_SERVICE_LABEL
+ Score : 100.00
+ Match type : COPYRIGHT
+ Files with this license:
+ COPYING.txt [1:1]
+
+KEEP COPYRIGHT_SERVICE_LABEL 4ab8f677719cebeedb283bb6a216f97c
+BELONGS ya.make
+ Note: matched license text is too long. Read it in the source files.
+ Scancode info:
+ Original SPDX id: COPYRIGHT_SERVICE_LABEL
+ Score : 100.00
+ Match type : COPYRIGHT
+ Files with this license:
+ COPYING.txt [16:19]
+
+KEEP COPYRIGHT_SERVICE_LABEL f1888ed6ca6de6682de69237944ec387
+BELONGS ya.make
+ Note: matched license text is too long. Read it in the source files.
+ Scancode info:
+ Original SPDX id: COPYRIGHT_SERVICE_LABEL
+ Score : 100.00
+ Match type : COPYRIGHT
+ Files with this license:
+ COPYING.txt [16:19]
diff --git a/contrib/libs/qhull/.yandex_meta/devtools.licenses.report b/contrib/libs/qhull/.yandex_meta/devtools.licenses.report
new file mode 100644
index 0000000000..ce40dc7254
--- /dev/null
+++ b/contrib/libs/qhull/.yandex_meta/devtools.licenses.report
@@ -0,0 +1,83 @@
+# File format ($ symbol means the beginning of a line):
+#
+# $ # this message
+# $ # =======================
+# $ # comments (all commentaries should starts with some number of spaces and # symbol)
+# ${action} {license spdx} {license text hash}
+# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
+# ${all_file_action} filename
+# $ # user commentaries (many lines)
+# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
+# ${action} {license spdx} {license text hash}
+# $BELONGS ./ya/make/file/relative/path/3/ya.make
+# ${all_file_action} filename
+# $ # user commentaries
+# $ generated description
+# $ ...
+#
+# You can modify action, all_file_action and add commentaries
+# Available actions:
+# keep - keep license in contrib and use in credits
+# skip - skip license
+# remove - remove all files with this license
+# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
+#
+# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
+# We suppose that that files can contain some license info
+# Available all file actions:
+# FILE_IGNORE - ignore file (do nothing)
+# FILE_INCLUDE - include all file data into licenses text file
+# =======================
+
+KEEP Qhull 096d5afce6c7ba4403b0f724dfc2adca
+BELONGS ya.make
+ Note: matched license text is too long. Read it in the source files.
+ Scancode info:
+ Original SPDX id: Qhull
+ Score : 93.93
+ Match type : TEXT
+ Links : https://fedoraproject.org/wiki/Licensing:Qhull?rd=Licensing/Qhull, https://spdx.org/licenses/Qhull
+ Files with this license:
+ COPYING.txt [8:39]
+
+KEEP Qhull 20303012babf67b87d6c5eb9e7a62ad9
+BELONGS ya.make
+FILE_INCLUDE COPYING.txt found in files: libqhull_r/userprintf_r.c at line 7
+FILE_INCLUDE README.txt found in files: libqhull_r/userprintf_r.c at line 7
+ License text:
+ see README.txt see COPYING.txt for copyright information.
+ Scancode info:
+ Original SPDX id: LicenseRef-scancode-unknown-license-reference
+ Score : 100.00
+ Match type : REFERENCE
+ Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/unknown-license-reference.LICENSE
+ Files with this license:
+ libqhull_r/userprintf_r.c [7:7]
+
+KEEP Qhull cff18f253c13cdca209e6b986044b579
+BELONGS ya.make
+FILE_INCLUDE COPYING.txt found in files: libqhull_r/user_r.c at line 9, libqhull_r/userprintf_rbox_r.c at line 7
+FILE_INCLUDE README.txt found in files: libqhull_r/user_r.c at line 9, libqhull_r/userprintf_rbox_r.c at line 7
+ License text:
+ see README.txt see COPYING.txt for copyright information.
+ Scancode info:
+ Original SPDX id: LicenseRef-scancode-unknown-license-reference
+ Score : 100.00
+ Match type : REFERENCE
+ Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/unknown-license-reference.LICENSE
+ Files with this license:
+ libqhull_r/user_r.c [9:9]
+ libqhull_r/userprintf_rbox_r.c [7:7]
+
+SKIP LicenseRef-scancode-proprietary-license fe08868e5c210eb7d2568208ea8cc417
+BELONGS ya.make
+ # Not a license
+ License text:
+ Qhull as a new kind of shareware: you share your science and successes
+ Scancode info:
+ Original SPDX id: LicenseRef-scancode-proprietary-license
+ Score : 5.00
+ Match type : REFERENCE
+ Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/proprietary-license.LICENSE
+ Files with this license:
+ REGISTER.txt [4:4]
diff --git a/contrib/libs/qhull/.yandex_meta/licenses.list.txt b/contrib/libs/qhull/.yandex_meta/licenses.list.txt
new file mode 100644
index 0000000000..edfdcb3654
--- /dev/null
+++ b/contrib/libs/qhull/.yandex_meta/licenses.list.txt
@@ -0,0 +1,816 @@
+====================COPYRIGHT====================
+ Qhull, Copyright (c) 1993-2020
+
+
+====================COPYRIGHT====================
+Files derived from Qhull 1.0 are copyrighted by the Geometry Center. The
+remaining files are copyrighted by C.B. Barber. Qhull is free software
+and may be obtained via http from www.qhull.org. It may be freely copied,
+modified, and redistributed under the following conditions:
+
+
+====================File: COPYING.txt====================
+ Qhull, Copyright (c) 1993-2020
+
+ C.B. Barber
+ Arlington, MA
+
+ and
+
+ The National Science and Technology Research Center for
+ Computation and Visualization of Geometric Structures
+ (The Geometry Center)
+ University of Minnesota
+
+ email: qhull@qhull.org
+
+This software includes Qhull from C.B. Barber and The Geometry Center.
+Files derived from Qhull 1.0 are copyrighted by the Geometry Center. The
+remaining files are copyrighted by C.B. Barber. Qhull is free software
+and may be obtained via http from www.qhull.org. It may be freely copied,
+modified, and redistributed under the following conditions:
+
+1. All copyright notices must remain intact in all files.
+
+2. A copy of this text file must be distributed along with any copies
+ of Qhull that you redistribute; this includes copies that you have
+ modified, or copies of programs or other software products that
+ include Qhull.
+
+3. If you modify Qhull, you must include a notice giving the
+ name of the person performing the modification, the date of
+ modification, and the reason for such modification.
+
+4. When distributing modified versions of Qhull, or other software
+ products that include Qhull, you must provide notice that the original
+ source code may be obtained as noted above.
+
+5. There is no warranty or other guarantee of fitness for Qhull, it is
+ provided solely "as is". Bug reports or fixes may be sent to
+ qhull_bug@qhull.org; the authors may or may not act on them as
+ they desire.
+
+
+====================File: README.txt====================
+Name
+
+ qhull, rbox 2020.2 2020/08/31 (8.0.2)
+
+Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
+
+ Documentation:
+ html/index.htm
+ <http://www.qhull.org/html>
+
+ Available from:
+ <http://www.qhull.org>
+ <http://www.qhull.org/download>
+ <http://github.com/qhull/qhull/wiki> (git@github.com:qhull/qhull.git)
+
+ News and a paper:
+ <http://www.qhull.org/news>
+ <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.117.405>
+
+ Version 1 (simplicial only):
+ <http://www.qhull.org/download/qhull-1.0.tar.gz>
+
+Purpose
+
+ Qhull is a general dimension convex hull program that reads a set
+ of points from stdin, and outputs the smallest convex set that contains
+ the points to stdout. It also generates Delaunay triangulations, Voronoi
+ diagrams, furthest-site Voronoi diagrams, and halfspace intersections
+ about a point.
+
+ Rbox is a useful tool in generating input for Qhull; it generates
+ hypercubes, diamonds, cones, circles, simplices, spirals,
+ lattices, and random points.
+
+ Qhull produces graphical output for Geomview. This helps with
+ understanding the output. <http://www.geomview.org>
+
+Environment requirements
+
+ Qhull and rbox should run on all 32-bit and 64-bit computers. Use
+ an ANSI C or C++ compiler to compile the program. The software is
+ self-contained. It comes with examples and test scripts.
+
+ Qhull's C++ interface uses the STL. The C++ test program uses QTestLib
+ from the Qt Framework.
+
+ Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt
+ before using or distributing Qhull.
+
+To cite Qhull, please use
+
+ Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., "The Quickhull
+ algorithm for convex hulls," ACM Trans. on Mathematical Software,
+ 22(4):469-483, Dec 1996, http://www.qhull.org.
+
+To modify Qhull, particularly the C++ interface
+
+ Qhull is on GitHub
+ (http://github.com/qhull/qhull/wiki, git@github.com:qhull/qhull.git)
+
+ For internal documentation, see html/qh-code.htm
+
+To install Qhull
+
+ Qhull is precompiled for Windows 32-bit, otherwise it needs compilation.
+
+ Qhull includes Makefiles for gcc and other targets, CMakeLists.txt for CMake,
+ .sln/.vcproj/.vcxproj files for Microsoft Visual Studio, and .pro files
+ for Qt Creator. It compiles under Windows with mingw.
+ (<https://github.com/qhull/qhull/wiki/Qhull-build-systems>)
+
+ Install and build instructions follow.
+
+ See the end of this document for a list of distributed files.
+
+------------------
+Index
+
+Installing Qhull on Windows 10, 8, 7 (32- or 64-bit), Windows XP, and Windows NT
+Installing Qhull on Unix with gcc
+Installing Qhull with CMake 2.6 or later
+Installing Qhull with Qt
+Working with Qhull's C++ interface
+Calling Qhull from C programs
+Compiling Qhull with Microsoft Visual C++
+Compiling Qhull with Qt Creator
+Compiling Qhull with mingw/gcc on Windows
+Compiling Qhull with cygwin on Windows
+Compiling from Makfile without gcc
+Compiling on other machines and compilers
+Distributed files
+Authors
+
+------------------
+Installing Qhull on Windows 10, 8, 7 (32- or 64-bit), Windows XP, and Windows NT
+
+ The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaunay.exe,
+ qhalf.exe, qvoronoi.exe, testqset.exe, user_eg*.exe, documentation files,
+ and source files. Qhull.exe and user-eg3.exe are compiled with the reentrant
+ library while the other executables use the non-reentrant library.
+
+ To install Qhull:
+ - Unzip the files into a directory (e.g., named 'qhull')
+ - Click on QHULL-GO or open a command window into Qhull's bin directory.
+ - Test with 'rbox D4 | qhull'
+
+ To uninstall Qhull
+ - Delete the qhull directory
+
+ To learn about Qhull:
+ - Execute 'qconvex' for a synopsis and examples.
+ Or 'qconvex --help' or 'qconvex -?'
+ - Execute 'rbox 10 | qconvex' to compute the convex hull of 10 random points.
+ - Execute 'rbox 10 | qconvex i TO file' to write results to 'file'.
+ - Browse the documentation: qhull\html\index.htm
+ - If an error occurs, Windows sends the error to stdout instead of stderr.
+ Use 'TO xxx' to send normal output to xxx
+
+ To improve the command window
+ - Double-click the window bar to increase the size of the window
+ - Right-click the window bar
+ - Select Properties
+ - Check QuickEdit Mode
+ Select text with right-click or Enter
+ Paste text with right-click
+ - Change Font to Lucinda Console
+ - Change Layout to Screen Buffer Height 999, Window Size Height 55
+ - Change Colors to Screen Background White, Screen Text Black
+ - Click OK
+ - Select 'Modify shortcut that started this window', then OK
+
+ If you regularly use qhull on a Windows host, install a bash shell such as
+ https://gitforwindows.org/ # based on MSYS2
+ https://github.com/git-for-windows/git/wiki
+ http://www.msys2.org/
+ https://github.com/msys2/msys2/wiki
+ [mar'19] Git for Windows v2.21 requires 'qhull --help'
+ Install in C:\Git\... # Not 'Program Files\...' otherwise './configure && make' fails
+ www.cygwin.com
+ www.mingw.org/wiki/msys # for Windows XP
+ Road Bash (www.qhull.org/bash) # based on MSYS
+
+------------------
+Installing Qhull on Unix with gcc
+
+ To build Qhull, static libraries, shared library, and C++ interface
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - make
+ - export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
+ - make test
+
+ 'make install' installs Qhull at '/usr/local/'. It installs pkg-config files
+ at '/usr/local/lib/pkgconfig'. Change the install directory with DESTDIR and PREFIX.
+
+ To build 32-bit Qhull on a 64-bit host (uses 33% less memory in 4-d)
+ - make new M32=-m32
+
+ To build 32-bit Qhull without -fpic (may be faster, but shared library may fail)
+ - make new M32=-m32 FPIC=
+
+ The Makefiles may be edited for other compilers.
+ If 'testqset' exits with an error, qhull is broken
+
+ A simple Makefile for Qhull is in src/libqhull and src/libqhull_r.
+ To build the Qhull executables and libqhullstatic
+ - Extract Qhull from qhull...tgz or qhull...zip
+ - cd src/libqhull_r # cd src/libqhull
+ - make
+
+
+------------------
+Installing Qhull with CMake 2.6 or later
+
+ See CMakeLists.txt for examples and further build instructions
+
+ To build Qhull, static libraries, shared library, and C++ interface
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - cd build
+ - cmake --help # List build generators
+ - cmake -G "<generator>" .. # e.g., for MINGW-w64 -- cmake -G "MSYS Makefiles" ..
+ - cmake ..
+ - make
+ - ctest
+ - make install # If MSYS or UNIX, default CMAKE_INSTALL_PREFIX is '/usr/local'
+ # otherwise if WINDOWS, installs to ../bin, ../include, and ../lib
+ - make uninstall # Delete the files in install_manifest.txt
+
+ The ".." is important. It refers to the parent directory (i.e., qhull/)
+
+ CMake installs lib/pkgconfig/qhull*.pc for use with pkg-config
+
+ If CMAKE_INSTALL_PREFIX is C:/Program Files/qhull, you may need to give 'Users' "full control"
+ to qhull's sub-directories: bin, doc, include, lib, and man (folder > Properties > Security > Edit > Users).
+
+ On Windows, CMake's 64-bit generators have a "Win64" tag. Qhull's data structures
+ are substantial larger as 64-bit code than as 32-bit code. This may slow down Qhull.
+
+ If cmake fails with "No CMAKE_C_COMPILER could be found"
+ - cmake was not able to find the build environment specified by -G "..."
+
+ If cmake's gcc smoketest fails after a Windows update
+ - Reinstall MINGW-w64 and delete CMakeCache.txt. A Windows update can break gcc process creation for cc1.
+
+------------------
+Installing Qhull with Qt
+
+ To build Qhull, including its C++ test program (qhulltest)
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Load src/qhull-all.pro into QtCreator
+ - Configure the project to use a Shadow build at the same level as 'src', 'bin', and 'lib'
+ If, instead, the shadow build is a subdirectory of 'build', Qt Creator will install Qhull in 'build/bin' and 'build/lib'
+ - Build
+
+ - Build qhulltest with a C++11 or later compiler
+ - qhulltest depends on shared libraries QtCore.a and QtTest.a. They may need to be copied
+ into the bin directory. On Windows, copy Qt5Core.dll and Qt5Test.dll, e.g., /qt/5.11.2/msvc2017_64/bin
+ - If qhulltest fails with exit status 127 and no error message,
+ check for missing Q5Core.dll and Qt5Test.dll
+
+------------------
+Working with Qhull's C++ interface
+
+ See html/qh-code.htm#cpp for calling Qhull from C++ programs
+
+ Class and method documentation is limited
+
+ See html/qh-code.htm#reentrant for converting from Qhull-2012
+
+ Examples of using the C++ interface
+ user_eg3_r.cpp
+ qhulltest/*_test.cpp
+
+ Qhull's C++ interface is likely to change. Stay current with GitHub.
+
+ To clone Qhull's next branch from http://github.com/qhull/qhull/wiki
+ git init
+ git clone git@github.com:qhull/qhull.git
+ cd qhull
+ git checkout next
+ ...
+ git pull origin next
+
+ Compile qhullcpp and libqhullstatic_r with the same compiler. Both libraries
+ use the C routines setjmp() and longjmp() for error handling. They must
+ be compiled with the same compiler.
+
+ Qhull provides pkg-config support with build/qhull.pc.in and lib/pkgconfig/qhull*.pc
+ With back-ticks, you can compile your C++ program with the Qhull libraries:
+ g++ `pkg-config --cflags --libs qhullcpp qhullstatic_r` -o my_app my_app.cpp
+ or
+ g++ `pkg-config --cflags --libs qhullcpp qhull_r` -o my_app my_app.cpp
+
+ qhullcpp must be linked before qhull_r, otherwise the linker reports
+ an error -- "QhullUser ... multiple definition of `qh_fprintf'"
+
+------------------
+Calling Qhull from C programs
+
+ See html/qh-code.htm#library for calling Qhull from C programs
+
+ Qhull provides pkg-config support with build/qhull.pc.in and lib/pkgconfig/qhull*.pc
+ With back-ticks, you can compile your C program with the Qhull library
+ gcc `pkg-config --cflags --libs qhull_r` -o my_app my_app.c
+
+ See html/qh-code.htm#reentrant for converting from Qhull-2012
+
+ Warning: You will need to understand Qhull's data structures and read the
+ code. Most users will find it easier to call Qhull as an external command.
+
+ The reentrant 'C' code (src/libqhull_r), passes a pointer to qhT
+ to most Qhull routines. This allows multiple instances of Qhull to run
+ at the same time. It simplifies the C++ interface.
+
+ The non-reentrant 'C' code (src/libqhull) looks unusual. It refers to
+ Qhull's global data structure, qhT, through a 'qh' macro (e.g., 'qh ferr').
+ This allows the same code to use static memory or heap memory.
+ If qh_QHpointer is defined, qh_qh is a pointer to an allocated qhT;
+ otherwise qh_qh is a global static data structure of type qhT.
+
+------------------
+Compiling Qhull with Microsoft Visual C++
+
+ To compile 32-bit Qhull with Microsoft Visual C++ 2010 and later
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Load solution build/qhull-32.sln
+ - Right-click 'Retarget solution' from toolset v110 to your Platform Toolset
+ File > Save All
+ - Build target 'Win32'
+ - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
+ Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/5.2.0/5.2.0/msvc2012)
+ If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
+ - Copy Qt shared libraries, QtCore.dll and QtTest.dll, into the bin directory
+
+ To compile 64-bit Qhull with Microsoft Visual C++ 2010 and later
+ - 64-bit Qhull has larger data structures due to 64-bit pointers. This may slow down Qhull.
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Load solution build/qhull-64.sln
+ - Right-click 'Retarget solution' from toolset v110 to your Platform Toolset
+ File > Save All
+ - Build target 'x64'
+ - If build as 32-bit fails, use solution build/qhull-32.sln
+ - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
+ Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/5.2.0/5.2.0/msvc2012_64)
+ If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
+
+ If error -- MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = 'v110') cannot be found.
+ - 'Project > Retarget solution' for both qhull-32.sln and qhull-64.sln
+ - 'File > Open' your preferred solution (qhull-32.sln or qhull-64.sln)
+ - 'Save All' both projects
+ - DevStudio may need a restart
+
+ To compile Qhull with Microsoft Visual C++ 2005 (vcproj files)
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Load solution build/qhull.sln
+ - Build target 'win32' (not 'x64')
+ - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
+ Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/4.7.4)
+ If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
+
+------------------
+Compiling Qhull with Qt Creator
+
+ Qt (http://www.qt.io) is a C++ framework for Windows, Linux, and Macintosh
+
+ Qhull uses QTestLib to test qhull's C++ interface (see src/qhulltest/)
+
+ To compile Qhull with Qt Creator
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Download the Qt SDK
+ - Start Qt Creator
+ - Load src/qhull-all.pro
+ - Configure the project to use a Shadow build at the same level as 'src', 'bin', and 'lib'
+ If, instead, the shadow build is a subdirectory of 'build', Qt Creator will install Qhull in 'build/bin' and 'build/lib'
+ - Build
+
+ - Build qhulltest with a C++11 or later compiler
+ - qhulltest depends on shared libraries QtCore.a and QtTest.a. They may need to be copied
+ into the bin directory. On Windows, copy Qt5Core.dll and Qt5Test.dll, e.g., /qt/5.11.2/msvc2017_64/bin
+ - If qhulltest fails with exit status 127 and no error message,
+ check for missing Q5Core.dll and Qt5Test.dll
+
+------------------
+Compiling Qhull with mingw/gcc on Windows
+
+ To compile Qhull with MINGW
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Install GitForWindows (https://gitforwindows.org/)
+ or MSYS2 (http://www.msys2.org/)
+ Install in C:\Git\... # Not 'Program Files\...' otherwise './configure && make' will not work
+ - Install MINGW-w64 with gcc (https://mingw-w64.org/)
+ 1) Goto sourceforge -- https://sourceforge.net/projects/mingw-w64/files/
+ 2) in folder -- mingw-w64
+ 3) download installer -- MinGW-W64-install.exe
+ Run the installer
+ 1) Select i686/posix/dwarf
+ 2) Install in 'C:\mingw-w64' # Not 'Program Files\...'
+ Rename /c/mingw-w64/mingw32/bin/mingw32-make.exe to make.exe
+ Add the 'C:\mingw-w64\mingw32\bin' directory to your $PATH environment variable
+ Execute 'which make' to check that 'make' is mingw-w64's make
+ - Compile Qhull from the home directory
+ make help
+ make
+
+ Notes
+ - Mingw is included with Qt SDK in qt/Tools/mingw53_32
+ - If you use Windows XP
+ Install Road Bash (http://www.qhull.org/bash) or MSYS (http://www.mingw.org/wiki/msys)
+ Install MINGW (http://mingw.org/)
+
+------------------
+Compiling Qhull with cygwin on Windows
+
+ To compile Qhull with cygwin
+ - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
+ - Install cygwin (http://www.cygwin.com)
+ - Include packages for gcc, make, ar, and ln
+ - make
+
+------------------
+Compiling from Makfile without gcc
+
+ The file, qhull-src.tgz, contains documentation and source files for
+ qhull and rbox.
+
+ To unpack the tgz file
+ - tar zxf qhull-src.tgz
+ - cd qhull
+ - Use qhull/Makefile
+ Simpler Makefiles are qhull/src/libqhull/Makefile and qhull/src/libqhull_r/Makefile
+
+ Compiling qhull and rbox with Makefile
+ - in Makefile, check the CC, CCOPTS1, PRINTMAN, and PRINTC defines
+ - the defaults are gcc and enscript
+ - CCOPTS1 should include the ANSI flag. It defines __STDC__
+ - in user.h, check the definitions of qh_SECticks and qh_CPUclock.
+ - use '#define qh_CLOCKtype 2' for timing runs longer than 1 hour
+ - type: make
+ - this builds: qhull qconvex qdelaunay qhalf qvoronoi rbox libqhull.a libqhull_r.a
+ - type: make doc
+ - this prints the man page
+ - See also qhull/html/index.htm
+ - if your compiler reports many errors, it is probably not a ANSI C compiler
+ - you will need to set the -ansi switch or find another compiler
+ - if your compiler warns about missing prototypes for fprintf() etc.
+ - this is ok, your compiler should have these in stdio.h
+ - if your compiler warns about missing prototypes for memset() etc.
+ - include memory.h in qhull_a.h
+ - if your compiler reports "global.c: storage size of 'qh_qh' isn't known"
+ - delete the initializer "={0}" in global.c, stat.c and mem.c
+ - if your compiler warns about "stat.c: improper initializer"
+ - this is ok, the initializer is not used
+ - if you have trouble building libqhull.a with 'ar'
+ - try 'make -f Makefile.txt qhullx'
+ - if the code compiles, the qhull test case will automatically execute
+ - if an error occurs, there's an incompatibility between machines
+ - If you can, try a different compiler
+ - You can turn off the Qhull memory manager with qh_NOmem in mem.h
+ - You can turn off compiler optimization (-O2 in Makefile)
+ - If you find the source of the problem, please let us know
+ - to install the programs and their man pages:
+ - define MANDIR and BINDIR
+ - type 'make install'
+
+ - if you have Geomview (www.geomview.org)
+ - try 'rbox 100 | qconvex G >a' and load 'a' into Geomview
+ - run 'q_eg' for Geomview examples of Qhull output (see qh-eg.htm)
+
+------------------
+Compiling on other machines and compilers
+
+ Qhull may compile with Borland C++ 5.0 bcc32. A Makefile is included.
+ Execute 'cd src/libqhull; make -f Mborland'. If you use the Borland IDE, set
+ the ANSI option in Options:Project:Compiler:Source:Language-compliance.
+
+ Qhull may compile with Borland C++ 4.02 for Win32 and DOS Power Pack.
+ Use 'cd src/libqhull; make -f Mborland -D_DPMI'. Qhull 1.0 compiles with
+ Borland C++ 4.02. For rbox 1.0, use "bcc32 -WX -w- -O2-e -erbox -lc rbox.c".
+ Use the same options for Qhull 1.0. [D. Zwick]
+
+ If you have troubles with the memory manager, you can turn it off by
+ defining qh_NOmem in mem.h.
+
+------------------
+Distributed files
+
+ README.txt // Instructions for installing Qhull
+ REGISTER.txt // Qhull registration
+ COPYING.txt // Copyright notice
+ QHULL-GO.lnk // Windows icon for eg/qhull-go.bat
+ Announce.txt // Announcement
+ CMakeLists.txt // CMake build file (2.6 or later)
+ File_id.diz // Package descriptor
+ index.htm // Home page
+ Makefile // Makefile for gcc and other compilers
+ qhull*.md5sum // md5sum for all files
+
+ bin/* // Qhull executables and dll (.zip only)
+ build/CMakeModules/CheckLFS.cmake // enables Large File Support in CMake
+ build/config.cmake.in // extract target variables
+ build/qhull.pc.in // pkg-config template for creating lib/pkgconfig/qhull*.pc
+ build/qhull-32.sln // 32-bit DevStudio solution and project files (2010 and later)
+ build/*-32.vcxproj
+ build/qhull-64.sln // 64-bit DevStudio solution and project files (2010 and later)
+ build/*-64.vcxproj
+ build/qhull.sln // DevStudio solution and project files (2005 and 2009)
+ build/*.vcproj
+ build/qhulltest/ // DevStudio project files for qhulltest (C++ and Qt)
+ build/README-build.txt // Contents of build/
+ eg/* // Test scripts and geomview files from q_eg
+ html/index.htm // Manual
+ html/qh-faq.htm // Frequently asked questions
+ html/qh-get.htm // Download page
+ html/qhull-cpp.xml // C++ style notes as a Road FAQ (www.qhull.org/road)
+ src/Changes.txt // Change history for Qhull and rbox
+ src/qhull-all.pro // Qt project
+
+eg/
+ q_benchmark // shell script for precision and performance benchmark
+ q_benchmark-ok.txt // reviewed output from q_benchmark
+ q_eg // shell script for Geomview examples (eg.01.cube)
+ q_egtest // shell script for Geomview test examples
+ q_test // shell script to test qhull
+ q_test.bat // Windows batch test for QHULL-GO.bat
+ // cd bin; ..\eg\q_test.bat >q_test.x 2>&1
+ q_test-ok.txt // reviewed output from q_test
+ qhulltest-ok.txt // reviewed output from qhulltest (Qt only)
+ make-qhull_qh.sh // shell script to create non-reentrant qhull_qh from reentrant Qhull
+ make-vcproj.sh // shell script to create vcproj and vcxprog files
+ qhull-zip.sh // shell script to create distribution files
+ qtest.sh // shell script for testing and logging qhull
+
+rbox consists of (bin, html):
+ rbox.exe // Win32 executable (.zip only)
+ rbox.htm // html manual
+ rbox.man // Unix man page
+ rbox.txt
+
+qhull consists of (bin, html):
+ qconvex.exe // Win32 executables and dlls (.zip download only)
+ qhull.exe // Built with the reentrant library (about 2% slower)
+ qdelaunay.exe
+ qhalf.exe
+ qvoronoi.exe
+ qhull_r.dll
+ qhull-go.bat // command window
+ qconvex.htm // html manual
+ qdelaun.htm
+ qdelau_f.htm
+ qhalf.htm
+ qvoronoi.htm
+ qvoron_f.htm
+ qh-eg.htm
+ qh-code.htm
+ qh-impre.htm
+ index.htm
+ qh-opt*.htm
+ qh-quick.htm
+ qh--*.gif // images for manual
+ normal_voronoi_knauss_oesterle.jpg
+ qh_findbestfacet-drielsma.pdf
+ qhull.man // Unix man page
+ qhull.txt
+
+bin/
+ msvcr80.dll // Visual C++ redistributable file (.zip download only)
+
+src/
+ qhull/unix.c // Qhull and rbox applications using non-reentrant libqhullstatic.a
+ rbox/rbox.c
+ qconvex/qconvex.c
+ qhalf/qhalf.c
+ qdelaunay/qdelaunay.c
+ qvoronoi/qvoronoi.c
+
+ qhull/unix_r.c // Qhull and rbox applications using reentrant libqhullstatic_r.a
+ rbox/rbox_r.c
+ qconvex/qconvex_r.c // Qhull applications built with reentrant libqhull_r/Makefile
+ qhalf/qhalf_r.c
+ qdelaunay/qdelaun_r.c
+ qvoronoi/qvoronoi_r.c
+
+ user_eg/user_eg_r.c // example of using qhull_r.dll from a user program
+ user_eg2/user_eg2_r.c // example of using libqhullstatic_r.a from a user program
+ user_eg3/user_eg3_r.cpp // example of Qhull's C++ interface libqhullcpp with libqhullstatic_r.a
+ qhulltest/qhulltest.cpp // Test of Qhull's C++ interface using Qt's QTestLib
+ qhull-*.pri // Include files for Qt projects
+ testqset_r/testqset_r.c // Test of reentrant qset_r.c and mem_r.c
+ testqset/testqset.c // Test of non-rentrant qset.c and mem.c
+
+src/libqhull
+ libqhull.pro // Qt project for non-rentrant, shared library (qhull.dll)
+ index.htm // design documentation for libqhull
+ qh-*.htm
+ qhull-exports.def // Export Definition files for Visual C++
+ qhull-nomerge-exports.def
+ qhull_p-exports.def
+ qhull_p-nomerge-exports.def
+ Makefile // Simple gcc Makefile for qhull and libqhullstatic.a
+ Mborland // Makefile for Borland C++ 5.0
+
+ libqhull.h // header file for qhull
+ user.h // header file of user definable constants
+ libqhull.c // Quickhull algorithm with partitioning
+ user.c // user re-definable functions
+ usermem.c
+ userprintf.c
+ userprintf_rbox.c
+
+ qhull_a.h // include files for libqhull/*.c
+ geom.c // geometric routines
+ geom2.c
+ geom.h
+ global.c // global variables
+ io.c // input-output routines
+ io.h
+ mem.c // memory routines, this is stand-alone code
+ mem.h
+ merge.c // merging of non-convex facets
+ merge.h
+ poly.c // polyhedron routines
+ poly2.c
+ poly.h
+ qset.c // set routines, this only depends on mem.c
+ qset.h
+ random.c // utilities w/ Park & Miller's random number generator
+ random.h
+ rboxlib.c // point set generator for rbox
+ stat.c // statistics
+ stat.h
+
+src/libqhull_r
+ libqhull_r.pro // Qt project for rentrant, shared library (qhull_r.dll)
+ index.htm // design documentation for libqhull_r
+ qh-*_r.htm
+ qhull_r-exports.def // Export Definition files for Visual C++
+ qhull_r-nomerge-exports.def
+ Makefile // Simple gcc Makefile for qhull and libqhullstatic.a
+
+ libqhull_r.h // header file for qhull
+ user_r.h // header file of user definable constants
+ libqhull_r.c // Quickhull algorithm wi_r.hpartitioning
+ user_r.c // user re-definable functions
+ usermem.c
+ userprintf.c
+ userprintf_rbox.c
+ qhull_ra.h // include files for libqhull/*_r.c
+ geom_r.c // geometric routines
+ geom2.c
+ geom_r.h
+ global_r.c // global variables
+ io_r.c // input-output routines
+ io_r.h
+ mem_r.c // memory routines, this is stand-alone code
+ mem.h
+ merge_r.c // merging of non-convex facets
+ merge.h
+ poly_r.c // polyhedron routines
+ poly2.c
+ poly_r.h
+ qset_r.c // set routines, this only depends on mem_r.c
+ qset.h
+ random_r.c // utilities w/ Park & Miller's random number generator
+ random.h
+ rboxlib_r.c // point set generator for rbox
+ stat_r.c // statistics
+ stat.h
+
+src/libqhullcpp/
+ libqhullcpp.pro // Qt project for renentrant, static C++ library
+ Qhull.cpp // Calls libqhull_r.c from C++
+ Qhull.h
+ qt-qhull.cpp // Supporting methods for Qt
+
+ Coordinates.cpp // input classes
+ Coordinates.h
+
+ PointCoordinates.cpp
+ PointCoordinates.h
+ RboxPoints.cpp // call rboxlib.c from C++
+ RboxPoints.h
+
+ QhullFacet.cpp // data structure classes
+ QhullFacet.h
+ QhullHyperplane.cpp
+ QhullHyperplane.h
+ QhullPoint.cpp
+ QhullPoint.h
+ QhullQh.cpp
+ QhullRidge.cpp
+ QhullRidge.h
+ QhullVertex.cpp
+ QhullVertex.h
+
+ QhullFacetList.cpp // collection classes
+ QhullFacetList.h
+ QhullFacetSet.cpp
+ QhullFacetSet.h
+ QhullIterator.h
+ QhullLinkedList.h
+ QhullPoints.cpp
+ QhullPoints.h
+ QhullPointSet.cpp
+ QhullPointSet.h
+ QhullSet.cpp
+ QhullSet.h
+ QhullSets.h
+ QhullVertexSet.cpp
+ QhullVertexSet.h
+
+ functionObjects.h // supporting classes
+ QhullError.cpp
+ QhullError.h
+ QhullQh.cpp
+ QhullQh.h
+ QhullStat.cpp
+ QhullStat.h
+ QhullUser.cpp
+ QhullUser.h
+ RoadError.cpp // Supporting base classes
+ RoadError.h
+ RoadLogEvent.cpp
+ RoadLogEvent.h
+ usermem_r-cpp.cpp // Optional override for qh_exit() to throw an error
+
+src/libqhullstatic/
+ libqhullstatic.pro // Qt project for non-reentrant, static library
+
+src/libqhullstatic_r/
+ libqhullstatic_r.pro // Qt project for reentrant, static library
+
+src/qhulltest/
+ qhulltest.pro // Qt project for test of C++ interface
+ Coordinates_test.cpp // Test of each class
+ PointCoordinates_test.cpp
+ Qhull_test.cpp
+ QhullFacet_test.cpp
+ QhullFacetList_test.cpp
+ QhullFacetSet_test.cpp
+ QhullHyperplane_test.cpp
+ QhullLinkedList_test.cpp
+ QhullPoint_test.cpp
+ QhullPoints_test.cpp
+ QhullPointSet_test.cpp
+ QhullRidge_test.cpp
+ QhullSet_test.cpp
+ QhullVertex_test.cpp
+ QhullVertexSet_test.cpp
+ RboxPoints_test.cpp
+ RoadTest.cpp // Run multiple test files with QTestLib
+ RoadTest.h
+
+------------------
+Authors
+
+ C. Bradford Barber Hannu Huhdanpaa (Version 1.0)
+ bradb@shore.net hannu@qhull.org
+
+ Qhull 1.0 and 2.0 were developed under NSF grants NSF/DMS-8920161
+ and NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard
+ University. If you find Qhull useful, please let us know.
+
+
+====================Qhull====================
+ The National Science and Technology Research Center for
+ Computation and Visualization of Geometric Structures
+ (The Geometry Center)
+ University of Minnesota
+
+ email: qhull@qhull.org
+
+This software includes Qhull from C.B. Barber and The Geometry Center.
+Files derived from Qhull 1.0 are copyrighted by the Geometry Center. The
+remaining files are copyrighted by C.B. Barber. Qhull is free software
+and may be obtained via http from www.qhull.org. It may be freely copied,
+modified, and redistributed under the following conditions:
+
+1. All copyright notices must remain intact in all files.
+
+2. A copy of this text file must be distributed along with any copies
+ of Qhull that you redistribute; this includes copies that you have
+ modified, or copies of programs or other software products that
+ include Qhull.
+
+3. If you modify Qhull, you must include a notice giving the
+ name of the person performing the modification, the date of
+ modification, and the reason for such modification.
+
+4. When distributing modified versions of Qhull, or other software
+ products that include Qhull, you must provide notice that the original
+ source code may be obtained as noted above.
+
+5. There is no warranty or other guarantee of fitness for Qhull, it is
+ provided solely "as is". Bug reports or fixes may be sent to
+ qhull_bug@qhull.org; the authors may or may not act on them as
+ they desire.
+
+====================Qhull====================
+ see README.txt see COPYING.txt for copyright information.
+
+
+====================Qhull====================
+ see README.txt see COPYING.txt for copyright information.
diff --git a/contrib/libs/qhull/.yandex_meta/override.nix b/contrib/libs/qhull/.yandex_meta/override.nix
new file mode 100644
index 0000000000..666af7295a
--- /dev/null
+++ b/contrib/libs/qhull/.yandex_meta/override.nix
@@ -0,0 +1,10 @@
+pkgs: attrs: with pkgs; rec {
+ version = "8.0.2";
+
+ src = fetchFromGitHub {
+ owner = "qhull";
+ repo = "qhull";
+ rev = "v${version}";
+ hash = "sha256-djUO3qzY8ch29AuhY3Bn1ajxWZ4/W70icWVrxWRAxRc=";
+ };
+}
diff --git a/contrib/libs/qhull/patches/001-qh-new-qhull-feaspoint.patch b/contrib/libs/qhull/patches/001-qh-new-qhull-feaspoint.patch
new file mode 100644
index 0000000000..62c356efe8
--- /dev/null
+++ b/contrib/libs/qhull/patches/001-qh-new-qhull-feaspoint.patch
@@ -0,0 +1,53 @@
+--- contrib/libs/qhull/libqhull_r/user_r.c (index)
++++ contrib/libs/qhull/libqhull_r/user_r.c (working tree)
+@@ -123,6 +123,12 @@
+ */
+ int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
+ char *qhull_cmd, FILE *outfile, FILE *errfile) {
++ return qh_new_qhull_feaspoint(qh, dim, numpoints, points, ismalloc,
++ qhull_cmd, outfile, errfile, NULL);
++}
++
++int qh_new_qhull_feaspoint(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
++ char *qhull_cmd, FILE *outfile, FILE *errfile, coordT* feaspoint) {
+ /* gcc may issue a "might be clobbered" warning for dim, points, and ismalloc [-Wclobbered].
+ These parameters are not referenced after a longjmp() and hence not clobbered.
+ See http://stackoverflow.com/questions/7721854/what-sense-do-these-clobbered-variable-warnings-make */
+@@ -158,7 +164,24 @@ int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc
+ /* points is an array of halfspaces,
+ the last coordinate of each halfspace is its offset */
+ hulldim= dim-1;
+- qh_setfeasible(qh, hulldim);
++ if(feaspoint)
++ {
++ if (!(qh->feasible_point= (pointT*)qh_malloc(hulldim * sizeof(coordT)))) {
++ qh_fprintf(qh, qh->ferr, 6079, "qhull error: insufficient memory for 'Hn,n,n'\n");
++ qh_errexit(qh, qh_ERRmem, NULL, NULL);
++ }
++ coordT* coords = qh->feasible_point;
++ coordT* value = feaspoint;
++ int i;
++ for(i = 0; i < hulldim; ++i)
++ {
++ *(coords++) = *(value++);
++ }
++ }
++ else
++ {
++ qh_setfeasible(qh, hulldim);
++ }
+ new_points= qh_sethalfspace_all(qh, dim, numpoints, points, qh->feasible_point);
+ new_ismalloc= True;
+ if (ismalloc)
+--- contrib/libs/qhull/libqhull_r/libqhull_r.h (index)
++++ contrib/libs/qhull/libqhull_r/libqhull_r.h (working tree)
+@@ -1029,6 +1029,8 @@ void qh_errexit(qhT *qh, int exitcode, facetT *facet, ridgeT *ridge);
+ void qh_errprint(qhT *qh, const char* string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex);
+ int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
+ char *qhull_cmd, FILE *outfile, FILE *errfile);
++int qh_new_qhull_feaspoint(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
++ char *qhull_cmd, FILE *outfile, FILE *errfile, coordT* feaspoint);
+ void qh_printfacetlist(qhT *qh, facetT *facetlist, setT *facets, boolT printall);
+ void qh_printhelp_degenerate(qhT *qh, FILE *fp);
+ void qh_printhelp_internal(qhT *qh, FILE *fp);
+