Commit graph

106 commits

Author SHA1 Message Date
Wrench[bot]
a19dcbbc19 all: update Zig to version 0.11.0-dev.1268+0e66df209
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2023-01-12 02:05:33 -07:00
Lue
eed2be4591 glfw: refactor getError and related functions
`getError()` now returns a struct `Error` containing `error_code` and
`description`. Rationale: retrieving the error code with the previous
implementation of `getError()` caused `getErrorString()` to return
null (the reverse is also true). The new implementation allows both
values to be retrieved at once.

The previous `getError()` function has been renamed to
`getErrorCode()` to reflect the fact that it returns a simple Zig
error rather than the `Error` struct. The error set returned by
`getErrorCode()` is now named `ErrorCode` rather than `Error`.

The behavior of the `getError()` family of functions clearing the
stored error is unchanged. However, since all code that used
`defer glfw.getError() catch {}` to explicitly clear errors had to be
refactored, a new `glfw.clearError()` function that returns void is
now available to make this operation more explicit.

Additionally, `mustGetError()` is now `mustGetErrorCode()`, and new
functions `mustGetError()` and `mustGetErrorString()` have been added
which wrap `getError()` and `getErrorString()` but panic if no error
is actually available.

Tests and API documentation had to be refactored across all of
`mach/glfw`. This commit also takes the opportunity to skip tests
involving window creation on CI so that other tests may still execute
normally.
2023-01-10 20:52:41 -07:00
Stephen Gutekanst
a750e31d11 Revert "all: build: fix sdkPath for relative @src.file / fix autocompletion with ZLS / IDEs (#661)"
This reverts commit a1fe671db8.

Lue suggested reverting #661 because ZLS worked around the issue of @src
being relative in that environment: https://github.com/zigtools/zls/pull/898

This is not a perfect solution (what zls did seems to be a workaround), but
is good enough for us until Zig gets an official package manager.
2023-01-10 01:57:52 -07:00
Wrench[bot]
7d246e76b3 all: update Zig to version 0.11.0-dev.1247+87b223428
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2023-01-08 18:21:50 -07:00
Stephen Gutekanst
cd236e8df7 glfw: README: update usage example
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-08 18:21:11 -07:00
Stephen Gutekanst
abb1077052 glfw: rework error handling system to prevent footguns
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-08 18:21:11 -07:00
Lue
a1fe671db8
all: build: fix sdkPath for relative @src.file / fix autocompletion with ZLS / IDEs (#661)
* all: build: fix sdkPath for relative @src.file

Prior to this commit, the build system heavily assumed that the result
`@src.file` would always be absolute, but this is no longer
guaranteed, likely due to there being no such thing as an "absolute
path" in WASI.

It appears that for normal invocations of `zig build`, it is safe to
assume that `@src.file` is absolute. However, when ZLS uses a custom
`build_runner.zig` to collect build configuration, `@src.file` is
actually relative to the current working directory, at least on my
system. For a while, this led to ZLS completions breaking entirely,
but presently it actually causes ZLS to crash!

The solution is not as simple as using relative `sdkPath` results
as-is, because the build system may attempt to resolve these paths
relative to build root, when the paths are actually relative to the
current working directory.

This leads to a sticky situation: the current working directory is a
runtime concept, but `@src.file` is resolved at compile time. However,
it appears that the build runner does not change current working
directory in between compilation and execution, so it is probably safe
to calculate `sdkPath` using runtime current working directory.

Still, this requires major changes with how `sdkPath` works, since
runtime computation and allocations are required. So pretty much
anything that relied on `sdkPath` being comptime-known has been
refactored in this commit.

The most severe result of this is that, for example, `gpu.pkg` can no
longer be a comptime-known constant: it has to be a runtime function
that takes a `*Builder` and returns a `Pkg`.

This commit deals with usages of `*.pkg` and `sdkPath` within Mach
itself, but projects that depend on Mach such as `mach-examples` will
almost certainly require changes as well.

* all: update README to reflect change in pkg usage

For details on updating your code to use this version, see: 88b1106953

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-02 01:23:46 -07:00
Wrench[bot]
d5f37257c5 all: update Zig to version 0.11.0-dev.1023+1c711b0a6
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2023-01-01 02:40:57 -07:00
Wrench[bot]
a3a0417c21 all: update Zig to version 0.11.0-dev.1000+94780f7cd
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2022-12-30 12:52:31 -07:00
Stephen Gutekanst
f8d5db71c2 CI: do not install Zig on self-hosted runners (now managed by Wrench)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-12-29 03:19:15 -07:00
Ali Chraghi
69cbe954ac glfw: undo setSizeLimits workaround 2022-12-28 11:47:51 -07:00
Ali Chraghi
03431acf4a glfw: accept null cursor in Window.setCursor 2022-12-28 11:47:51 -07:00
Ali Chraghi
5849304fba all: update zig version 2022-12-25 13:36:03 -07:00
Ali Chraghi
a3d23b199d system_sdk: update to latest commits 2022-12-18 18:02:31 -07:00
Ali Chraghi
3b162fdd7c all: update zig version 2022-12-18 18:02:31 -07:00
Keith Chambers
c9793a4666
glfw: update to zig 0.11.0-dev.811 (#640) 2022-12-15 16:47:19 -07:00
Eric Joldasov
441b7641b5 glfw: use null in enums
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 02:18:21 -07:00
Stephen Gutekanst
568d0155fd system-sdk: use macOS 12 SDK for macOS 13 for now
Fixes hexops/mach#606

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-25 10:31:04 -07:00
Stephen Gutekanst
661ac75a31 glfw: zig fmt (true and false no longer reserved names)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-24 09:55:07 -07:00
Stephen Gutekanst
d694b8031a glfw: ensure Window.from handle is untyped
Since users of the library do not have access to the `@cImport` struct (and we
do not want to expose that), the user may pass only an untyped `*anyopaque` pointer
which we'll internally cast to `*c.GLFWwindow`.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-06 15:02:57 -07:00
Cameron Murtagh
88c5f54380
glfw: system_sdk: bump max major linux version (#602) 2022-10-29 10:50:13 -07:00
BratishkaErik
aafb26189f
all: README: fix links to main repository (#600) 2022-10-28 10:22:23 -07:00
Ali Chraghi
5a851a2a28 system_sdk: better target check 2022-10-27 16:50:30 -07:00
Stephen Gutekanst
628387764c all: CI: update to latest Zig master version
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-22 09:11:16 -07:00
Stephen Gutekanst
e4d15208a5 glfw: expose error handling functions for rare usages
Fixes hexops/mach#586

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-17 05:10:52 -07:00
Dominic
6cb0d6236f
glfw: fix native import (#583)
Co-authored-by: Ali Chraghi <63465728+alichraghi@users.noreply.github.com>
Co-authored-by: dweiller <4678790+dweiller@users.noreplay.github.com>
Co-authored-by: Stephen Gutekanst <stephen.gutekanst@gmail.com>
2022-10-16 01:19:12 -07:00
Stephen Gutekanst
72ddde2529 glfw: remove self-hosted compiler workaround
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-15 07:56:18 -07:00
Stephen Gutekanst
373179f664 glfw: remove self-hosted compiler workaround
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-15 07:51:52 -07:00
Stephen Gutekanst
03590dede5 glfw: workaround self-hosted compiler bug
Helps hexops/mach#581

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-15 00:57:35 -07:00
Stephen Gutekanst
2c65845aed all: CI: update to latest Zig 0.10.0-dev.4333+f5f28e0d2
Produced via:

```
ZIG_VERSION=0.10.0-dev.4333+f5f28e0d2 ./dev/update-zig.sh
```

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-10-14 09:00:45 -07:00
Kami Development
622a9f4d86
glfw: fix compilation with latest zig master (#574)
See 0b1dd845d9
2022-10-14 08:55:15 -07:00
Ali Chraghi
58f7121a3d all: prefix environment variables with MACH_ 2022-10-11 00:59:23 +02:00
Ali Chraghi
82e10f4f28
all: build: thisDir improvements (#570)
* build:all: thisDir improvements

more performant output, usage code reducement and compileError for wrong usage

* glfw: update deprecated code
2022-09-29 08:41:46 -07:00
Ali Chraghi
fcb82345d4
all: build: organize build files and reduce unreachables (#567) 2022-09-25 10:02:51 -07:00
Ali Chraghi
f3109b365c all: update zig version 2022-09-19 20:11:55 -07:00
Ali Chraghi
cd6b7aa714 glfw: pass system sdk options through 2022-09-19 20:11:55 -07:00
Ali Chraghi
f1c74aabe2 glfw: don't reset hints after window creation
Closes #201
2022-09-17 07:03:04 -07:00
Diego Arias
73bef9a8c4 glfw: fix implicit function declaration error on clang15 2022-09-14 13:17:09 -07:00
Alexandre Chêne
ebb4b9c2fe
glfw: remove ineffective _ = variable assignment (#531) 2022-09-14 10:40:20 -07:00
locriacyber
b8c48d6321
all: remove ineffective _ = variable assignments (#530)
Lastest Zig complains about this, so they must removed to build.
2022-09-14 09:42:29 -07:00
Stephen Gutekanst
8113ca370d all: remove support for stage1
With almost all tests/examples working on all platforms now with the new compiler,
https://github.com/hexops/mach/issues/180, it's time to remove stage1 support.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-09-10 00:09:30 -07:00
Stephen Gutekanst
f8c8d27c70 glfw: update Linux system SDKs for mach/sysaudio
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-09-10 04:06:16 +00:00
Stephen Gutekanst
b282641300 all: update to latest Zig nightly version
Performed via:

```sh
VERSION=0.10.0-dev.3952+9e070b653 ./dev/update-zig.sh
```

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-09-10 02:16:05 +00:00
NewbLuck
46c4ea4ebd
all: update to use latest Zig master APIs (#521)
Co-authored-by: Scott Johnson <scott.johnson@furniturerow.com>
2022-09-10 02:07:30 +00:00
Stephen Gutekanst
98860a67fa glfw: workaround cImport self-hosted compiler bug ziglang/zig#12784
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-09-08 07:19:36 -07:00
Ali Chraghi
ad981944d4 all: revert cimport workaround 2022-09-07 21:24:47 -07:00
Ali Chraghi
47e90c1a7e glfw: renable getName test 2022-09-02 09:42:48 -07:00
Ali Chraghi
669ef41219 glfw: fix cimport workaround errors for linux/windows 2022-09-02 09:42:48 -07:00
Ali Chraghi
157b3b1bd4 glfw:build: rename test steps 2022-08-29 05:59:52 -07:00
Ali Chraghi
47bdb5ea03 build: don't install libs, fix glfw shared lib compilation,
standardilize `buildXXX` funcs
2022-08-28 10:45:09 -07:00