[Buildroot] [PATCH v2 1/1] package/kmsxx: bump to latest
Tomi Valkeinen
tomi.valkeinen at iki.fi
Wed Oct 21 08:20:12 UTC 2020
kms++ is moving to meson build system and there has been plenty of
changes since the last version bump, so lets update the buildroot
package.
We can drop the "0001-fix-compiler-errors-with-gcc-10.patch" as that is
no longer needed.
The manual install stuff in kmsxx.mk goes away, as the meson build files
handle them.
kms++ has two git submodules, fmt and pybind11, so we need to change the
site method to git:// to enable submodules.
The python bindings can now also be enabled with a config option.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen at iki.fi>
---
Another try:
* With config options for building the utilities and the python bindings
* Fixed the site method
...0001-fix-compiler-errors-with-gcc-10.patch | 35 -----------
package/kmsxx/Config.in | 32 +++++++---
package/kmsxx/kmsxx.hash | 4 +-
package/kmsxx/kmsxx.mk | 61 +++++--------------
4 files changed, 39 insertions(+), 93 deletions(-)
delete mode 100644 package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
diff --git a/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch b/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
deleted file mode 100644
index 6ec080af97..0000000000
--- a/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From aa54634ce7cbbfc844de945e73a9f34cdcb9bb12 Mon Sep 17 00:00:00 2001
-From: Peter Trompeter <christoph at zen.fritz.box>
-Date: Fri, 15 May 2020 15:20:47 +0200
-Subject: [PATCH] fix compiler errors with gcc 10
-
-[Retrieved from:
-https://github.com/tomba/kmsxx/commit/aa54634ce7cbbfc844de945e73a9f34cdcb9bb12]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
----
- kms++/inc/kms++/pixelformats.h | 1 +
- kms++util/src/opts.cpp | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/kms++/inc/kms++/pixelformats.h b/kms++/inc/kms++/pixelformats.h
-index 784717d..4e73d5d 100644
---- a/kms++/inc/kms++/pixelformats.h
-+++ b/kms++/inc/kms++/pixelformats.h
-@@ -2,6 +2,7 @@
-
- #include <cstdint>
- #include <string>
-+#include <stdexcept>
-
- namespace kms
- {
-diff --git a/kms++util/src/opts.cpp b/kms++util/src/opts.cpp
-index afef452..5a14b84 100644
---- a/kms++util/src/opts.cpp
-+++ b/kms++util/src/opts.cpp
-@@ -1,4 +1,5 @@
- #include <algorithm>
-+#include <stdexcept>
-
- #include <unistd.h>
- #include <getopt.h>
diff --git a/package/kmsxx/Config.in b/package/kmsxx/Config.in
index 1d174c18b1..0b3013a171 100644
--- a/package/kmsxx/Config.in
+++ b/package/kmsxx/Config.in
@@ -1,12 +1,13 @@
config BR2_PACKAGE_KMSXX
bool "kms++"
- depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
select BR2_PACKAGE_LIBDRM
help
- libkms++ is a C++11 library for kernel mode setting.
+ libkms++ is a C++17 library for kernel mode setting with Python
+ bindings.
Also included are simple test tools for KMS.
@@ -14,13 +15,26 @@ config BR2_PACKAGE_KMSXX
if BR2_PACKAGE_KMSXX
-config BR2_PACKAGE_KMSXX_INSTALL_TESTS
- bool "Install test programs"
+config BR2_PACKAGE_KMSXX_UTILS
+ bool "Install kms++utils library and utilities"
+ default y
help
- This option allows to install the kmsxx test programs.
+ This option installs the kms++ utilities.
+
+config BR2_PACKAGE_KMSXX_PYTHON
+ bool "Install kms++ python bindings"
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6
+ depends on !BR2_PACKAGE_PYTHON # python3
+ depends on BR2_USE_WCHAR # python3
+ depends on BR2_TOOLCHAIN_HAS_THREADS # python3
+ depends on BR2_USE_MMU # python3
+ depends on !BR2_STATIC_LIBS # python3
+ select BR2_PACKAGE_PYTHON3
+ help
+ This option installs the kms++ python bindings.
endif
-comment "kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 3.8"
- depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
- !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
+comment "kms++ needs a toolchain w/ threads, C++, gcc >= 5, headers >= 4.10"
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
+ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
diff --git a/package/kmsxx/kmsxx.hash b/package/kmsxx/kmsxx.hash
index b8d06ac478..4fd0bc8347 100644
--- a/package/kmsxx/kmsxx.hash
+++ b/package/kmsxx/kmsxx.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 28892e50c1d1c83fddff9ec683e3bdbd465f5032d0014ceeab43563b813807e1 kmsxx-cb0786049f960f2bd383617151b01318e02e9ff9.tar.gz
-sha256 022b4d51da34a380d74dc24eea8e2c4e1a4c8776a52171f8d9e941cf56daf888 LICENSE
+sha256 f3e036384ab559670e97ae79d1a504c752b9b3cea71a1d3528230ef9f5f36fee kmsxx-084ff3c55cce8bcba7099565b334fa4c88fd9df7.tar.gz
+sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE
diff --git a/package/kmsxx/kmsxx.mk b/package/kmsxx/kmsxx.mk
index 829beb1d68..d1feb7f370 100644
--- a/package/kmsxx/kmsxx.mk
+++ b/package/kmsxx/kmsxx.mk
@@ -4,62 +4,29 @@
#
################################################################################
-KMSXX_VERSION = cb0786049f960f2bd383617151b01318e02e9ff9
-KMSXX_SITE = $(call github,tomba,kmsxx,$(KMSXX_VERSION))
+KMSXX_VERSION = 084ff3c55cce8bcba7099565b334fa4c88fd9df7
+KMSXX_SITE = git://github.com/tomba/kmsxx.git
+KMSXX_GIT_SUBMODULES=YES
KMSXX_LICENSE = MPL-2.0
KMSXX_LICENSE_FILES = LICENSE
KMSXX_INSTALL_STAGING = YES
KMSXX_DEPENDENCIES = libdrm host-pkgconf
-KMSXX_CONF_OPTS = -DKMSXX_ENABLE_PYTHON=OFF
-
-KMSXX_CXXFLAGS = $(TARGET_CXXFLAGS)
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
KMSXX_CXXFLAGS += -O0
endif
-KMSXX_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(KMSXX_CXXFLAGS)"
-
-ifeq ($(BR2_PACKAGE_KMSXX_INSTALL_TESTS),y)
-KMSXX_TESTS = \
- fbtest kmsblank kmscapture \
- kmsprint kmstest kmsview wbcap \
- wbm2m
-
-define KMSXX_INSTALL_TARGET_TESTS
- $(foreach t,$(KMSXX_TESTS),\
- $(INSTALL) -D -m 0755 $(@D)/bin/$(t) \
- $(TARGET_DIR)/usr/bin/$(t)
- )
-endef
+ifeq ($(BR2_PACKAGE_KMSXX_UTILS),y)
+KMSXX_CONF_OPTS += -Dutils=true
+else
+KMSXX_CONF_OPTS += -Dutils=false
endif
-KMSXX_LIBS = kms++ kms++util
-
-define KMSXX_INSTALL_TARGET_CMDS
- $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),
- $(foreach l,$(KMSXX_LIBS),\
- $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \
- $(TARGET_DIR)/usr/lib/lib$(l).so
- )
- )
- $(KMSXX_INSTALL_TARGET_TESTS)
-endef
-
-# kmsxx only builds shared or static libraries, so when
-# BR2_SHARED_STATIC_LIBS=y, we don't have any static library to
-# install
-define KMSXX_INSTALL_STAGING_CMDS
- $(foreach l,$(KMSXX_LIBS),\
- $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),
- $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \
- $(STAGING_DIR)/usr/lib/lib$(l).so)
- $(if $(BR2_STATIC_LIBS),
- $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).a \
- $(STAGING_DIR)/usr/lib/lib$(l).a)
- mkdir -p $(STAGING_DIR)/usr/include/$(l)
- cp -dpfr $(@D)/$(l)/inc/$(l)/* $(STAGING_DIR)/usr/include/$(l)/
- )
-endef
+ifeq ($(BR2_PACKAGE_KMSXX_PYTHON),y)
+KMSXX_CONF_OPTS += -Dpykms=enabled
+KMSXX_DEPENDENCIES += python3
+else
+KMSXX_CONF_OPTS += -Dpykms=disabled
+endif
-$(eval $(cmake-package))
+$(eval $(meson-package))
--
2.25.1
More information about the buildroot
mailing list