Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for QtCharts 6 #210

Open
ronisbr opened this issue Dec 5, 2024 · 19 comments
Open

Support for QtCharts 6 #210

ronisbr opened this issue Dec 5, 2024 · 19 comments

Comments

@ronisbr
Copy link

ronisbr commented Dec 5, 2024

Hi!

I am trying to migrate an application that uses a julia back end and a QML front end to QML.jl. However, I really need the QtCharts 6, which does not seem to be supported. Is there any blocking issues preventing this feature? It seems that we had the possibility in Qt 5 by installing Qt5Charts_jll but I did not find the package for Qt 6.

@ufechner7
Copy link
Member

QtCharts was not supported in 6.0 but it is supported in 6.1

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

Yes! Which Qt version QML uses right now? 6.7?

@barche
Copy link
Collaborator

barche commented Dec 5, 2024

Yes, we use Qt 6.7. The problem is that there is no JLL for QtCharts for Qt 6, it needs to be added in Yggdrasil.

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

I see. Do you think it is a difficult task? I can try to make a PR but I have never worked with Yggdrasil before. Any tips?

@barche
Copy link
Collaborator

barche commented Dec 5, 2024

If Charts only depends on Qt6Base it should be easy, using Qt6Svg as a template: https://github.com/JuliaPackaging/Yggdrasil/blob/master/Q/Qt6Svg/build_tarballs.jl

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

Thanks! I will try

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

Looking here:

https://www.freshports.org/x11-toolkits/qt6-charts/

It seems it only depends on Qt6Base indeed.

@barche
Copy link
Collaborator

barche commented Dec 5, 2024

Also Qt6Declarative, it seems. Just adding this as normal and host build dep should work, so not much more complicated.

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

Unfortunately I just could not use BinaryBuilder in macOS for some problem with Docker. I am trying to debug it, but even Qt6Svg could not be built here.

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

Here is the error:

[ Info: Docker base image already exists, skipping import...
[14:32:12]  ---> cd $WORKSPACE/srcdir
[14:32:12]  ---> mkdir build
[14:32:12]  ---> cd build/
[14:32:12]  ---> qtsrcdir=`ls -d ../qtsvg-*`
[14:32:12]  ---> case "$bb_full_target" in
[14:32:12]  ---> apple_sdk_root=$WORKSPACE/srcdir/MacOSX13.3.sdk
[14:32:12]  ---> sed -i "s!/opt/x86_64-apple-darwin14/x86_64-apple-darwin14/sys-root!$apple_sdk_root!" $CMAKE_TARGET_TOOLCHAIN
[14:32:12]  ---> cmake -G Ninja -DQT_HOST_PATH=$host_prefix -DPython_ROOT_DIR=/usr -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_PREFIX_PATH=$host_prefix -DCMAKE_FIND_ROOT_PATH=$prefix -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_SYSROOT=$apple_sdk_root -DCMAKE_FRAMEWORK_PATH=$apple_sdk_root/System/Library/Frameworks -DCMAKE_OSX_DEPLOYMENT_TARGET=11 -DQT_NO_APPLE_SDK_AND_XCODE_CHECK=ON -DCMAKE_BUILD_TYPE=Release $qtsrcdir
[14:32:12] Re-run cmake no build system arguments
[14:32:12] CMake Error at /usr/share/cmake/Modules/Compiler/._ADSP-DetermineCompiler.cmake:1:
[14:32:12]   Parse error.  Expected a command name, got bad character with text "".
[14:32:12] Call Stack (most recent call first):
[14:32:12]   /usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake:6 (include)
[14:32:12]   /usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake:33 (_readFile)
[14:32:12]   /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:282 (compiler_id_detection)
[14:32:12]   /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:301 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
[14:32:12]   /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:6 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
[14:32:12]   /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:59 (__determine_compiler_id_test)
[14:32:12]   /usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:120 (CMAKE_DETERMINE_COMPILER_ID)
[14:32:12]   CMakeLists.txt:7 (project)

@ronisbr
Copy link
Author

ronisbr commented Dec 5, 2024

JuliaPackaging/BinaryBuilder.jl#1348

I will come back to this issue when I can fix this problem.

@barche
Copy link
Collaborator

barche commented Dec 6, 2024

No worries, I created the PR at JuliaPackaging/Yggdrasil#9932

@ronisbr
Copy link
Author

ronisbr commented Dec 6, 2024

Awesome! Thanks!

@ronisbr
Copy link
Author

ronisbr commented Dec 7, 2024

Hi @barche !

I tried to load Qt6Charts_jll and I got this error:

julia> using Qt6Charts_jll
ERROR: InitError: could not load library "/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/QtCharts"
dlopen(/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/QtCharts, 0x0001): Library not loaded: @rpath/QtOpenGLWidgets
  Referenced from: <4C4C4478-5555-3144-A19A-05F2F5C03C5B> /Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/QtCharts
  Reason: tried: '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtGui.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGL.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGLWidgets.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtCore.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtWidgets.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtGui.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGL.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtOpenGLWidgets.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtCore.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/artifacts/d4c9fb68913b5cf7a801654a2a46f8e7d6e9a52e/lib/QtCharts.framework/Versions/A/../../../QtWidgets.framework/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/juliaup/julia-1.11.2+0.aarch64.apple.darwin14/lib/julia/QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/juliaup/julia-1.11.2+0.aarch64.apple.darwin14/lib/julia/../QtOpenGLWidgets' (no such file), '/Users/ronan.arraes/.julia/juliaup/julia-1.11.2+0.aarch64.apple.darwin14/lib/QtOpenGLWidgets' (no such file), '/usr/local/lib/QtOpenGLWidgets' (no such file), '/usr/lib/QtOpenGLWidgets' (no such file, not in dyld cache)

Maybe there is a missing dependency?

@ronisbr
Copy link
Author

ronisbr commented Dec 7, 2024

Yeah... I think Qt6 introduced a new module called QtOpenGLWidgets and it is a dependency to QtCharts now.

@barche
Copy link
Collaborator

barche commented Dec 9, 2024

See JuliaRegistries/General#120890 (comment), I'll investigate.

@ronisbr
Copy link
Author

ronisbr commented Jan 1, 2025

Hi @barche !

Can I do something to help you fixing this problem?

@barche
Copy link
Collaborator

barche commented Jan 2, 2025

Sorry, I waited too long. I wanted to make sure QtOpenGLWidgets was the only missing lib, and as it turns out it is, but in the meantime we need to also update the version if we want to change the JLL, so now all the Qt JLLs need to be updated to the new Qt, preferably to 6.8.1.

@barche
Copy link
Collaborator

barche commented Jan 3, 2025

I started upgrading Qt, currently hitting different errors here: JuliaPackaging/Yggdrasil#10202

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants