From b18f5cb68be0c40f098e28d16b9389fc96b00858 Mon Sep 17 00:00:00 2001 From: Cary Phillips Date: Tue, 23 Jul 2019 15:09:29 -0700 Subject: [PATCH] Revised the overview information in README.md, and condensed the information in the module README.md's, and removed the local AUTHORS, NEWS, ChangeLog files. Signed-off-by: Cary Phillips --- IlmBase/AUTHORS | 21 ---- IlmBase/ChangeLog | 136 --------------------- IlmBase/LICENSE | 34 ------ IlmBase/NEWS | 3 - IlmBase/README.md | 288 +++----------------------------------------- PyIlmBase/ChangeLog | 10 -- PyIlmBase/LICENSE | 34 ------ PyIlmBase/README.md | 89 ++------------ 8 files changed, 30 insertions(+), 585 deletions(-) delete mode 100644 IlmBase/AUTHORS delete mode 100644 IlmBase/ChangeLog delete mode 100644 IlmBase/LICENSE delete mode 100644 IlmBase/NEWS delete mode 100644 PyIlmBase/ChangeLog delete mode 100644 PyIlmBase/LICENSE diff --git a/IlmBase/AUTHORS b/IlmBase/AUTHORS deleted file mode 100644 index 51c1f9ce..00000000 --- a/IlmBase/AUTHORS +++ /dev/null @@ -1,21 +0,0 @@ -Developers: ------------ - -Florian Kainz -Rod Bogart -Drew Hess -Bill Anderson -Wojciech Jarosz - -Contributors: -------------- - -Rito Trevino -Josh Pines -Christian Rouet - -Win32 build system: -------------------- - -Nick Porcino -Kimball Thurston diff --git a/IlmBase/ChangeLog b/IlmBase/ChangeLog deleted file mode 100644 index 2e79c0f4..00000000 --- a/IlmBase/ChangeLog +++ /dev/null @@ -1,136 +0,0 @@ -Version 2.x.x - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.1 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.0 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - * Numerous minor fixes, missing includes etc - -Version 1.1.0.beta.1 - * Added new module PyIlmBase : python bindings for IlmBase - (Nick Rasmussen) - * Added git specific files - (Piotr Stanczyk) - * Minor fixes for newer gcc versions and OS X. - (misc) - * Preparation for OpenEXR v2 release { remove message for final release } - (Piotr Stanczyk) - * Updated the so verison to 10 - (Piotr Stanczyk) - * Initial use of the CMake build system - (Nicholas Yue) - -Version 1.0.3 - * Added support for enabling/disabling large stack optimisations, used in - halfFunction.h. - (Piotr Stanczyk) - * Added ImathNoise.(h/cpp) files. Initializes Perlin noise to match the - Renderman implmenetation. - (Pixar Contribution) - * Fixed a number of missing includes to comply with stricter - enforcement by gnu compilers. - (Piotr Stanczyk) - * Depracated compiler flag: -Wno-long-double since it is no longer - supported under OS X. - (Piotr Stanczyk) - * A minor API change to Imath::Frustum has been made: the functions - 'near' and 'far' have been renamed to 'nearPlane' and 'farPlane' due - to conflicts with certain windows headers. The former alternate - accessor names for these values on windows ('hither' and 'yon') - remain, though should be considered deprecated. - (David Lenihan) - * Added SVD, eigenvalue solver, and procrustes fit calculations - to ImathMatrixAlgo. - (Chris Twigg, Ji Hun Yu) - * Added Imath::FrustumTest for frustum visibility testing. - (Eric Johnston) - * Fixed a stack corruption in the matrix minorOf functions. - (Nick Rasmussen) - * Visual studio 2008 project files have been added to the vc/vc9 - directory, and several minor visual studio compile fixes have - been applied. - (Nick Rasmussen) - * Updated the so verison to 7. - (Piotr Stanczyk) - * Depracated the MacCode_Warrior and Shake submodules. - (Piotr Stanczyk) - -Version 1.0.2 - * Added support for targetting builds on 64bit Windows and minimising - number of compiler warnings on Windows. Thanks to Ger Hobbelt for his - contributions to CreateDLL. - (Ji Hun Yu) - * Removed a spurious restrict qualifier in the matrix manipulation code - that was causing the 64-bit MS compiler to generate code in release - mode that caused incorrect results. - (Ji Hun Yu) - * Added patches for improving universal binaries on OS X. Thanks to - Paul Schneider for the contribution - (Piotr Stanczyk) - * Imath::Box optimization: remove loops from methods by partially - specializing the class, for boxes of two and three dimensions. - (Piotr Stanczyk) - * Added explicit copy constructors to Imath::Matrix33 and - ImathMatrix44 to make conversions between float and double - matrices more convenient. - (Florian Kainz) - * Added slerpShortestArc() and euclideanInnerProduct() functions - to Imath::Quat. - (Nick Porcino) - * Added 4D vector class template Imath::Vec4. - (Nick Porcino) - * Copy constructors and assignment operators for Matrix33 - and Matrix44 are up to 25% faster. Added matrix constructors - that do not initialize the matrix (this is faster in cases where - the initial value of the matrix is immediately overwritten anyway). - (Nick Porcino) - * Rewrote function closestPointOnBox(point,box). Shortened - the code, improved numerical accuracy, fixed a bug where - closestPointOnBox(box.center(),box) would return the center - of the +Z side of the box, even if the +/-X or +/-Y sides - were closer. - (Florian Kainz) - * Rewrote function findEntryAndExitPoints() in ImathBoxAlgo.h. - Results are now consistent with those from intersect(), also - in ImathBoxAlgo.h. - (Florian Kainz) - * Made Vec2::length() and Vec3::length() more accurate for - vectors whose length is less than sqrt(limits::smallest()); - (Florian Kainz) - * Made Quat::angle() more accurate for small angles. - (Don Hatch) - -Version 1.0.1: - * Removed Windows .suo files from distribution. - (Eric Wimmer) - -Version 1.0.0: - * Bumped DSO version number to 6.0 - (Florian Kainz) - * Rounding during float-to-half conversion now implements - "round to nearest even" mode: if the original float value - is exactly in the middle between the two closest half values - then rounding chooses the half value whose least significant - bit is zero. - (Florian Kainz) - * Installation Tuning: - - Corrected version number on dso's (libtool) - now 5.0 - - Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs - in configure scripts of packages dependent on IlmBase can link - with static libraries properly - - eliminated some warning messages during install - (Andrew Kunz) - -Version 0.9.0: - * Initial release of this code as a separate library. - Previously the libraries contained were part of - version 1.4.0 of OpenEXR - * New build scripts for Linux/Unix - (Andrew Kunz) - * New Windows project files and build scripts - (Kimball Thurston) diff --git a/IlmBase/LICENSE b/IlmBase/LICENSE deleted file mode 100644 index 6372750d..00000000 --- a/IlmBase/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above - copyright notice, this list of conditions and the following - disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with - the distribution. - - * Neither the name of Industrial Light & Magic nor the names of - any other contributors to this software may be used to endorse or - promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/IlmBase/NEWS b/IlmBase/NEWS deleted file mode 100644 index 0f499205..00000000 --- a/IlmBase/NEWS +++ /dev/null @@ -1,3 +0,0 @@ -Version 0.9.0: - - Initial release - diff --git a/IlmBase/README.md b/IlmBase/README.md index e0e2e79b..181c4eee 100644 --- a/IlmBase/README.md +++ b/IlmBase/README.md @@ -1,14 +1,10 @@ -The IlmBase Libraries -===================== +# The IlmBase Libraries -The IlmBase libraries include the following: +The IlmBase libraries are a part of the OpenEXR project and include +the following: * **Half** - a class that encapsulates our 16-bit floating-point format. -* **IlmThread** - a thread abstraction library for use with OpenEXR and -other software packages. It currently supports pthreads and Windows -threads. - * **Imath** - 2D and 3D vectors, 3x3 and 4x4 matrices, quaternions and other useful 2D and 3D math functions. @@ -16,274 +12,24 @@ and other useful 2D and 3D math functions. * **IexMath** - math exception types. -In addition, the distribution also includes confidence test libaries: -**HalfTest**, **IexTest**, and **ImathTest**. - -If you have questions about using the IlmBase libraries, you may want -to join our developer mailing list. See http://www.openexr.com for -details. - -License -------- - -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. - -Building and Installation -------------------------- - -IlmBase includes support to build and install using either autoconf -"configure" scripts, or by using cmake, which tends to be safer to use -in multiple platform scenarios. - -#### Building using autoconf - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, the ``--prefix=`` option specifies a -directory into which to install the headers and libraries. By default, -headers and libraries are installed into ``/usr/local``. - -To build the libraries after running ``configure``: - - make - make install - -#### Building from Git - -If building directly from a cloned git repo, first generate the -configuration scripts by running ``bootstrap``, then ``configure`` and -``make``: - - cd /IlmBase - ./bootstrap - ./configure - make - make install - -Optionally, compiling from git using cmake, one can use the top level -CMakeLists.txt file to build all the libraries at once. - -#### Building on Windows using **cmake** - -To generate Visual Studio solution files and build the libraries: - -1. Launch a command window, navigate to the ``IlmBase`` folder containing - ``CMakeLists.txt``, and type the command: - - setlocal - del /f CMakeCache.txt - cmake -DCMAKE_INSTALL_PREFIX= - -G "Visual Studio 15 2017 Win64" - ..\ilmbase - - Note: The "15 2017" indicates the specific Visual Studio version; - if compiling for a different version, replace this with the proper - target version string. - -2. Navigate to ``IlmBase`` folder in Windows Explorer, open ``ILMBase.sln`` - and build the solution. When it builds successfully, right click - ``INSTALL project`` and build. It will install the output to the path - you set up at the previous step. - -3. Go to http://www.zlib.net and download zlib. - -4. Launch a command window, navigate to the ``OpenEXR`` folder containing - ``CMakeLists.txt``, and type the command: - - setlocal - del /f CMakeCache.txt - cmake - -DZLIB_ROOT= - -DILMBASE_PACKAGE_PREFIX= - -DCMAKE_INSTALL_PREFIX= - -G "Visual Studio 10 Win64" ^ - ..\openexr - -5. Navigate to ``OpenEXR`` folder in Windows Explorer, open - ``OpenEXR.sln`` and build the solution. When it builds - successfully, right click ``INSTALL project`` and build. It will - install the output to the path you set up at the previous step. - -#### Building on **macOS** - -**macOS** supports multiple architectures. By default, IlmBase will be -built for the system doing the building. For example, if you build -IlmBase on an Intel system, the libraries will be built for Intel. - -You can specify building for a different architecture, or multiple -architectures, by passing the ``--enable-osx-arch`` flag to -``configure``. Building for multiple architectures requires that -``--disable-dependency-tracking`` be passed as well. - -For example, to build for Intel and PowerPC: - - ./configure --enable-osx-arch="i386 ppc" --disable-dependency-tracking. - -To build "4-way universal" for 32-bit and 64-bit Intel and PowerPC: - - ./configure --enable-osx-arch="i386 ppc x86_64 ppc64" --disable-dependency-tracking. - -For more information on universal builds, see: - - http://developer.apple.com/documentation/Porting/Conceptual/PortingUNIX/compiling/chapter_4_section_3.html - -Earlier releases of **IlmBase** included an -``--enable-osx-universal-binaries`` switch, which specifies a two-way -universal build: Intel and PowerPC, 32-bit only. This is still -available, but deprecated in favor of the more flexible -``--enable-osx-arch`` and ``--enable-osx-sdk`` switches. - - -#### Choosing an SDK on macOS - -**macOS** allows you to specify one of several SDKs, or sysroots. This -allows you to target systems other than the system that your build -machine runs. - -For example, if you are building on Mac OS X 10.4, but you need access -to features that were introduced in Mac OS X 10.5, you can build -against the Mac OS X 10.5 versions of system libraries and headers. - -You can choose to build **IlmBase** with a specific SDK using the -``--enable-osx-sdk`` switch. For example: - - ./configure --enable-osx-sdk=MacOSX10.5.sdk - -If you are building on Mac OS X 10.4 and want to build universal, you -will need to specify the universal version of the 10.4 SDK: -MacOSX10.4u.sdk. Otherwise, you probably don't need to specify an SDK. - -For more information on sysroots, see: - - http://developer.apple.com/documentation/DeveloperTools/gcc-4.2.1/gcc/Directory-Options.html - -#### Header Installation Directory - -All include files needed to use the OpenEXR libraries are installed in the -``OpenEXR`` subdirectory of the install prefix, e.g. ``/usr/local/include/OpenEXR``. - -Namespaces ----------- - -The IlmBase libraries implement user-configurable namespaces, which -makes it possible to deal with multiple versions of these libraries -loaded at runtime. - -This is helpful when, say, a base application is built with OpenEXR -v1.7, but you need to write a plugin that requires functionality from -OpenEXR v2.0. By injecting the version number into the (mangled) -symbols, via the namespacing mechanism, and changing the soname, via -the build system, you can link the plugin against the v2.0 library. At -run time, the dynamic linker can load both the 1.7 and 2.0 versions of -the library since the library soname are different and the symbols are -different. - -When building IlmBase or OpenEXR the following configure script options -are available: - - ./configure --enable-namespaceversioning - -and - - ./configure --enable-customusernamespace - -#### Internal Library Namespace - -The ``--enable-namespaceversioning`` option controls the namespace -that is used in the library. Without an argument (see below) the -library will be built with a suffix made up of the major and minor -versions. For example, for version 2.0.0, the internal library -namespaces will be ``Imath_2_0``, ``Iex_2_0``, ``IlmThread_2_0`` etc - -For additional flexibility and control, this option can take an -additional argument in which case the internal library namespace will -be suffixed accordingly. - -For example: - - ./configure --enable-namespaceversioning=ILM - -will result in the namespaces of the type ``Imath_ILM``, ``Iex_ILM`` etc. - -This can be useful for completely isolating your local build. - -Code using the library should continue to use the namespace ``Imath``, -or for greater portability ``IMATH_NAMESPACE``, to refer to objects in -``libImath``. In particular, the explicit use of the internal -namespace is discouraged. This ensures that code will continue to -compile with customised or future versions of the library, which may -have a different internal namespace. - -Similarily, for other namespaces in the libraries: **Iex**, -**IlmThread** and **IlmImf**. - -Note that this scheme allows existing code to compile without -modifications, since the 'old' namespaces ``Imath``, ``Iex``, -``IlmThread`` and ``IlmImf`` continue to be available, albeit in a -slightly different form. - -This is achieved via the following, in the Imath case: - - namespace IMATH_INTERNAL_NAMESPACE {} - namespace IMATH_NAMESPACE - { - using namespace IMATH_INTERNAL_NAMESPACE; - } - -This is included in all header files in the **Imath** library and similar ones -are present for the libraries **Iex**, **IlmThread** and **IlmImf**. - -The only exception to this is where user code has forward declarations -of objects in the ``Imf`` namespace, as these will forward declare -symbols in an incorrect namespace - -These forward declarations should be removed, and replaced with: - - #include - -which forward-declares all types correctly. - -#### Public/User Library Namespace - -The ``--enable-customusernamespace`` option can override the namespace -into which will the internal namespace will be exported. This takes an -argument that sets the name of the custom user namespace. In the -example above, ``IMATH_NAMESPACE`` could be resolved into something -other than Imath, say ``Imath_MySpecialNamespace``. - -In nearly all cases, this will not be used as per the above discussion -regarding code compatibility. Its presence is to provide a mechanism -for not prohibiting the case when the application must pass objects -from two different versions of the library. - -Tests ------ +* **IlmThread** - a thread abstraction library for use with OpenEXR and +other software packages. It currently supports pthreads and Windows +threads. -Type: +In addition, the distribution also includes confidence test libaries: - make check +* **HalfTest** +* **IexTest** +* **ImathTest**. -to run the IlmBase confidence tests (HalfTest, IexTest, and -ImathTest). They should all pass; if you find a test that does not -pass on your system, please let us know. +## License -All include files needed to use the IlmBase libraries are installed in -the ``OpenEXR`` subdirectory of the install prefix, -e.g. ``/usr/local/include/OpenEXR``. +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. +## Building and Installation -Using IlmBase in Your Applications ----------------------------------- +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries. -On systems with support for **pkg-config**, use ``pkg-config --cflags -IlmBase`` for the C++ flags required to compile against IlmBase -headers; and ``pkg-config --libs IlmBase`` for the linker flags -required to link against IlmBase libraries. diff --git a/PyIlmBase/ChangeLog b/PyIlmBase/ChangeLog deleted file mode 100644 index 1dd4facc..00000000 --- a/PyIlmBase/ChangeLog +++ /dev/null @@ -1,10 +0,0 @@ -Version 2.0.1 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.0 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 1.0: - * first official release. diff --git a/PyIlmBase/LICENSE b/PyIlmBase/LICENSE deleted file mode 100644 index 4494aa5a..00000000 --- a/PyIlmBase/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006-2011, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above - copyright notice, this list of conditions and the following - disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with - the distribution. - - * Neither the name of Industrial Light & Magic nor the names of - any other contributors to this software may be used to endorse or - promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/PyIlmBase/README.md b/PyIlmBase/README.md index 8804cd51..d88c4512 100644 --- a/PyIlmBase/README.md +++ b/PyIlmBase/README.md @@ -1,5 +1,4 @@ -The PyIlmBase Libraries -======================= +# The PyIlmBase Libraries The PyIlmBase libraries provides python bindings for the IlmBase libraries: @@ -8,21 +7,13 @@ libraries: * **PyImath** - bindings for Imath * **PyImathNumpy** - bindings that convert between numpy and Imath arrays +In addition, the distribution also includes confidence tests: -If you have questions about using the PyIlmBase libraries, you may want -to join our developer mailing list. See http://www.openexr.com for -details. +* **PyIexTest** +* **PyImathTest** +* **PyImathNumpyTest** - -License -------- - -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. - -Dependencies ------------- +## Dependencies PyIlmBase requires **numpy** to be available to the builder. Install with your favorite package manager or use a Python virtualenv: @@ -31,69 +22,15 @@ your favorite package manager or use a Python virtualenv: source numpy/bin/activate pip install numpy -PyIlmBase also requires [boost-python](https://github.com/boostorg/python). - -Building and Installation -------------------------- - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, arguments of note include: - -* ``--prefix=`` - a directory into which - to install the headers and libraries. By default, headers and - libraries are installed into ``/usr/local``. - -* ``--with-ilmbase-prefix=`` - the direction - into which the IlmBase headers and libraries have been installed, if - not ``/usr/local``. - -* ``--with-boost-include-dir``, ``--with-boost-lib-dir`` - location of - the boost installation. - -With recent versions of macOS, System Integrity Protection (SIP) is enabled by -default. This restricts where third party libraries can be loaded from and inhibits -the use of DYLD_LIBRRARY_PATH to include other directories in the search path. -If you are encountering an issue where boost_python is not being found during the -configure process even after specifying the correct --with-boost-\* directories and -boost is installed to a directory other than /usr/local, reinstall boost and IlmBase -to /usr/local and use them from that location. install_name_tool -change may also -be used to rewrite library references to use absolute paths if installation in a -different directory is required, however this is not currently performed by the -build system and must be done manually to all the libraries and python modules. - -To build the libraries after running ``configure``: - - make - make install - -#### Building from Git - -If building directly from a cloned git repo, first generate the -configuration scripts by running ``bootstrap``, then ``configure`` and -``make``: - - cd /IlmBase - ./bootstrap - ./configure - make - make install - -Tests ------ +## License -Type: +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. - make check +## Building and Installation -to run the PyIlmBase confidence tests (PyIexTest, PyImathTest, -PyImathNumpyTest). They should all pass; if you find a test that does -not pass on your system, please let us know. +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries.