Skip to content

Install mismatch: Yoga version #1

@SamuelEnzi

Description

@SamuelEnzi

Hey, first off, awesome idea with this repo. It really makes setting up a dev environment way faster.

I ran into an issue with cz-kay depending on Yoga (from Facebook). Since Yoga isn’t included as a subproject, i just pulled the main branch and it seems to break the build.

FAILED: subprojects/cz-kay/libcz-kay.so.0.p/src_CZ_AK_AK.cpp.o 
c++ -Isubprojects/cz-kay/libcz-kay.so.0.p -Isubprojects/cz-kay -I../subprojects/cz-kay -I../subprojects/cz-kay/src -Isubprojects/cz-core/src -I../subprojects/cz-core/src -I../subprojects/cz-core/src/CZ -I../subprojects/cz-skia/src -I../subprojects/cz-skia/headers -Isubprojects/cz-ream/src -I../subprojects/cz-ream/src -I../subprojects/cz-ream/src/CZ -I../subprojects/cz-ream/src/CZ/Ream -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/webp -I/usr/include -I/usr/include/libdrm -I/usr/local/include -I/usr/local/include/yoga -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O3 '-DCZ_KAY_ASSETS_DIR="/usr/local/share/Kay/Assets"' '-DCZ_KAY_FONTS_DIR="/usr/share/fonts/cuarzo"' -fPIC -DBOOST_CONTAINER_DYN_LINK=1 -DBOOST_ALL_NO_LIB -pthread -DSK_RELEASE -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX -DSK_UNICODE_AVAILABLE -DSK_UNICODE_RUNTIME_ICU_AVAILABLE -DSK_UNICODE_ICU_IMPLEMENTATION -DSK_SHAPER_PRIMITIVE_AVAILABLE -DSK_SHAPER_HARFBUZZ_AVAILABLE -DSK_SHAPER_UNICODE_AVAILABLE -DSK_VULKAN -DSK_GL -DSK_GANESH -MD -MQ subprojects/cz-kay/libcz-kay.so.0.p/src_CZ_AK_AK.cpp.o -MF subprojects/cz-kay/libcz-kay.so.0.p/src_CZ_AK_AK.cpp.o.d -o subprojects/cz-kay/libcz-kay.so.0.p/src_CZ_AK_AK.cpp.o -c ../subprojects/cz-kay/src/CZ/AK/AK.cpp
In file included from ../subprojects/cz-kay/src/CZ/AK/Nodes/AKNode.h:6,
                 from ../subprojects/cz-kay/src/CZ/AK/Nodes/AKRenderable.h:4,
                 from ../subprojects/cz-kay/src/CZ/AK/Nodes/AKImage.h:4,
                 from ../subprojects/cz-kay/src/CZ/AK/Nodes/AKWindowButton.h:4,
                 from ../subprojects/cz-kay/src/CZ/AK/AKTheme.h:9,
                 from ../subprojects/cz-kay/src/CZ/AK/AK.cpp:1:
../subprojects/cz-kay/src/CZ/AK/AKLayout.h: In member function ‘float CZ::AKLayout::gap(YGGutter) const’:
../subprojects/cz-kay/src/CZ/AK/AKLayout.h:522:33: error: cannot convert ‘YGValue’ to ‘float’ in return
  522 |         return YGNodeStyleGetGap(m_node, gutter);
      |                ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
      |                                 |
      |                                 YGValue

This is just one example, but there are many more issues with different UIElements.

It looks like newer Yoga versions changed the API for YGNodeStyleGetGap() or something like that.
Maybe it’d make sense to include Yoga as a subproject (like the other libs) or lock it to a specific version to avoid these mismatches.

Would make the whole setup even smoother.

I installed yoga like this:

git clone https://github.com/facebook/yoga.git
cd yoga
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DYOGA_BUILD_TESTS=OFF
cmake --build build -j$(nproc)
sudo cmake --install build --prefix=/usr/local

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions