Skip to content

Commit 792e822

Browse files
committed
Qt6Tools_jll build 6.8.2+0
1 parent 59a86d5 commit 792e822

10 files changed

+423
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
override/

.pkg/platform_augmentation.jl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Base.BinaryPlatforms
2+
function augment_llvm!(platform::Platform)
3+
haskey(platform, "llvm_version") && return platform
4+
5+
llvm_version = Base.libllvm_version
6+
# does our LLVM build use assertions?
7+
llvm_assertions = try
8+
cglobal((:_ZN4llvm24DisableABIBreakingChecksE, Base.libllvm_path()), Cvoid)
9+
false
10+
catch
11+
true
12+
end
13+
platform["llvm_version"] = if llvm_assertions
14+
"$(llvm_version.major).asserts"
15+
else
16+
"$(llvm_version.major)"
17+
end
18+
return platform
19+
end
20+
21+
function augment_platform!(platform::Platform)
22+
augment_llvm!(platform)
23+
end

.pkg/select_artifacts.jl

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
push!(Base.LOAD_PATH, dirname(@__DIR__))
2+
3+
using TOML, Artifacts, Base.BinaryPlatforms
4+
include("./platform_augmentation.jl")
5+
artifacts_toml = joinpath(dirname(@__DIR__), "Artifacts.toml")
6+
7+
# Update Base.parse to support riscv64, needed for Julia <1.12
8+
@static if !haskey(BinaryPlatforms.arch_mapping, "riscv64")
9+
10+
BinaryPlatforms.arch_mapping["riscv64"] = "(rv64|riscv64)"
11+
12+
function bbparse(::Type{Platform}, triplet::AbstractString; validate_strict::Bool = false)
13+
arch_mapping = BinaryPlatforms.arch_mapping
14+
os_mapping = BinaryPlatforms.os_mapping
15+
libc_mapping = BinaryPlatforms.libc_mapping
16+
call_abi_mapping = BinaryPlatforms.call_abi_mapping
17+
libgfortran_version_mapping = BinaryPlatforms.libgfortran_version_mapping
18+
cxxstring_abi_mapping = BinaryPlatforms.cxxstring_abi_mapping
19+
libstdcxx_version_mapping = BinaryPlatforms.libstdcxx_version_mapping
20+
21+
# Helper function to collapse dictionary of mappings down into a regex of
22+
# named capture groups joined by "|" operators
23+
c(mapping) = string("(",join(["(?<$k>$v)" for (k, v) in mapping], "|"), ")")
24+
25+
# We're going to build a mondo regex here to parse everything:
26+
triplet_regex = Regex(string(
27+
"^",
28+
# First, the core triplet; arch/os/libc/call_abi
29+
c(arch_mapping),
30+
c(os_mapping),
31+
c(libc_mapping),
32+
c(call_abi_mapping),
33+
# Next, optional things, like libgfortran/libstdcxx/cxxstring abi
34+
c(libgfortran_version_mapping),
35+
c(cxxstring_abi_mapping),
36+
c(libstdcxx_version_mapping),
37+
# Finally, the catch-all for extended tags
38+
"(?<tags>(?:-[^-]+\\+[^-]+)*)?",
39+
"\$",
40+
))
41+
42+
m = match(triplet_regex, triplet)
43+
if m !== nothing
44+
# Helper function to find the single named field within the giant regex
45+
# that is not `nothing` for each mapping we give it.
46+
get_field(m, mapping) = begin
47+
for k in keys(mapping)
48+
if m[k] !== nothing
49+
# Convert our sentinel `nothing` values to actual `nothing`
50+
if endswith(k, "_nothing")
51+
return nothing
52+
end
53+
# Convert libgfortran/libstdcxx version numbers
54+
if startswith(k, "libgfortran")
55+
return VersionNumber(parse(Int,k[12:end]))
56+
elseif startswith(k, "libstdcxx")
57+
return VersionNumber(3, 4, parse(Int,m[k][11:end]))
58+
else
59+
return k
60+
end
61+
end
62+
end
63+
end
64+
65+
# Extract the information we're interested in:
66+
arch = get_field(m, arch_mapping)
67+
os = get_field(m, os_mapping)
68+
libc = get_field(m, libc_mapping)
69+
call_abi = get_field(m, call_abi_mapping)
70+
libgfortran_version = get_field(m, libgfortran_version_mapping)
71+
libstdcxx_version = get_field(m, libstdcxx_version_mapping)
72+
cxxstring_abi = get_field(m, cxxstring_abi_mapping)
73+
function split_tags(tagstr)
74+
tag_fields = filter(!isempty, split(tagstr, "-"))
75+
if isempty(tag_fields)
76+
return Pair{String,String}[]
77+
end
78+
return map(v -> Symbol(v[1]) => v[2], split.(tag_fields, "+"))
79+
end
80+
tags = split_tags(m["tags"])
81+
82+
# Special parsing of os version number, if any exists
83+
function extract_os_version(os_name, pattern)
84+
m_osvn = match(pattern, m[os_name])
85+
if m_osvn !== nothing
86+
return VersionNumber(m_osvn.captures[1])
87+
end
88+
return nothing
89+
end
90+
os_version = nothing
91+
if os == "macos"
92+
os_version = extract_os_version("macos", r".*darwin([\d.]+)"sa)
93+
end
94+
if os == "freebsd"
95+
os_version = extract_os_version("freebsd", r".*freebsd([\d.]+)"sa)
96+
end
97+
if os == "openbsd"
98+
os_version = extract_os_version("openbsd", r".*openbsd([\d.]+)"sa)
99+
end
100+
101+
return Platform(
102+
arch, os;
103+
validate_strict,
104+
libc,
105+
call_abi,
106+
libgfortran_version,
107+
cxxstring_abi,
108+
libstdcxx_version,
109+
os_version,
110+
tags...,
111+
)
112+
end
113+
throw(ArgumentError("Platform `$(triplet)` is not an officially supported platform"))
114+
end
115+
116+
else
117+
# riscv64 is supported, all is fine
118+
119+
const bbparse = parse
120+
121+
end
122+
123+
124+
# Get "target triplet" from ARGS, if given (defaulting to the host triplet otherwise)
125+
target_triplet = get(ARGS, 1, Base.BinaryPlatforms.host_triplet())
126+
127+
# Augment this platform object with any special tags we require
128+
platform = augment_platform!(HostPlatform(bbparse(Platform, target_triplet)))
129+
130+
# Select all downloadable artifacts that match that platform
131+
artifacts = select_downloadable_artifacts(artifacts_toml; platform, include_lazy=true)
132+
133+
# Output the result to `stdout` as a TOML dictionary
134+
TOML.print(stdout, artifacts)

Artifacts.toml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[[Qt6Tools]]
2+
arch = "x86_64"
3+
cxxstring_abi = "cxx11"
4+
git-tree-sha1 = "648a10699921c4318337325c9e53aba68cd3e6b6"
5+
lazy = true
6+
libc = "musl"
7+
llvm_version = "20"
8+
os = "linux"
9+
10+
[[Qt6Tools.download]]
11+
sha256 = "af3349f4b7a2c407f01919454a15791f6bc2a552965dfcb2476c103c2d260d41"
12+
url = "https://github.com/JuliaBinaryWrappers/Qt6Tools_jll.jl/releases/download/Qt6Tools-v6.8.2+0/Qt6Tools.v6.8.2.x86_64-linux-musl-cxx11-llvm_version+20.tar.gz"
13+
[[Qt6Tools]]
14+
arch = "x86_64"
15+
cxxstring_abi = "cxx11"
16+
git-tree-sha1 = "a66fcf0133429c89441eebbf0ae1281c7118eddd"
17+
lazy = true
18+
libc = "musl"
19+
llvm_version = "20.asserts"
20+
os = "linux"
21+
22+
[[Qt6Tools.download]]
23+
sha256 = "402d5f6b8e3b02295ea8c9d109d54aaad4377c02687b6bb58db4e36dfaab5213"
24+
url = "https://github.com/JuliaBinaryWrappers/Qt6Tools_jll.jl/releases/download/Qt6Tools-v6.8.2+0/Qt6Tools.v6.8.2.x86_64-linux-musl-cxx11-llvm_version+20.asserts.tar.gz"

LICENSE

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
The Julia source code within this repository (all files under `src/`) are
2+
released under the terms of the MIT "Expat" License, the text of which is
3+
included below. This license does not apply to the binary package wrapped by
4+
this Julia package and automatically downloaded by the Julia package manager
5+
upon installing this wrapper package. The binary package's license is shipped
6+
alongside the binary itself and can be found within the
7+
`share/licenses/Qt6Tools` directory within its prefix.
8+
19
MIT License
210

311
Copyright (c) 2025 JuliaBinaryWrappers

Project.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name = "Qt6Tools_jll"
2+
uuid = "41098d5d-486a-5be3-bd44-b646bda58606"
3+
version = "6.8.2+0"
4+
5+
[deps]
6+
JLLWrappers = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
7+
LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3"
8+
Qt6Declarative_jll = "629bc702-f1f5-5709-abd5-49b8460ea067"
9+
Clang_jll = "0ee61d77-7f21-5576-8119-9fcc46b10100"
10+
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
11+
TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
12+
Expat_jll = "2e619515-83b5-522b-bb60-26c02a35a201"
13+
Qt6Base_jll = "c0090381-4147-56d7-9ebc-da0b1113ec56"
14+
Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
15+
16+
[compat]
17+
JLLWrappers = "1.7.0"
18+
julia = "1.6"
19+
LazyArtifacts = "< 0.0.1, 1"
20+
Qt6Declarative_jll = "=6.8.2"
21+
Libdl = "< 0.0.1, 1"
22+
TOML = "< 0.0.1, 1"
23+
Expat_jll = "2.6.5"
24+
Artifacts = "< 0.0.1, 1"
25+
Qt6Base_jll = "=6.8.2"

