C++ library for processing and visualizing polygon surface meshes; Visualization Module
This project is a build2 package repository that provides access to pmp-library
, a modern C++ open-source library for processing and visualizing polygon surface meshes.
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/pmp-library.git
Add the respective dependency in your project's manifest
file to make the required packages available for import.
The libpmp-vis
package requires libpmp
package as its core module and adds the visualization features to the standard mesh processing facilities.
depends: libpmp ^3.0.0
depends: libpmp-vis ^3.0.0
To import the respective library targets include one of the following declarations in a buildfile
.
import pmp = libpmp%lib{pmp}
import pmp_vis = libpmp-vis%lib{pmp-vis}
Configuration
There are no configuration options available.
Issues and Notes
- Naming Scheme:
- Repository Name: Same as the upstream repository:
pmp-library
- Project Name: Same as the upstream repository and the project name given in the upstream CMake file:
pmp-library
- Library Name: To be consistent with programming practices, we wanted the library name to be the name of the upstream include folder:
lib{pmp}
- Package Name: According to the recommended build2 practices, the respective library package gets the prefix
lib
and its name becomeslibpmp
. - Similar for
lib{pmp-vis}
in packagelibpmp-vis
- Repository Name: Same as the upstream repository:
- For
aarch64-linux-gnu
targets using GCC theloop_subdivision
tests of thelibpmp
package fail withterminate called after throwing an instance of 'pmp::InvalidInputException'
andwhat(): loop_subdivision: Not a triangle mesh.
. This is an upstream issue and is probably already fixed for the next version. - The package
libpmp-vis
fails on various CI configurations due to the required OpenGL-based libraries, like GLFW and GLEW. - Library
lib{pmp}
fromlibpmp
package exports_USE_MATH_DEFINES
andNOMINMAX
macros on Windows to properly function. pmp-library
supports OpenMP. Enabling OpenMP in the compile options of your configuration will also compile the library with its builtin parallelization.pmp-library
supports 64-bit scalars and index types when the macrosPMP_SCALAR_TYPE_64
andPMP_INDEX_TYPE_64
are used for compilation (and probably export as well). Currently, this is not supported in the package.pmp-library
supports Emscripten. Most of the required upstream options have not been added to the package so far.
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
to publish the package to cppget.org.
license | MIT |
---|---|
project | pmp-library |
url | www.pmp-library.org/ |
doc-url | www.pmp-library.org/ |
src-url | github.com/pmp-library/pmp-library |
version | 3.0.0 |
---|---|
repository | https://pkg.cppget.org/1/queue/testing |
depends | 6; libpmp, stb_image, stb_image_write, glew, libimgui-render-opengl3, libimgui-platform-glfw |