dev-cpp/sol2: new package 3.2.2

games-engines/openmw-0.48 will depend on it

Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Alexey Sokolov
2021-07-12 00:29:46 +01:00
committed by Ionen Wolkens
parent 7f5a950ad1
commit 35da96df06
5 changed files with 148 additions and 0 deletions

2
dev-cpp/sol2/Manifest Normal file
View File

@@ -0,0 +1,2 @@
DIST sol2-3.2.2-gcc11.patch 24788 BLAKE2B bc50d638c6414d86af7a744c26c3eae05400d593caeca725d3d15e81a76bcb22817994cdbb884c795aaa157e8c3de0753e38c6352e57dc081e001e8e245aa9a7 SHA512 98bb29cf7e89306ed7e9d350dc924b5fa10d51cb7ff4eb3ac873775d17c3b8849a37d6c1566fe9eb18222b524d648b4268d513fb0a2e7d272a4a6032eda10930
DIST sol2-3.2.2.tar.gz 8531029 BLAKE2B 65fd220f5109e4917d06d5ef906ceccb7e292276f69bd49dfd826089a77e566af1811fdf660ffbfbd2437dca4b86ef5c4790dace9029805926e1ee0445b2e965 SHA512 e5a739b37aea7150f141f6a003c2689dd33155feed5bb3cf2569abbfe9f0062eacdaaf346be523d627f0e491b35e68822c80e1117fa09ece8c9d8d5af09fdbec

View File

@@ -0,0 +1,27 @@
Use catch library from system
--- a/tests/runtime_tests/CMakeLists.txt
+++ b/tests/runtime_tests/CMakeLists.txt
@@ -22,12 +22,6 @@
# # # # sol3 tests - runtime tests
-if (CMAKE_GENERATOR MATCHES "Visual Studio 14 2015")
- find_package(Catch 1.12.1 REQUIRED)
-else()
- find_package(Catch REQUIRED)
-endif()
-
file(GLOB SOL2_RUNTIME_TEST_SOURCES source/*.cpp)
source_group(test_sources FILES ${SOL2_RUNTIME_TEST_SOURCES})
@@ -38,7 +32,8 @@ function(CREATE_TEST test_target_name test_name target_sol)
OUTPUT_NAME ${test_name}
EXPORT_NAME sol2::${test_name})
target_link_libraries(${test_target_name}
- PUBLIC Threads::Threads ${LUA_LIBRARIES} ${CATCH_LIBRARIES} ${target_sol})
+ PUBLIC Threads::Threads ${LUA_LIBRARIES} ${target_sol})
+ target_include_directories(${test_target_name} PRIVATE ${CATCH_INC_DIR})
if (MSVC)
if (NOT CMAKE_COMPILER_ID MATCHES "Clang")

View File

@@ -0,0 +1,17 @@
Use the lua version selected by lua eclass
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -188,7 +188,11 @@ if (SOL2_IS_TOP_LEVEL AND (SOL2_DO_TESTS OR SOL2_DO_EXAMPLES))
string(TOLOWER ${SOL2_LUA_VERSION} NORMALIZED_LUA_VERSION)
# Find way to get Lua: build if requested, or attempt to build if no matching version is found
- if (SOL2_BUILD_LUA)
+ if (TRUE)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(LUA REQUIRED lua IMPORTED_TARGET)
+ set(LUA_LIBRARIES PkgConfig::LUA)
+ elseif (SOL2_BUILD_LUA)
find_package(LuaBuild REQUIRED COMPONENTS ${SOL2_LUA_VERSION})
elseif (NOT SOL2_LUA_VERSION)
find_package(LuaBuild REQUIRED)

19
dev-cpp/sol2/metadata.xml Normal file
View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>alexey+gentoo@asokolov.org</email>
<name>Alexey Sokolov</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
<upstream>
<remote-id type="github">ThePhD/sol2</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,83 @@
# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
LUA_COMPAT=( lua5-{1,3,4} luajit )
inherit cmake lua
DESCRIPTION="Header-only C++ <-> Lua API wrapper"
HOMEPAGE="https://github.com/ThePhD/sol2"
SRC_URI="
https://github.com/ThePhD/sol2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/ThePhD/sol2/commit/e5e6466e09b632677d24a8f204d6a0ea0a8862b1.patch -> ${P}-gcc11.patch
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
REQUIRED_USE="test? ( ${LUA_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
DEPEND="
test? (
${LUA_DEPS}
dev-cpp/catch:0
)
"
BDEPEND="
test? (
virtual/pkgconfig
)
"
PATCHES=(
"${DISTDIR}"/${P}-gcc11.patch
"${FILESDIR}"/${P}-luajit-pkgconf.patch
"${FILESDIR}"/${P}-catch-depend.patch
)
src_prepare() {
# TODO: remove this sed on next bump
sed -i -e 's/-Werror//' \
tests/runtime_tests/CMakeLists.txt \
tests/regression_tests/1011/CMakeLists.txt \
tests/config_tests/function_pointers/CMakeLists.txt \
examples/customization/CMakeLists.txt \
examples/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
cmake_src_configure
if use test; then
sol2_configure_wrapper() {
local mycmakeargs=(
-DSOL2_BUILD_LUA=no
-DSOL2_TESTS=yes
-DSOL2_LUA_VERSION="${ELUA}"
-DCATCH_INC_DIR="${ESYSROOT}/usr/include/catch2"
)
cmake_src_configure
}
lua_foreach_impl sol2_configure_wrapper
fi
}
src_compile() {
use test && lua_foreach_impl cmake_src_compile
}
src_test() {
sol2_test_wrapper() {
if [[ ${ELUA} == luajit ]]; then
einfo "Skipping test due to https://github.com/ThePhD/sol2/issues/1221"
else
cmake_src_test
fi
}
lua_foreach_impl sol2_test_wrapper
}