README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# `Qt6Tools_jll.jl` (v6.8.2+0)
2+
3+
[![deps](https://juliahub.com/docs/Qt6Tools_jll/deps.svg)](https://juliahub.com/ui/Packages/General/Qt6Tools_jll/)
4+
5+
This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl).
6+
7+
The originating [`build_tarballs.jl`](https://github.com/JuliaPackaging/Yggdrasil/blob/4fbeefdf53ac0d2e0e78217c5830d2ab55aa44d0/Q/Qt6Tools/build_tarballs.jl) script can be found on [`Yggdrasil`](https://github.com/JuliaPackaging/Yggdrasil/), the community build tree.
8+
9+
## Bug Reports
10+
11+
If you have any issue, please report it to the Yggdrasil [bug tracker](https://github.com/JuliaPackaging/Yggdrasil/issues).
12+
13+
## Documentation
14+
15+
For more details about JLL packages and how to use them, see `BinaryBuilder.jl` [documentation](https://docs.binarybuilder.org/stable/jll/).
16+
17+
## Sources
18+
19+
The tarballs for `Qt6Tools_jll.jl` have been built from these sources:
20+
21+
* compressed archive: https://download.qt.io/official_releases/qt/6.8/6.8.2/submodules/qttools-everywhere-src-6.8.2.tar.xz (SHA256 checksum: `326381b7d43f07913612f291abc298ae79bd95382e2233abce982cff2b53d2c0`)
22+
* compressed archive: https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v11.0.1.tar.bz2 (SHA256 checksum: `3f66bce069ee8bed7439a1a13da7cb91a5e67ea6170f21317ac7f5794625ee10`)
23+
* compressed archive: https://github.com/roblabla/MacOSX-SDKs/releases/download/macosx14.0/MacOSX14.0.sdk.tar.xz (SHA256 checksum: `4a31565fd2644d1aec23da3829977f83632a20985561a2038e198681e7e7bf49`)
24+
25+
## Platforms
26+
27+
`Qt6Tools_jll.jl` is available for the following platforms:
28+
29+
* `Linux x86_64 {cxxstring_abi=cxx11, libc=musl, llvm_version=20.asserts}` (`x86_64-linux-musl-cxx11-llvm_version+20.asserts`)
30+
31+
## Dependencies
32+
33+
The following JLL packages are required by `Qt6Tools_jll.jl`:
34+
35+
* [`Clang_jll`](https://github.com/JuliaBinaryWrappers/Clang_jll.jl)
36+
* [`Expat_jll`](https://github.com/JuliaBinaryWrappers/Expat_jll.jl)
37+
* [`Qt6Base_jll`](https://github.com/JuliaBinaryWrappers/Qt6Base_jll.jl)
38+
* [`Qt6Declarative_jll`](https://github.com/JuliaBinaryWrappers/Qt6Declarative_jll.jl)
39+
40+
## Products
41+
42+
The code bindings within this package are autogenerated from the following `Products`:
43+
44+
* `ExecutableProduct`: `assistant`
45+
* `ExecutableProduct`: `designer`
46+
* `ExecutableProduct`: `linguist`
47+
* `ExecutableProduct`: `pixeltool`
48+
* `ExecutableProduct`: `qdbus`
49+
* `ExecutableProduct`: `qdbusviewer`
50+
* `ExecutableProduct`: `qdistancefieldgenerator`
51+
* `ExecutableProduct`: `qdoc`
52+
* `ExecutableProduct`: `qtdiag`
53+
* `ExecutableProduct`: `qtplugininfo`

src/Qt6Tools_jll.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Use baremodule to shave off a few KB from the serialized `.ji` file
2+
baremodule Qt6Tools_jll
3+
using Base
4+
using Base: UUID
5+
using LazyArtifacts
6+
Base.include(@__MODULE__, joinpath("..", ".pkg", "platform_augmentation.jl"))
7+
import JLLWrappers
8+
9+
JLLWrappers.@generate_main_file_header("Qt6Tools")
10+
JLLWrappers.@generate_main_file("Qt6Tools", UUID("41098d5d-486a-5be3-bd44-b646bda58606"))
11+
end # module Qt6Tools_jll
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Autogenerated wrapper script for Qt6Tools_jll for x86_64-linux-musl-cxx11-llvm_version+20.asserts
2+
export assistant, designer, linguist, pixeltool, qdbus, qdbusviewer, qdistancefieldgenerator, qdoc, qtdiag, qtplugininfo
3+
4+
using Expat_jll
5+
using Qt6Base_jll
6+
using Qt6Declarative_jll
7+
using Clang_jll
8+
JLLWrappers.@generate_wrapper_header("Qt6Tools")
9+
JLLWrappers.@declare_executable_product(assistant)
10+
JLLWrappers.@declare_executable_product(designer)
11+
JLLWrappers.@declare_executable_product(linguist)
12+
JLLWrappers.@declare_executable_product(pixeltool)
13+
JLLWrappers.@declare_executable_product(qdbus)
14+
JLLWrappers.@declare_executable_product(qdbusviewer)
15+
JLLWrappers.@declare_executable_product(qdistancefieldgenerator)
16+
JLLWrappers.@declare_executable_product(qdoc)
17+
JLLWrappers.@declare_executable_product(qtdiag)
18+
JLLWrappers.@declare_executable_product(qtplugininfo)
19+
function __init__()
20+
JLLWrappers.@generate_init_header(Expat_jll, Qt6Base_jll, Qt6Declarative_jll, Clang_jll)
21+
JLLWrappers.@init_executable_product(
22+
assistant,
23+
"bin/assistant",
24+
)
25+
26+
JLLWrappers.@init_executable_product(
27+
designer,
28+
"bin/designer",
29+
)
30+
31+
JLLWrappers.@init_executable_product(
32+
linguist,
33+
"bin/linguist",
34+
)
35+
36+
JLLWrappers.@init_executable_product(
37+
pixeltool,
38+
"bin/pixeltool",
39+
)
40+
41+
JLLWrappers.@init_executable_product(
42+
qdbus,
43+
"bin/qdbus",
44+
)
45+
46+
JLLWrappers.@init_executable_product(
47+
qdbusviewer,
48+
"bin/qdbusviewer",
49+
)
50+
51+
JLLWrappers.@init_executable_product(
52+
qdistancefieldgenerator,
53+
"bin/qdistancefieldgenerator",
54+
)
55+
56+
JLLWrappers.@init_executable_product(
57+
qdoc,
58+
"bin/qdoc",
59+
)
60+
61+
JLLWrappers.@init_executable_product(
62+
qtdiag,
63+
"bin/qtdiag",
64+
)
65+
66+
JLLWrappers.@init_executable_product(
67+
qtplugininfo,
68+
"bin/qtplugininfo",
69+
)
70+
71+
JLLWrappers.@generate_init_footer()
72+
end # __init__()

0 commit comments

Comments
 (0)