diff --git a/gvsbuild/projects/__init__.py b/gvsbuild/projects/__init__.py
index 5cbd9f1b8..69a459965 100644
--- a/gvsbuild/projects/__init__.py
+++ b/gvsbuild/projects/__init__.py
@@ -1,6 +1,7 @@
# flake8: noqa
from gvsbuild.projects.adwaita_icon_theme import AdwaitaIconTheme
+from gvsbuild.projects.abseil import AbseilCpp
from gvsbuild.projects.atk import Atk
from gvsbuild.projects.boringssl import BoringSSL
from gvsbuild.projects.cairo import Cairo
diff --git a/gvsbuild/projects/abseil.py b/gvsbuild/projects/abseil.py
new file mode 100644
index 000000000..071667a2c
--- /dev/null
+++ b/gvsbuild/projects/abseil.py
@@ -0,0 +1,43 @@
+# Copyright (C) 2016 - Yevgen Muntyan
+# Copyright (C) 2016 - Ignacio Casal Quinteiro
+# Copyright (C) 2016 - Arnavion
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see .
+
+from gvsbuild.utils.base_builders import CmakeProject
+from gvsbuild.utils.base_expanders import Tarball
+from gvsbuild.utils.base_project import Project, project_add
+
+
+@project_add
+class AbseilCpp(Tarball, CmakeProject):
+ def __init__(self):
+ Project.__init__(
+ self,
+ "abseil-cpp",
+ version="20230125.3",
+ archive_url="https://github.com/abseil/abseil-cpp/archive/refs/tags/{version}.tar.gz",
+ archive_file_name="abseil-cpp-{version}.tar.gz",
+ hash="5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36",
+ dependencies=["cmake", "ninja"],
+ )
+
+ def build(self, **kwargs):
+ CmakeProject.build(
+ self,
+ use_ninja=True,
+ cmake_params=r"-DABSL_PROPAGATE_CXX_STD=ON -DABSL_BUILD_DLL=ON",
+ )
+
+ self.install(r".\LICENSE share\doc\abseil-cpp")
diff --git a/gvsbuild/projects/protobuf.py b/gvsbuild/projects/protobuf.py
index ba907f31d..d39d26482 100644
--- a/gvsbuild/projects/protobuf.py
+++ b/gvsbuild/projects/protobuf.py
@@ -15,6 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, see .
+
from gvsbuild.utils.base_builders import CmakeProject
from gvsbuild.utils.base_expanders import Tarball
from gvsbuild.utils.base_project import Project, project_add
@@ -26,14 +27,15 @@ def __init__(self):
Project.__init__(
self,
"protobuf",
- version="3.21.12",
+ version="3.23.0",
lastversion_major=3,
- archive_url="https://github.com/protocolbuffers/protobuf/releases/download/v{minor}.{micro}/protobuf-cpp-{version}.tar.gz",
- hash="4eab9b524aa5913c6fffb20b2a8abf5ef7f95a80bc0701f3a6dbb4c607f73460",
+ archive_url="https://github.com/protocolbuffers/protobuf/releases/download/v{minor}.{micro}/protobuf-{minor}.{micro}.tar.gz",
+ hash="b29fc5fc13926f347b7a8b676ae1e63f7ccdb92c2fc8ca326bc3a883dcc168ac",
dependencies=[
"cmake",
"zlib",
"ninja",
+ "abseil-cpp",
],
)
@@ -41,7 +43,10 @@ def build(self):
# We need to compile with STATIC_RUNTIME off since protobuf-c also compiles with it OFF
CmakeProject.build(
self,
- cmake_params=r'-DBUILD_SHARED_LIBS=ON -Dprotobuf_DEBUG_POSTFIX="" -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_WITH_ZLIB=ON -Dprotobuf_MSVC_STATIC_RUNTIME=OFF',
+ cmake_params=r'-DBUILD_SHARED_LIBS=ON -Dprotobuf_DEBUG_POSTFIX="" -Dprotobuf_BUILD_TESTS=OFF '
+ r"-Dprotobuf_WITH_ZLIB=ON -Dprotobuf_MSVC_STATIC_RUNTIME=OFF "
+ r'-Dprotobuf_ABSL_PROVIDER=package -DCMAKE_PREFIX_PATH="%(pkg_dir)s\lib" '
+ r'-Dabsl_DIR="%(pkg_dir)s\lib\cmake\absl"',
use_ninja=True,
)