cmake: results to bin & lib dirs
1 file changed
tree: a338748ddf1b3952441d6b65db52f66ca5ff2621
  1. ext/
  2. kms++/
  3. kms++util/
  4. kmscube/
  5. py/
  6. utils/
  7. .gitignore
  8. .gitmodules
  9. CMakeLists.txt
  10. LICENSE
  11. README.md
  12. TODO
README.md

kms++ - C++ library for kernel mode setting

kms++ is a C++11 library for kernel mode setting.

Also included are some simple utilities for KMS and python bindings for kms++.

Utilities

  • testpat - set modes and planes and show test pattern on crtcs/planes, and test page flips
  • kmsprint - print information about DRM objects
  • kmsview - view raw images
  • kmscube - rotating 3D cube on crtcs/planes
  • kmscapture - show captured frames from a camera on screen

Dependencies:

  • libdrm
  • Python 3.x (for python bindings)

Build instructions:

To build the Python bindings you need to set up the git-submodule for pybind11:

git submodule update --init

And to compile:

$ mkdir build
$ cd build
$ cmake ..
$ make -j4

Cross compiling instructions:

Directions for cross compiling depend on your environment.

These are for mine with buildroot:

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=<buildrootpath>/output/host/usr/share/buildroot/toolchainfile.cmake ..
$ make -j4

Build options

You can use the following cmake flags to control the build. Use -DFLAG=VALUE to set them.

Option nameValuesDefaultNotes
CMAKE_BUILD_TYPERelease/DebugRelease
BUILD_SHARED_LIBSON/OFFOFF
KMSXX_ENABLE_PYTHONON/OFFON
KMSXX_ENABLE_KMSCUBE  ON/OFFOFF

Env variables

You can use the following runtime environmental variables to control the behavior of kms++.

VariableDescription
KMSXX_DISABLE_UNIVERSAL_PLANESSet to disable the use of universal planes
KMSXX_DISABLE_ATOMICSet to disable the use of atomic modesetting