Skip to content

Commit

Permalink
Bzlmod works with Qt 6.4.0 on Linux and Windows, but not macOS
Browse files Browse the repository at this point in the history
  • Loading branch information
Vertexwahn committed Dec 16, 2024
1 parent 6479e64 commit eed03bd
Show file tree
Hide file tree
Showing 13 changed files with 90 additions and 46 deletions.
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "platforms", version = "0.0.10")

qt = use_extension("@rules_qt//:extensions.bzl", "qt")
qt.fetch()
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ The following tools should be installed:
*All platforms:*

```shell
git clone https://github.com/Vertexwahn/rules_qt6 &&
cd rules_qt6/tests
git clone https://github.com/Vertexwahn/rules_qt6
cd tests
```

*Run Hello World demo with Windows 10/11 x64 with Visual Studio 2019:*
Expand Down
1 change: 0 additions & 1 deletion WORKSPACE.bazel

This file was deleted.

11 changes: 6 additions & 5 deletions fetch_qt.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,20 @@ def fetch_qt6():
http_archive(
name = "qt_windows_x86_64",
urls = [
"https://dl.dropboxusercontent.com/scl/fi/a75eyqtu0542t203eyie2/qt_6.8.0_windows_msvc2022_64_gamepad.zip?rlkey=l2ucxa4by8c8tp3xioqoamm89&dl=0",
"https://vertexwahn.de/lfs/v1/qt_6.4.0_windows_desktop_win64_msvc2019_64.zip",
],
sha256 = "59aa42d34a1b5f15dfc915830a1dbebd90c7b418cf1b726eff8d0fa2766d9827",
sha256 = "e3c20b441ddd8bb803e46de32bf2fc5563fda125409d62dcd12b5647ae5a9c7e",
strip_prefix = "6.4.0/msvc2019_64",
build_file = "@rules_qt//:qt_windows_x86_64.BUILD",
)

http_archive(
name = "qt_linux_x86_64",
urls = [
"https://dl.dropboxusercontent.com/scl/fi/n5aelrs4qg6lweuitb795/qt_6.8.0_linux_desktop_gcc_64_gamepad.tar.xz?rlkey=miuhkfeat53z7xk85y8abi7o3&dl=0",
"https://vertexwahn.de/lfs/v1/qt_6.4.0_linux_desktop_gcc_64.tar.xz",
],
sha256 = "fc18569262fa23c19009a66cfe39ce5761c8e99bc161820cb971be0beec0bb8b",
strip_prefix = "Qt-6.8.0",
sha256 = "809919895e2ac0567df9290676d4ec6cd1ed39c432dc5da0722b3104681fd376",
strip_prefix = "6.4.0/gcc_64",
build_file = "@rules_qt//:qt_linux_x86_64.BUILD",
)

Expand Down
34 changes: 17 additions & 17 deletions qt_libraries.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ QT_LIBRARIES = [
("designer", "QtDesigner", "Qt6Designer", [":qt_xml", ":qt_opengl_widgets", ":qt_widgets", ":qt_gui", ":qt_core"]),
("designer_components", "QtDesigner", "Qt6Designer", [":qt_designer", ":qt_xml", ":qt_widgets", ":qt_gui", ":qt_core"]),
("help", "QtHelp", "Qt6Help", [":qt_sql", ":qt_widgets", ":qt_gui", ":qt_core"]),
("location", "QtLocation", "Qt6Location", [":qt_core"]),
#("location", "QtLocation", "Qt6Location", [":qt_core"]),
# ("json_rpc", "QtJsonRpc", "Qt6JsonRpc", [":qt_core"]),
# ("language_server", "QtLanguageServer", "Qt6LanguageServer", [":qt_json_rpc", ":qt_core"]),
("multimedia", "QtMultimedia", "Qt6Multimedia", [":qt_network", ":qt_gui", ":qt_core"]),
Expand Down Expand Up @@ -69,7 +69,7 @@ QT_LIBRARIES = [
("qml_remote_objects", "QtRemoteObjectsQml", "Qt6RemoteObjectsQml", [":qt_remote_objects", ":qt_qml", ":qt_core"]),
("qml_scxml", "QtScxmlQml", "Qt6ScxmlQml", [":qt_scxml", ":qt_qml", ":qt_core"]),
("qml_state_machine", "QtStateMachineQml", "Qt6StateMachineQml", [":qt_state_machine", ":qt_qml", ":qt_core"]),
("qml_meta", "QtQmlMeta", "Qt6QmlMeta", [":qt_qml"]),
#("qml_meta", "QtQmlMeta", "Qt6QmlMeta", [":qt_qml"]),
## qt quick
("quick", "QtQuick", "Qt6Quick", [":qt_gui", ":qt_qml"]),
# ("quick_pdf", "QtPdfQuick", "Qt6PdfQuick", [":qt_quick", ":qt_pdf", ":qt_gui", ":qt_qml", ":qt_core"]),
Expand All @@ -82,9 +82,9 @@ QT_LIBRARIES = [
("quick_web_engine", "QtWebEngineQuick", "Qt6WebEngineQuick", [
":qt_web_engine_core", ":qt_quick", ":qt_gui", ":qt_web_channel", ":qt_qml", ":qt_network", ":qt_core"
]),
("quick_web_channel", "QtWebChannelQuick", "Qt6WebChannelQuick", [
":qt_web_engine_core", ":qt_quick", ":qt_gui", ":qt_web_channel", ":qt_qml", ":qt_network", ":qt_core"
]),
#("quick_web_channel", "QtWebChannelQuick", "Qt6WebChannelQuick", [
# ":qt_web_engine_core", ":qt_quick", ":qt_gui", ":qt_web_channel", ":qt_qml", ":qt_network", ":qt_core"
#]),
("quick_3d_effects", "QtQuick3DEffects", "Qt6Quick3DEffects", [":qt_qml", ":qt_core"]),
# ("quick_3d_glsl_parser", "QtQuick3DGlslParser", "Qt6Quick3DGlslParser", [":qt_core"]),
("quick_3d_helpers", "QtQuick3DHelpers", "Qt6Quick3DHelpers", [":qt_quick_3d", ":qt_gui", ":qt_qml", ":qt_core"]),
Expand All @@ -95,17 +95,17 @@ QT_LIBRARIES = [
("quick_3d_runtime_render", "QtQuick3DRuntimeRender", "Qt6Quick3DRuntimeRender", [":qt_quick_3d_utils", ":qt_quick", ":qt_shader_tools", ":qt_gui", ":qt_core"]),
("quick_3d_utils", "QtQuick3DUtils", "Qt6Quick3DUtils", [":qt_gui", ":qt_core"]),
("quick_controls2", "QtQuickControls2", "Qt6QuickControls2", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_controls2_basic", "QtQuickControls2Basic", "Qt6QuickControls2Basic", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_controls2_fusion", "QtQuickControls2Fusion", "Qt6QuickControls2Fusion", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_controls2_material", "QtQuickControls2Material", "Qt6QuickControls2Material", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_controls2_material_style_impl", "QtQuickControls2MaterialStyleImpl", "Qt6QuickControls2MaterialStyleImpl", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
#("quick_controls2_basic", "QtQuickControls2Basic", "Qt6QuickControls2Basic", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
#("quick_controls2_fusion", "QtQuickControls2Fusion", "Qt6QuickControls2Fusion", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
#("quick_controls2_material", "QtQuickControls2Material", "Qt6QuickControls2Material", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
#("quick_controls2_material_style_impl", "QtQuickControls2MaterialStyleImpl", "Qt6QuickControls2MaterialStyleImpl", [":qt_quick_templates2", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_controls2_impl", "QtQuickControls2Impl", "Qt6QuickControls2Impl", [":qt_quick_templates2", ":qt_quick", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_dialogs2", "QtQuickDialogs2", "Qt6QuickDialogs2", [":qt_quick_dialogs2_quick_impl", ":qt_quick_dialogs2_utils", ":qt_quick", ":qt_gui", ":qt_qml", ":qt_core"]),
("quick_dialogs2_quick_impl", "Qt6QuickDialogs2QuickImpl", "Qt6QuickDialogs2QuickImpl", [
":qt_quick_templates2",
":qt_quick_controls2_impl",
":qt_quick", ":qt_gui", ":qt_qml", ":qt_quick_dialogs2_utils", ":qt_core",
]),
#("quick_dialogs2", "QtQuickDialogs2", "Qt6QuickDialogs2", [":qt_quick_dialogs2_quick_impl", ":qt_quick_dialogs2_utils", ":qt_quick", ":qt_gui", ":qt_qml", ":qt_core"]),
#("quick_dialogs2_quick_impl", "Qt6QuickDialogs2QuickImpl", "Qt6QuickDialogs2QuickImpl", [
# ":qt_quick_templates2",
# ":qt_quick_controls2_impl",
# ":qt_quick", ":qt_gui", ":qt_qml", ":qt_quick_dialogs2_utils", ":qt_core",
#]),
("quick_dialogs2_utils", "QtQuickDialogs2Utils", "Qt6QuickDialogs2Utils", [":qt_gui", ":qt_core"]),
("quick_layouts", "QtQuickLayouts", "Qt6QuickLayouts", [":qt_quick", ":qt_qml", ":qt_gui", ":qt_core"]),
("quick_particles", "Qt6QuickParticles", "Qt6QuickParticles", [":qt_quick", ":qt_qml", ":qt_gui", ":qt_core"]),
Expand Down Expand Up @@ -133,6 +133,6 @@ QT_LIBRARIES = [
("labs_shared_image", "QtLabsSharedImage", "Qt6LabsSharedImage", [":qt_quick", ":qt_qml", ":qt_gui", ":qt_core"]),
("labs_wave_front_mesh", "QtLabsWavefrontMesh", "Qt6LabsWavefrontMesh", [":qt_quick", ":qt_qml", ":qt_gui", ":qt_core"]),
## legacy
("gamepad_legacy", "QtGamepadLegacy", "Qt6GamepadLegacy", [":qt_core"]),
("gamepad_legacy_quick", "QtGamepadLegacyQuick", "Qt6GamepadLegacyQuick", [":qt_quick", ":qt_qml"]),
#("gamepad_legacy", "QtGamepadLegacy", "Qt6GamepadLegacy", [":qt_core"]),
#("gamepad_legacy_quick", "QtGamepadLegacyQuick", "Qt6GamepadLegacyQuick", [":qt_quick", ":qt_qml"]),
]
52 changes: 32 additions & 20 deletions tests/.bazelrc
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
# GCC
build:gccd --cxxopt=-std=c++20
build:gccd --cxxopt=-Wall
build:gccd --cxxopt=-Werror
build:gccd --compilation_mode=dbg
build --incompatible_disallow_empty_glob=false

# GCC
build:gcc --cxxopt=-std=c++20
build:gcc --cxxopt=-Wall
build:gcc --cxxopt=-Werror
build:gcc --compilation_mode=opt
# Setup compiler flags - required for Qt6 is at least C++17
build:gcc9 --cxxopt=-std=c++2a
build:gcc9 --cxxopt=-Wall
build:gcc9 --cxxopt=-Werror

# GCC 11.2
#build:gcc11 --cxxopt=-std=c++23 # blocked by emsdk
build:gcc11 --cxxopt=-std=c++20
build:gcc11 --cxxopt=-Wall
#build:gcc11 --cxxopt=-Werror
#build:gcc11 --cxxopt=-Wno-error=volatile # blocked by emsdk
##build:gcc11 --cxxopt=-Wextra

# Visual Studio 2019
build:vs2019 --cxxopt=/std:c++20
build:vs2019 --cxxopt=/Zc:__cplusplus # Untested
build:vs2019 --enable_runfiles # https://github.com/bazelbuild/bazel/issues/8843
build:vs2019 --define compiler=vs2019
build:vs2019 --copt=-DWIN32_LEAN_AND_MEAN
build:vs2019 --copt=-DNOGDI
build:vs2019 --host_copt=-DWIN32_LEAN_AND_MEAN
build:vs2019 --host_copt=-DNOGDI

# Visual Studio 2022
build:vs --cxxopt=/std:c++20
build:vs --cxxopt=/Zc:__cplusplus
build:vs --enable_runfiles # https://github.com/bazelbuild/bazel/issues/8843
build:vs --define compiler=vs2022
build:vs --copt=-DWIN32_LEAN_AND_MEAN
build:vs --copt=-DNOGDI
build:vs --host_copt=-DWIN32_LEAN_AND_MEAN
build:vs --host_copt=-DNOGDI
build:vs2022 --cxxopt=/std:c++20
build:vs2022 --cxxopt=/Zc:__cplusplus
build:vs2022 --enable_runfiles # https://github.com/bazelbuild/bazel/issues/8843
build:vs2022 --define compiler=vs2022
build:vs2022 --copt=-DWIN32_LEAN_AND_MEAN
build:vs2022 --copt=-DNOGDI
build:vs2022 --host_copt=-DWIN32_LEAN_AND_MEAN
build:vs2022 --host_copt=-DNOGDI

# macOS (e.g. Clang 12.0.0)
build:macos --cxxopt=-std=c++20
build:macos --cxxopt=-std=c++2a
build:macos --cxxopt=-Wall
build:macos --repo_env=CC=clang
1 change: 1 addition & 0 deletions tests/.bazelversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.0.0
2 changes: 2 additions & 0 deletions tests/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
bazel_dep(name = "platforms", version = "0.0.10")

bazel_dep(name = "rules_qt")
local_path_override(
module_name = "rules_qt",
Expand Down
Empty file removed tests/WORKSPACE.bazel
Empty file.
7 changes: 7 additions & 0 deletions tests/hello_world/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# How to run?

## Visual Studio 2022

```shell
bazel run --config=vs2022 //hello_world:hello_world
```
8 changes: 8 additions & 0 deletions tests/horch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# How to run?

## Visual Studio 2022

```shell
bazel run --config=vs2022 //horch:main
```

7 changes: 7 additions & 0 deletions tests/qml_demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# How to run?

## Visual Studio 2022

```shell
bazel run --config=vs2022 //qml_demo:qt_demo
```
7 changes: 7 additions & 0 deletions tests/uic_demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# How to run?

## Visual Studio 2022

```shell
bazel run --config=vs2022 //uic_demo:main
```

0 comments on commit eed03bd

Please sign in to comment.