Commit graph

656 commits

Author SHA1 Message Date
Stephen Gutekanst
8fb297f9dd glfw: update monitor API to glfw@master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-11 17:39:25 -07:00
Stephen Gutekanst
57e3e67796 glfw: update cursor API to glfw@master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-11 17:39:25 -07:00
Stephen Gutekanst
e24a0c4ce9 glfw: update build system to glfw@master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-11 17:39:25 -07:00
Stephen Gutekanst
ab26356574 glfw: ensure upstream submodule is cloned
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-11 17:39:25 -07:00
Stephen Gutekanst
96d240af1b glfw: upgrade to GLFW@master; add upstream submodule https://github.com/hexops/glfw
This upgrades us to the latest master (pre-release) version of GLFW which has our patches
for undefined behavior in Zig, effectively moving us off of our temporary fork. We now track
GLFW upstream at the revision documented in https://github.com/hexops/glfw/blob/main/VERSION

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Cai Bingjun <1945458160@qq.com>
2022-06-11 17:39:25 -07:00
Stephen Gutekanst
a19199255f glfw: stop vendoring upstream sources
Moving to the same model we use elsewhere: we now have https://github.com/hexops/glfw
which is a tiny repository with only the sources needed to compile/build/test GLFW on
every platform. It's just the upstream repository at a specific commit, recorded in
the `VERSION` file.

