mirror of
https://git.yoctoproject.org/poky
synced 2026-04-24 21:32:12 +02:00
Instead of having a test called eg "assimp", rename it to "cmake" as the point of the test is to verify that CMake works. This should make it clearer what the tests are actually exercising. (From OE-Core rev: ccf7fdc0e5b6df218b319f972cd5ba142c06c243) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
import os
|
|
import subprocess
|
|
import tempfile
|
|
import unittest
|
|
from oeqa.sdk.case import OESDKTestCase
|
|
|
|
from oeqa.utils.subprocesstweak import errors_have_output
|
|
errors_have_output()
|
|
|
|
class CMakeTest(OESDKTestCase):
|
|
"""
|
|
Test case to build a project using cmake.
|
|
"""
|
|
|
|
def setUp(self):
|
|
if not (self.tc.hasHostPackage("nativesdk-cmake") or
|
|
self.tc.hasHostPackage("cmake-native")):
|
|
raise unittest.SkipTest("CMakeTest: needs cmake")
|
|
|
|
def test_assimp(self):
|
|
with tempfile.TemporaryDirectory(prefix="assimp", dir=self.tc.sdk_dir) as testdir:
|
|
tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/assimp/assimp/archive/v5.4.1.tar.gz")
|
|
|
|
dirs = {}
|
|
dirs["source"] = os.path.join(testdir, "assimp-5.4.1")
|
|
dirs["build"] = os.path.join(testdir, "build")
|
|
dirs["install"] = os.path.join(testdir, "install")
|
|
|
|
subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
|
|
self.assertTrue(os.path.isdir(dirs["source"]))
|
|
# Apply the zlib patch https://github.com/madler/zlib/commit/a566e156b3fa07b566ddbf6801b517a9dba04fa3
|
|
# this sed wont be needed once assimp moves its zlib copy to v1.3.1+
|
|
self._run("sed -i '/# ifdef _FILE_OFFSET_BITS/I,+2 d' {source}/contrib/zlib/gzguts.h".format(**dirs))
|
|
os.makedirs(dirs["build"])
|
|
|
|
self._run("cd {build} && cmake -DASSIMP_WARNINGS_AS_ERRORS=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DASSIMP_BUILD_ZLIB=ON {source}".format(**dirs))
|
|
self._run("cmake --build {build} -- -j".format(**dirs))
|
|
self._run("cmake --build {build} --target install -- DESTDIR={install}".format(**dirs))
|
|
self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libassimp.so.5.4.1"))
|