diff --git a/CMakeLists.txt b/CMakeLists.txt index e3bd6dd6c..1bc85a416 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ cmake_dependent_option( "${BUILD_TESTING}" OFF ) option(USE_DOXYGEN "Build HTML cross reference with doxygen" OFF) +option(USE_GPM "Enable libgpm console mouse support" OFF) option(USE_PANDOC "Build man pages and HTML reference with pandoc" ON) option(USE_POC "Build small, uninstalled proof-of-concept binaries" ON) option(USE_QRCODEGEN "Enable libqrcodegen QR code support" OFF) @@ -145,6 +146,16 @@ endif() find_library(unistring unistring REQUIRED) set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND libunistring) set_package_properties(libunistring PROPERTIES TYPE REQUIRED) +if(${USE_GPM}) # no pkgconfig from gpm +unset(HAVE_GPM_H CACHE) +check_include_file("gpm.h" HAVE_GPM_H) +if(NOT "${HAVE_GPM_H}") + message(FATAL_ERROR "Couldn't find gpm.h from libgpm") +endif() +find_library(gpm gpm REQUIRED) +set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND libgpm) +set_package_properties(libgpm PROPERTIES TYPE REQUIRED) +endif() unset(HAVE_QRCODEGEN_H CACHE) if("${USE_QRCODEGEN}") check_include_file("qrcodegen/qrcodegen.h" HAVE_QRCODEGEN_H) diff --git a/INSTALL.md b/INSTALL.md index 8807bb48b..15dcb50e9 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -12,7 +12,7 @@ prepackaged on many distributions. Otherwise, acquire the current source via Install build dependencies: -`apt-get install build-essential cmake doctest-dev zlib1g-dev libavformat-dev libavutil-dev libncurses-dev libreadline-dev libqrcodegen-dev libswscale-dev libunistring-dev pandoc pkg-config` +`apt-get install build-essential cmake doctest-dev zlib1g-dev libavformat-dev libavutil-dev libgpm-dev libncurses-dev libreadline-dev libqrcodegen-dev libswscale-dev libunistring-dev pandoc pkg-config` If you only intend to build core Notcurses (without multimedia support), you can omit `libavformat-dev`, `libavutil-dev`, and `libswscale-dev` from this @@ -30,7 +30,7 @@ If you want to build the Rust wrappers, you'll also need: Install build dependencies: -`dnf install cmake doctest-devel zlib-devel ncurses-devel readline-devel libqrcodegen-devel libunistring-devel OpenImageIO-devel pandoc` +`dnf install cmake doctest-devel zlib-devel ncurses-devel gpm-devel readline-devel libqrcodegen-devel libunistring-devel OpenImageIO-devel pandoc` If you only intend to build core Notcurses (without multimedia support), you can omit `OpenImageIO-devel`. If you're building outside Fedora Core (e.g. with @@ -109,6 +109,7 @@ but must be `Debug` for use of `USE_COVERAGE`. * `USE_COVERAGE`: build coverage support (for developers, requires use of Clang) * `USE_DOCTEST`: build `notcurses-tester` with Doctest, requires `BUILD_TESTING` * `USE_DOXYGEN`: build interlinked HTML documentation with Doxygen +* `USE_GPM`: build GPM console mouse support via libgpm * `USE_MULTIMEDIA`: `ffmpeg` for FFmpeg, `oiio` for OpenImageIO, `none` for none * `USE_PANDOC`: build man pages with pandoc * `USE_POC`: build small, uninstalled proof-of-concept binaries diff --git a/README.md b/README.md index c9d91fe2d..558873c3a 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ may well be possible to use still older versions. Let me know of any successes! * (OPTIONAL) (OpenImageIO, testing, C++ bindings): A C++17 compiler * (build+runtime) From [NCURSES](https://invisible-island.net/ncurses/announce.html): terminfo 6.1+ * (build+runtime) GNU [libunistring](https://www.gnu.org/software/libunistring/) 0.9.10+ +* (OPTIONAL) (build+runtime) [libgpm](https://www.nico.schottelius.org/software/gpm/) 1.20+ * (OPTIONAL) (build+runtime) GNU [Readline](https://www.gnu.org/software/readline/) 8.0+ * (OPTIONAL) (build+runtime) From QR-Code-generator: [libqrcodegen](https://github.com/nayuki/QR-Code-generator) 1.5.0+ * (OPTIONAL) (build+runtime) From [FFmpeg](https://www.ffmpeg.org/): libswscale 5.0+, libavformat 57.0+, libavutil 56.0+