Tiny OpenEXR image loader/saver library
This project builds and defines the build2 package for tinyexr
.
It is a small, single-header-only library to load and save OpenEXR (.exr) images, that is written in portable C++ (no library dependency except for STL).
Usage
Make sure to add the stable section of the cppget.org
repository to your project's repositories.manifest
to be able to fetch this package.
:
role: prerequisite
location: https://pkg.cppget.org/1/stable
# trust: ...
If the stable section of cppget.org
is not an option then add this Git repository itself instead as a prerequisite.
:
role: prerequisite
location: https://github.com/build2-packaging/tinyexr.git
Add the respective dependency in your project's manifest
file to make the package available for import.
depends: libtinyexr ^1.0.8
The library can be imported by the following declaration in a buildfile
.
import tinyexr = libtinyexr%lib{tinyexr}
Configuration
There are no configuration options available.
Issues and Notes
- The test data in the
libtinyexr-tests
package is more than 240 MiB in size and, as a consequence, not publishable oncppget.org
because it is too large. Thus, it is not declared as the mandatory external tests package oflibtinyexr
. It can and should still be used for local testing and for CI runs. - By using the macros
TINYEXR_USE_THREAD
orTINYEXR_USE_OPENMP
,tinyexr
is able to support multithreading by either using C++11 threads or OpenMP. Please note that the package's build system is not automatically adding dependencies and flags forpthread
or OpenMP. - Currently, the configuration of dependencies for
tinyexr
is not handled by the package's build system.tinyexr
usesminiz
by default and it does not provide specific tests for other configurations. Furthermore, support forzlib
andstb
's implementation ofzlib
only seems to be useful when usingtinyexr
without a build system as drop-in header file. So, for now, please refrain from using the following macros.TINYEXR_USE_MINIZ
TINYEXR_USE_STB_ZLIB
tinyexr
adds ZFP compression only as an experimental support on Linux and MacOS. Currently, it is not supported by the packgage's build system. Hence, please, refrain from using the following macro.TINYEXR_USE_ZFP
- The compilation of the tests package
libtinyexr-tests
is not supported on target configurationswindows*-clang**
due to the wrong encoding ofwin32-filelist-utf16le.inc
. Presumably, this will not be fixed as it is an upstream issue. Please note that the compilation and execution of the basic tests still works on these configurations. Thus, the library should work without flaws on those platforms. - For Windows, the file
'日本語.exr'
and the testutf8filename
had to be removed from distribution and execution, respectively. Please, see this issue for more information. - Emscripten is not supported.
- The examples are not supported by the package's build system, yet.
- For now, the fuzzers are not compiled and run.
Contributing
Thanks in advance for your help and contribution to keep this package up-to-date. For now, please, file an issue on GitHub for everything that is not described below.
Recommend Updating Version
Please, file an issue on GitHub with the new recommended version.
Update Version by Pull Request
- Fork the repository on GitHub and clone it to your local machine.
- Run
git submodule init
andgit submodule update
to get the current upstream directory. - Inside the
upstream
directory, checkout the new library versionX.Y.Z
by callinggit checkout vX.Y.Z
that you want to be packaged. - If needed, change source files,
buildfiles
, and symbolic links accordingly to create a working build2 package. Make sure not to directly depend on the upstream directory inside the build system but use symbolic links instead. - Update library version in
manifest
file if it has changed or add package update by using+n
for then
-th update. - Make an appropriate commit message by using imperative mood and a capital letter at the start and push the new commit to the
master
branch. - Run
bdep ci
and test for errors. - If everything works fine, make a pull request on GitHub and write down the
bdep ci
link to your CI tests. - After a successful pull request, we will run the appropriate commands to publish a new package version.
Update Version Directly if You Have Permissions
- Inside the
upstream
directory, checkout the new library versionX.Y.Z
by callinggit checkout vX.Y.Z
that you want to be packaged. - If needed, change source files,
buildfiles
, and symbolic links accordingly to create a working build2 package. Make sure not to directly depend on the upstream directory inside the build system but use symbolic links instead. - Update library version in
manifest
file if it has changed or add package update by using+n
for then
-th update. - Make an appropriate commit message by using imperative mood and a capital letter at the start and push the new commit to the
master
branch. - Run
bdep ci
and test for errors and warnings. - When successful, run
bdep release --tag --push
to push new tag version to repository. - Run
bdep publish -d libtinyexr/
to publish the package to cppget.org.
license | BSD-3-Clause |
---|---|
project | tinyexr |
url | github.com/syoyo/tinyexr |
doc-url | github.com/syoyo/tinyexr |
src-url | github.com/syoyo/tinyexr |
syoyo@lighttransport.com |
version | 1.0.8 |
---|---|
repository | https://pkg.cppget.org/1/stable |
depends | 1; libminiz |
version | 1.0.7 |
---|---|
repository | https://pkg.cppget.org/1/stable |
depends | 1; libminiz |
version | 1.0.6+1 |
---|---|
repository | https://pkg.cppget.org/1/stable |
depends | 1; libminiz |