Helps hexops/mach#343

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-11 17:39:25 -07:00
iddev5
3ec57577df glfw: Window: use u32 values for params in setMonitor method 2022-06-11 16:00:02 -07:00
Stephen Gutekanst
e3506c6911 CI: ZIG_VERSION=0.10.0-dev.2439+c84f5a5f9 ./dev/update-zig.sh
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 05:02:04 -07:00
Stephen Gutekanst
08b7c50e73 CI: correct M1 runner Zig version
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 04:11:43 -07:00
Stephen Gutekanst
4ceff10be6 CI: ZIG_VERSION=0.10.0-dev.2439+c84f5a5f9 ./dev/update-zig.sh
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 03:39:45 -07:00
Stephen Gutekanst
96921e8e78 CI: ZIG_VERSION=0.10.0-dev.2439+c84f5a5f9 ./dev/update-zig.sh
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 03:24:34 -07:00
Stephen Gutekanst
076a8de591 glfw: CI: always upgrade Zig M1 CI version
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 03:24:34 -07:00
Stephen Gutekanst
f8e33dcce3 glfw: CI: standardize M1 CI name
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-31 03:24:34 -07:00
d3m1gd
66f8c4960e glfw: move git check 2022-05-30 10:24:09 -07:00
d3m1gd
8493ce0e75 glfw: ensure git present 2022-05-30 10:24:09 -07:00
kamidev
87848578c8 Change std.build.Pkg.path -> std.build.Pkg.source
Fixes breaking change in latest Zig master, see https://github.com/ziglang/zig/pull/11557
2022-05-29 08:25:52 -07:00
Lee Cannon
dae779de57 Update to latest Zig master (0.10.0-dev.2017+a0a2ce92c) (#261)
* use `@ceil` instead of `std.math.ceil`
* `ChildProcess.init` does not allocate anymore
* update CI zig version
* examples: temporarily switch to fork of zigimg compatible with zig-master

Commands executed:

```
git submodule set-url -- examples/libs/zigimg https://github.com/slimsag/zigimg
git submodule set-branch --branch zig-master -- examples/libs/zigimg
git submodule update --init --remote examples/libs/zigimg
```

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
2022-05-01 11:44:27 -07:00
Stephen Gutekanst
8924456958 CI: correct YAML syntax / regression
Helps hexops/mach#248

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-21 03:41:38 -07:00
Stephen Gutekanst
160422ce60 glfw: zig fmt
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-20 23:01:39 -07:00
iddev5
366499e4d8 CI: dont run aarch64-mac workflow on forks
The workflow uses a self hosted runner which is only available for
hexops/mach* repositories. Without this commit, whenever a fork of mach
or mach-* were pushed, it would queue an aarch64-mac job and then crash
after one day due to no machines being found.
2022-04-19 20:12:22 -07:00
Stephen Gutekanst
282b2f4c1a glfw: update vulkan headers to latest (adds v1.3 support)
Produced via `./update-upstream.sh`

Helps hexops/mach#236

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-18 20:44:34 -07:00
iddev5
7b6e8372c9 glfw: add getErrorString() to access the current error description 2022-04-17 10:49:05 -07:00
Isaac Freund
f8110189eb build: never use pkg-config to link system libraries (#217)
Every library we want to link against is either provided by the Zig
toolchain or part of our SDK. Therefore, using pkg-config to link
against libraries on the host system is never what we intend.

To fix this, use linkSystemLibraryName() everywhere instead of
linkSystemLibrary() as the latter integrates with pkg-config while the
former just passes -lfoo to the zig compiler.

In combination with Zig commit 38d6e1d8a8 fixing an std.build bug,
this change fixes the linking of the necessary X11 libraries on my
x86_64 glibc based Void Linux system.
2022-04-12 12:08:30 -07:00
Stephen Gutekanst
958d2ad7ca glfw: zig fmt
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-08 16:54:37 -07:00
Silver
00891b408f glfw: add type to pkg def in build.zig 2022-04-07 18:42:15 -07:00
Stephen Gutekanst
a74ad932a2 glfw: add std.build.Pkg definition
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-05 00:16:51 -07:00
Mitchell Hashimoto
46acc7c0b4 system_sdk for linux-aarch64 2022-03-30 10:05:58 -07:00
Stephen Gutekanst
fe72a5d531 glfw: update to Zig 0.10.0-dev.1600+af844931b
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-26 13:31:24 -07:00
Stephen Gutekanst
8d3cce152b glfw: CI: windows: disable progress bar for faster downloads
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-26 13:25:56 -07:00
BratishkaErik
ac7e0eed64 glfw: add instructions for Gyro in README.md (#184)
* glfw: add instructions for Gyro in README.md
2022-03-19 07:43:23 -07:00
Stephen Gutekanst
9ef611c0b4 glfw: CI: uninstall libx11 on x86_64-macos to avoid conflicts
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 02:10:07 -07:00
Stephen Gutekanst
db933d8e4d Revert "glfw: system_sdk: use addIncludeDir over addSystemIncludeDir"
This reverts commit 5f382f93658585d176bff75672412e4c57aa2f17.

I forgot that system include dirs also silence some warnings that are
present in system headers, so we can't really do this.
2022-03-06 02:05:45 -07:00
Stephen Gutekanst
03429eebca glfw: system_sdk: use addIncludeDir over addSystemIncludeDir
Since we're not specifying a sysroot by default (as that prevents
making use of other libraries/headers on your system, if you wish to)
we can have conflicts with either the headers on your system or the
headers Zig itself ships (although that shouldn't happen, except for
cases like Windows where we ship more up-to-date DirectX headers.)

System include dirs are treated with the same relative priority as other
system include dirs, those actually on your system and the ones Zig
provides. But regular include dirs are given higher priority, and so
should give our headers a better chance of being included in the event
that there should be any conflict.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 01:56:45 -07:00
Stephen Gutekanst
a2ca643c79 glfw: clone with -c core.longpaths=true for Windows
Yes, even in 2022 we're still dealing with Windows filepaths being too long.
The repository can't clone on GitHub actions Windows CI runner, currently,
because of this issue. https://stackoverflow.com/a/22575737

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:30:33 -07:00
Stephen Gutekanst
d08906679a glfw: CI: update to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:04:41 -07:00
Stephen Gutekanst
d6bf154e4c glfw: update system_sdk notes
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:35:43 -07:00
Stephen Gutekanst
9ff7cd0fdf glfw: system_sdk: add Windows system SDK with updated DirectX headers
This effectively provides all you need to develop & cross compile DirectX 11/12
applications with `mach/glfw` (or just Zig in general, by copying `system_sdk.zig`
into your own project.)

Helps hexops/mach#86
Helps hexops/mach#59

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:26:58 -07:00
Stephen Gutekanst
d8079d6245 glfw: use lowercase shell32 for Linux
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:10:51 -07:00
Stephen Gutekanst
d0f625628f glfw: fix x86_64-windows-msvc compilation support
This fixes compilation for msvc ABI. This currently only works under Windows,
I believe because Zig requires the Windows SDK to be present for msvc compilation
/ does not allow cross compilation with MSVC. Still, this is nice to have.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 15:59:36 -07:00
Stephen Gutekanst
60a4e7d0f9 glfw: remove alignment from packed structs / fix compilation with latest Zig
Not sure why we had these here, but alignment on a packed struct seems somewhat
nonsensical (after all, it's fields are packed as closely together as possible
so what would alignment refer to?) removing seems fine and fixes compilation with
latest Zig:

```
/Users/slimsag/Desktop/hexops/mach/gpu-dawn/libs/mach-glfw/src/hat.zig:8:20: error: unable to override alignment of packed struct fields
    up: bool align(@alignOf(u8)) = false,
                   ^
/Users/slimsag/Desktop/hexops/mach/gpu-dawn/libs/mach-glfw/src/mod.zig:10:23: error: unable to override alignment of packed struct fields
    shift: bool align(@alignOf(c_int)) = false,
```                      ^

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 15:48:40 -07:00
Stephen Gutekanst
3d6bc6ccd7 glfw: correct getCocoaWindow return type
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-26 23:34:17 -07:00
Stephen Gutekanst
d116d8c6a6 glfw: expose Native BackendOptions
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-26 23:34:17 -07:00
Stephen Gutekanst
e815084b05 glfw: CI: M1: skip sudo when cleaning up git submodules
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-12 00:37:45 -07:00
Stephen Gutekanst
055b48a37c glfw: CI: cleanup git submodules in M1 runner
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-11 22:51:35 -07:00
Stephen Gutekanst
d1a06812cb glfw: CI: cleanup git submodules in M1 runner
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-11 22:05:09 -07:00
Stephen Gutekanst
48c77f8594 glfw: CI: upgrade to latest Zig nightly
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-11 17:24:32 -07:00
Lee Cannon
de6f0e6c40 glfw: use comptime magic to remove InternalUserPointer and associated overhead 2022-02-11 15:13:58 -07:00
Lee Cannon
75c8baddc9 glfw: glfwGetMonitors can return null to signify no monitors 2022-02-11 15:09:09 -07:00
Lee Cannon
28e49c70d3 glfw: document why unreachable is valid 2022-02-11 15:09:09 -07:00
Stephen Gutekanst
507dbefd56 Fix minor regressions introduced in 3e79a12
3e79a12f3d686b67b7962374c7fe5c8f98ff714c

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-08 20:21:56 -07:00