Ready Libsolv for C++20 (#3899)

Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
This commit is contained in:
Antoine Prouvost 2025-04-17 17:19:31 +02:00 committed by GitHub
parent 51890d37ee
commit 10036e83e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 2 deletions

View File

@ -14,6 +14,9 @@ target_include_directories(
solv-cpp
PUBLIC $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
# Avoids `libsolv`'s usage of `requires` which became a keyword in C++20. See:
# https://github.com/openSUSE/libsolv/blob/master/src/solvable.h#L38
target_compile_definitions(solv-cpp PUBLIC LIBSOLV_SOLVABLE_PREPEND_DEP)
find_package(tl-expected REQUIRED)
find_package(Libsolv REQUIRED)

View File

@ -382,7 +382,7 @@ namespace solv
void ObjSolvableView::add_dependency(DependencyId dep, DependencyMarker marker) const
{
raw()->requires = ::repo_addid_dep(raw()->repo, raw()->requires, dep, marker);
raw()->dep_requires = ::repo_addid_dep(raw()->repo, raw()->dep_requires, dep, marker);
}
auto ObjSolvableViewConst::provides() const -> ObjQueue
@ -409,7 +409,7 @@ namespace solv
void ObjSolvableView::add_provide(DependencyId dep) const
{
raw()->provides = ::repo_addid_dep(raw()->repo, raw()->provides, dep, /* marker= */ 0);
raw()->dep_provides = ::repo_addid_dep(raw()->repo, raw()->dep_provides, dep, /* marker= */ 0);
}
void ObjSolvableView::add_self_provide() const