Feat: Misc Update#421
Merged
Merged
Conversation
Fix bugs surfaced while expanding Common/Math test coverage; most were latent because the affected template interfaces were never instantiated: - Quaternion::Dot used '*' instead of '+' between terms - Quaternion::operator*=(T) was wrongly const; operator*=(Quaternion) used 'this * rhs' instead of '*this * rhs' - Quaternion lacked CastTo, which Transform::CastTo depends on - Rect::Size declared the diagonal as Vec<T,3> (a Vec<T,2> expression) - Color::ToHexString streamed uint8_t as characters; padded hex now - ColorConsts black/red/green/blue used channel/alpha value 1 instead of 255 - Transform::TransformPosition(Vec4) passed a const lvalue to FromColVecs, which only accepts an rvalue Vec<T,4> - ViewTransform::LookAt returned Transform<T> through an explicit ctor - Vector: renamed misspelled const negaUintZ to negaUnitZ Reorganize MathTest.cpp by class and add cases covering the previously untested interfaces across every Math type. (cherry picked from commit 8c3383b)
(cherry picked from commit 0c6dcc2)
Teach build_recipes.py to recognize Linux-x86_64 as a host (it used to sys.exit on Linux) and add Linux-x86_64 to the platforms list of every recipe that can target it: assimp, clipp, debugbreak, libclang, qt and dxc. molten-vk stays macOS-only. Verified on Linux/gcc-13/x86_64 via conan create: clipp, debugbreak, assimp, libclang and qt all build, package and (where applicable) pass their test_package. dxc also gets its packaging fixed -- package() now copies installed/lib on Linux as well as macOS, so libdxcompiler.so is shipped (previously only Windows/macOS were handled, leaving the Linux package without the library it declares). The dxc Linux build itself is not yet verified end-to-end (LLVM-scale source build); the packaging change mirrors the macOS path.
Add an ubuntu-latest leg to both the Build (engine) and Publish Conan Recipes workflows so Linux is exercised in CI alongside Windows and macOS, matching the recipes that now declare Linux-x86_64. The engine's own Linux support is not yet verified, so the Build matrix sets fail-fast: false to keep the Linux leg from cancelling the Windows and macOS legs. Publish already had fail-fast: false. README updated to list Linux among the supported platforms and as a publish target.
The Qt prebuilt needs GL dev files for CMake's FindOpenGL (Qt6::Gui pulls in WrapOpenGL) at configure time, plus QtWebEngine's Chromium runtime libs to load libQt6WebEngineCore. Hosted runners ship only the GL runtime libraries, so the qt recipe's test_package failed to configure (and would fail to run) on Linux. Install libgl1-mesa-dev/libglu1-mesa-dev on both the build and publish Linux legs; publish additionally installs libnss3/libnspr4/libxkbfile1/libasound2t64 for the WebEngine smoke test. Run that test headlessly from the test_package itself via QT_QPA_PLATFORM=offscreen and QTWEBENGINE_DISABLE_SANDBOX=1.
The skip-existing pre-check treated 'conan graph info' binary state Cache as "already on remote", but Cache means the binary is in the local cache and, once the cache resolves a recipe, graph info never even queries the remote. So a recipe built locally was reported as published and, under --upload, parked in the present bucket and never uploaded. Resolve the recipe revision and package id via graph info, then ask the local cache and the remote separately (via 'conan list') whether that exact binary exists. A recipe found on the remote is skipped and not re-uploaded; one found only locally skips the rebuild but is still uploaded so the local binary reaches the remote; anything else is built. Any uncertainty falls through to a build.
…onfig
Two Linux-only configure failures:
- Editor only searched for npm.cmd/npm without guarding the platform. On WSL the
PATH leaks Windows' npm.cmd, which sh cannot execute ("Unterminated quoted
string"). Look up npm.cmd on Windows only; other platforms use plain npm.
- CMAKE_MAP_IMPORTED_CONFIG_* mapped the non-Release configs to "Release" with no
empty (suffix-less) fallback, so CMake refused the configuration-less
IMPORTED_LOCATION that FindOpenGL sets on OpenGL::OpenGL / OpenGL::GLX, failing
generate with "IMPORTED_LOCATION not set ... configuration Debug". Append the
empty element so conan's Release artifacts are still preferred while system
imported targets keep resolving.
- Add missing <cmath>/<algorithm> includes that MSVC pulled in transitively - Undef GCC's predefined bare `linux` macro so the platform enumerator stays valid - Enable CMAKE_POSITION_INDEPENDENT_CODE so static libs link into shared ones on ELF - Feed libclang the host GCC system include dirs (conan libclang ships no builtin headers) and fix the dead `#elif DPLATFORM_LINUX` typo in MirrorTool - Qualify same-named return types (Runtime::EventsObserverDyn/Observer/PlayStatus) to avoid GCC -Wchanges-meaning, and make Scene.h explicit specializations inline instead of the non-standard `static` - Cast to qint64 in Qt JSON serializer to dodge the int64_t ambiguity on LP64 - Name the current thread via pthread_self() in NamedThread to fix the data race that segfaulted Runtime.Test
The assimp recipe pinned zlib to the exact version 1.3.1, while the rest of the dependency graph requires zlib via the range [>=1.3.1 <2]. Now that conancenter publishes zlib 1.3.2, that range resolves to 1.3.2 and conflicts with assimp's hard pin, breaking 'conan install' at CMake configure time. Use the same range so assimp follows the graph's resolution.
xorg/system (pulled in transitively by Qt on Linux) declares a long list of X11 dev packages as system requirements. Conan's default package_manager mode is 'check', so it errored at configure time instead of installing them. Set tools.system.package_manager:mode=install (with sudo) in global.conf on the Linux leg so Conan installs them via apt.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.