Files
main/programming/library/libwpe/files/0447b7a.patch
T
2021-02-28 16:24:58 +03:00

375 lines
12 KiB
Diff

diff -Nuar a/cmake/VersioningUtils.cmake b/cmake/VersioningUtils.cmake
--- a/cmake/VersioningUtils.cmake 2021-01-18 17:40:23.000000000 +0300
+++ b/cmake/VersioningUtils.cmake 2021-02-28 16:01:31.749319740 +0300
@@ -1,3 +1,12 @@
+function(READ_VERSION_HEADER var_prefix def_regex file_path)
+ file(STRINGS "${file_path}" lines)
+ foreach (line ${lines})
+ if (line MATCHES "^#define[ \t]+(${def_regex})[ \t]+([0-9]+)$")
+ set("${var_prefix}${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}" PARENT_SCOPE)
+ endif()
+ endforeach()
+endfunction()
+
macro(SET_PROJECT_VERSION major minor micro)
set(PROJECT_VERSION_MAJOR "${major}")
set(PROJECT_VERSION_MINOR "${minor}")
diff -Nuar a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2021-01-18 17:40:23.000000000 +0300
+++ b/CMakeLists.txt 2021-02-28 16:01:00.215322016 +0300
@@ -4,7 +4,8 @@
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(VersioningUtils)
-SET_PROJECT_VERSION(1 9 1)
+READ_VERSION_HEADER("" "WPE_[A-Z]+_VERSION" "${CMAKE_SOURCE_DIR}/include/wpe/libwpe-version.h")
+SET_PROJECT_VERSION(${WPE_MAJOR_VERSION} ${WPE_MINOR_VERSION} ${WPE_MICRO_VERSION})
set(WPE_API_VERSION "1.0")
# Before making a release, the LT_VERSION string should be modified.
@@ -41,10 +42,6 @@
endif ()
endforeach ()
-set(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources/wpe")
-configure_file(include/wpe/version.h.cmake ${DERIVED_SOURCES_DIR}/version.h @ONLY)
-configure_file(include/wpe/version-deprecated.h.cmake ${DERIVED_SOURCES_DIR}/version-deprecated.h @ONLY)
-
include(DistTargets)
include(GNUInstallDirs)
@@ -52,8 +49,9 @@
find_package(Libxkbcommon REQUIRED)
set(WPE_PUBLIC_HEADERS
- ${DERIVED_SOURCES_DIR}/version.h
- ${DERIVED_SOURCES_DIR}/version-deprecated.h
+ include/wpe/libwpe-version.h
+ include/wpe/version.h
+ include/wpe/version-deprecated.h
include/wpe/export.h
include/wpe/input.h
include/wpe/keysyms.h
@@ -81,7 +79,6 @@
target_include_directories(wpe PRIVATE
"include"
"src"
- ${DERIVED_SOURCES_DIR}/..
$<TARGET_PROPERTY:GL::egl,INTERFACE_INCLUDE_DIRECTORIES>
)
target_compile_definitions(wpe PRIVATE
@@ -145,10 +142,8 @@
--sitemap=${CMAKE_SOURCE_DIR}/docs/sitemap.txt
--output=${CMAKE_CURRENT_BINARY_DIR}/Documentation/
--c-sources "${CMAKE_SOURCE_DIR}/include/wpe/*.h"
- "${DERIVED_SOURCES_DIR}/version.h"
- "${DERIVED_SOURCES_DIR}/version-deprecated.h"
--extra-c-flags=-DWPE_COMPILATION=1
- --c-include-directories ${CMAKE_SOURCE_DIR}/include ${DERIVED_SOURCES_DIR}
+ --c-include-directories ${CMAKE_SOURCE_DIR}/include
--c-smart-index
)
ELSE()
diff -Nuar a/include/wpe/libwpe-version.h b/include/wpe/libwpe-version.h
--- a/include/wpe/libwpe-version.h 1970-01-01 02:00:00.000000000 +0200
+++ b/include/wpe/libwpe-version.h 2021-02-28 16:01:59.205317759 +0300
@@ -0,0 +1,15 @@
+/*
+ * libwpe-version.h
+ * Copyright (C) 2021 Adrian Perez de Castro <aperez@igalia.com>
+ *
+ * Distributed under terms of the MIT license.
+ */
+
+#ifndef LIBWPE_VERSION_H
+#define LIBWPE_VERSION_H
+
+#define WPE_MAJOR_VERSION 1
+#define WPE_MINOR_VERSION 9
+#define WPE_MICRO_VERSION 1
+
+#endif /* !LIBWPE_VERSION_H */
diff -Nuar a/include/wpe/meson.build b/include/wpe/meson.build
--- a/include/wpe/meson.build 2021-01-18 17:40:23.000000000 +0300
+++ b/include/wpe/meson.build 2021-02-28 16:02:31.313315442 +0300
@@ -2,27 +2,17 @@
'export.h',
'input.h',
'keysyms.h',
+ 'libwpe-version.h',
'loader.h',
'pasteboard.h',
'renderer-backend-egl.h',
'renderer-host.h',
+ 'version.h',
+ 'version-deprecated.h',
'view-backend.h',
'wpe-egl.h',
'wpe.h',
-
- # Generated API headers.
- configure_file(
- input: 'version.h.cmake',
- output: 'version.h',
- configuration: version_info,
- ),
- configure_file(
- input: 'version-deprecated.h.cmake',
- output: 'version-deprecated.h',
- configuration: version_info,
- ),
]
install_headers(api_headers,
subdir: join_paths('wpe-' + api_version, 'wpe'),
)
-
diff -Nuar a/include/wpe/version-deprecated.h b/include/wpe/version-deprecated.h
--- a/include/wpe/version-deprecated.h 1970-01-01 02:00:00.000000000 +0200
+++ b/include/wpe/version-deprecated.h 2021-02-28 16:02:59.227313428 +0300
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2018 Igalia S.L.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !defined(__WPE_H_INSIDE__) && !defined(WPE_COMPILATION)
+#error "Only <wpe/wpe.h> can be included directly."
+#endif
+
+#ifndef wpe_version_deprecated_h
+#define wpe_version_deprecated_h
+
+#if defined(WPE_COMPILATION)
+#include "export.h"
+#endif
+
+#include "libwpe-version.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WPE_BACKEND_MAJOR_VERSION WPE_MAJOR_VERSION
+#define WPE_BACKEND_MINOR_VERSION WPE_MINOR_VERSION
+#define WPE_BACKEND_MICRO_VERSION WPE_MICRO_VERSION
+
+#define WPE_BACKEND_CHECK_VERSION(major, minor, micro) \
+ (WPE_BACKEND_MAJOR_VERSION > (major) || \
+ (WPE_BACKEND_MAJOR_VERSION == (major) && WPE_BACKEND_MINOR_VERSION > (minor)) || \
+ (WPE_BACKEND_MAJOR_VERSION == (major) && WPE_BACKEND_MINOR_VERSION == (minor) && \
+ WPE_BACKEND_MICRO_VERSION >= (micro)))
+
+/**
+ * wpe_backend_get_major_version:
+ *
+ * Returns: Major version of the `libwpe` library.
+ *
+ * Deprecated: Since `libwpe` version 1.0.0, use wpe_get_major_version()
+ * instead.
+ */
+WPE_EXPORT unsigned wpe_backend_get_major_version(void);
+
+/**
+ * wpe_backend_get_minor_version:
+ *
+ * Returns: Minor version of the `libwpe` library.
+ *
+ * Deprecated: Since `libwpe` version 1.0.0, use wpe_get_minor_version()
+ * instead.
+ */
+WPE_EXPORT unsigned wpe_backend_get_minor_version(void);
+
+/**
+ * wpe_backend_get_micro_version:
+ *
+ * Returns: Micro version of the `libwpe` library.
+ *
+ * Deprecated: Since `libwpe` version 1.0.0, use wpe_get_micro_version()
+ * instead.
+ */
+WPE_EXPORT unsigned wpe_backend_get_micro_version(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* wpe_version_deprecated_h */
diff -Nuar a/include/wpe/version.h b/include/wpe/version.h
--- a/include/wpe/version.h 1970-01-01 02:00:00.000000000 +0200
+++ b/include/wpe/version.h 2021-02-28 16:03:30.351311182 +0300
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2018 Igalia S.L.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !defined(__WPE_H_INSIDE__) && !defined(WPE_COMPILATION)
+#error "Only <wpe/wpe.h> can be included directly."
+#endif
+
+#ifndef wpe_version_h
+#define wpe_version_h
+
+/**
+ * SECTION:version
+ * @short_description: Library Version
+ * @title: Version
+ * @symbols:
+ * - wpe_backend_get_major_version
+ * - wpe_backend_get_minor_version
+ * - wpe_backend_get_micro_version
+ */
+
+#if defined(WPE_COMPILATION)
+#include "export.h"
+#endif
+
+#include "libwpe-version.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WPE_CHECK_VERSION(major, minor, micro) \
+ (WPE_MAJOR_VERSION > (major) || \
+ (WPE_MAJOR_VERSION == (major) && WPE_MINOR_VERSION > (minor)) || \
+ (WPE_MAJOR_VERSION == (major) && WPE_MINOR_VERSION == (minor) && \
+ WPE_MICRO_VERSION >= (micro)))
+
+/**
+ * wpe_get_major_version:
+ *
+ * Returns: Major version of the `libwpe` library.
+ */
+WPE_EXPORT unsigned wpe_get_major_version(void);
+
+/**
+ * wpe_get_minor_version:
+ *
+ * Returns: Minor version of the `libwpe` library.
+ */
+WPE_EXPORT unsigned wpe_get_minor_version(void);
+
+/**
+ * wpe_get_micro_version:
+ *
+ * Returns: Micro version of the `libwpe` library.
+ */
+WPE_EXPORT unsigned wpe_get_micro_version(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* wpe_version_h */
diff -Nuar a/include/wpe/wpe.h b/include/wpe/wpe.h
--- a/include/wpe/wpe.h 2021-01-18 17:40:23.000000000 +0300
+++ b/include/wpe/wpe.h 2021-02-28 16:04:05.245308665 +0300
@@ -40,9 +40,10 @@
#include "loader.h"
#include "pasteboard.h"
#include "renderer-host.h"
+#include "view-backend.h"
+#include "libwpe-version.h"
#include "version.h"
#include "version-deprecated.h"
-#include "view-backend.h"
#undef __WPE_H_INSIDE__
diff -Nuar a/meson.build b/meson.build
--- a/meson.build 2021-01-18 17:40:23.000000000 +0300
+++ b/meson.build 2021-02-28 16:04:55.565305034 +0300
@@ -7,7 +7,7 @@
'cpp_std=c++11',
],
license: 'BSD-2-Clause',
- version: '1.9.1',
+ version: run_command(join_paths('scripts', 'version.py')).stdout().strip(),
)
# This refers to the API level provided. This is modified only with major,
diff -Nuar a/scripts/version.py b/scripts/version.py
--- a/scripts/version.py 1970-01-01 02:00:00.000000000 +0200
+++ b/scripts/version.py 2021-02-28 16:05:47.436301291 +0300
@@ -0,0 +1,23 @@
+#! /usr/bin/env python3
+# -*- coding: utf-8 -*-
+# vim:fenc=utf-8
+#
+# Copyright © 2021 Igalia S.L.
+#
+# Distributed under terms of the MIT license.
+
+from os import environ, path
+import re
+
+version = {}
+version_re = re.compile(r"^#define\s+WPE_([A-Z]+)_VERSION\s+(\d+)$")
+version_file = path.join(environ["MESON_SOURCE_ROOT"],
+ "include", "wpe", "libwpe-version.h")
+
+with open(version_file, "r") as f:
+ for line in f.readlines():
+ m = version_re.match(line)
+ if m:
+ version[m[1]] = m[2]
+
+print("{}.{}.{}".format(version["MAJOR"], version["MINOR"], version["MICRO"]))
diff -Nuar a/src/version.c b/src/version.c
--- a/src/version.c 2021-01-18 17:40:23.000000000 +0300
+++ b/src/version.c 2021-02-28 16:06:13.622299402 +0300
@@ -24,8 +24,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "wpe/version.h"
-#include "wpe/version-deprecated.h"
+#include "../include/wpe/version.h"
+#include "../include/wpe/version-deprecated.h"
unsigned
wpe_get_major_version(void)