Installation¶
The project does not currently provide pre-built binary releases. Users must build the project from source on their local system. The project is built as a Python package with native applications and extension modules written in C/C++.
The following instructions will help the user build and install the package into
their local Python environment as a pip
package. The package build system
leverages scikit-build
and CMake to compile native C/C++ elements and deploy
them alongside pure Python modules in the final package.
Prerequisites¶
The project is currently tested for use on Linux x86-64 target systems.
See Third-Party Dependencies for a list of third-party libraries that must be installed on the local system in order to build the project. They can be managed using the system package manager (
apt
on Ubuntu,yum
on CentOS, etc.) or with a C/C++ package management framework—the package maintainers at NASA develop and test using vcpkg. If usingvcpkg
, the dependencies will likely not be in a default system folder and so the following environment variables should be set to point the build system at the CMake toolchain file provided by yourvcpkg
install:#!/bin/bash export SKBUILD_CONFIGURE_OPTIONS=" -DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
Python must be installed on the local system (3.7+), ideally inside a virtual environment.
We require
pip>=22.3.1
. To upgrade, you can runpip install --upgrade pip
.
Obtaining source code¶
You can clone the repository from (TODO), or download the latest source code archive from (TODO).
Build and install¶
Navigate to the source code folder tree and run
pip install -v .
This will build the upsp
package and install it in your Python environment. Several executable
entrypoints will be available in your local Python environment bin
folder after install.
To check successful install, you can run psp_process -h
to display its application usage, and run
python -c "import upsp.raycast; import pydoc; print(pydoc.render_doc(upsp.raycast.BVH))"
to display
the Python API usage statement for one of the upsp
C/C++ Python extension modules.
Unit Tests¶
Unit tests for C/C++ modules are written with Google Test and are built as part of the packaging process.
After running
pip install
, you should have a local folder called_skbuild
that caches the results of the build, for example,_skbuild/linux-x86_64-3.9/cmake-build
Navigate to
cpp/test
and then run../../_skbuild/linux-x86_64-3.9/cmake-build/run_tests
(Some unit tests rely on relative paths to test data located incpp/test
).