add wayland cross-compilation support (#140)
* add wayland-headers include path * add wayland protocols header to wayland target includes * move `xkb_unicode.c` to `sources_linux.c` * glfw: document where wayland generated sources come from * glfw: update sdk-linux-x86_64 to include Wayland protocol sources See https://github.com/hexops/sdk-linux-x86_64/pull/2 Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
ad8e1a4292
commit
38cab2e423
4 changed files with 21 additions and 8 deletions
|
|
@ -4,3 +4,4 @@
|
||||||
#include "posix_time.c"
|
#include "posix_time.c"
|
||||||
#include "posix_thread.c"
|
#include "posix_thread.c"
|
||||||
#include "linux_joystick.c"
|
#include "linux_joystick.c"
|
||||||
|
#include "xkb_unicode.c"
|
||||||
|
|
@ -2,3 +2,12 @@
|
||||||
#include "wl_monitor.c"
|
#include "wl_monitor.c"
|
||||||
#include "wl_window.c"
|
#include "wl_window.c"
|
||||||
#include "wl_init.c"
|
#include "wl_init.c"
|
||||||
|
|
||||||
|
// Note: These sources are generated by wayland-scanner, and distributed in sdk-linux-*
|
||||||
|
// See e.g. https://github.com/hexops/sdk-linux-x86_64/blob/main/generate-wayland.sh
|
||||||
|
#include "wayland-viewporter-client-protocol.c"
|
||||||
|
#include "wayland-xdg-decoration-client-protocol.c"
|
||||||
|
#include "wayland-xdg-shell-client-protocol.c"
|
||||||
|
#include "wayland-idle-inhibit-unstable-v1-client-protocol.c"
|
||||||
|
#include "wayland-pointer-constraints-unstable-v1-client-protocol.c"
|
||||||
|
#include "wayland-relative-pointer-unstable-v1-client-protocol.c"
|
||||||
|
|
@ -2,5 +2,4 @@
|
||||||
#include "x11_init.c"
|
#include "x11_init.c"
|
||||||
#include "x11_window.c"
|
#include "x11_window.c"
|
||||||
#include "x11_monitor.c"
|
#include "x11_monitor.c"
|
||||||
#include "xkb_unicode.c"
|
|
||||||
#include "glx_context.c"
|
#include "glx_context.c"
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
//! Best way to get this file in your own repository? We suggest just copying it, or importing it
|
//! Best way to get this file in your own repository? We suggest just copying it, or importing it
|
||||||
//! from a project that includes it if you're using one (e.g. mach-glfw)
|
//! from a project that includes it if you're using one (e.g. mach-glfw)
|
||||||
//!
|
//!
|
||||||
//! version: 1.0
|
//! version: Dec 24, 2021
|
||||||
|
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const Builder = std.build.Builder;
|
const Builder = std.build.Builder;
|
||||||
|
|
@ -46,7 +46,7 @@ pub const Options = struct {
|
||||||
|
|
||||||
/// The Linux x86-64 SDK repository name.
|
/// The Linux x86-64 SDK repository name.
|
||||||
linux_x86_64: []const u8 = "sdk-linux-x86_64",
|
linux_x86_64: []const u8 = "sdk-linux-x86_64",
|
||||||
linux_x86_64_revision: []const u8 = "ce9ef1e0b45d982a399fac6a9456a47a5e1f0d2e",
|
linux_x86_64_revision: []const u8 = "ab7fa8f3a05b06e0b06f4277b484e27004bfb20f",
|
||||||
|
|
||||||
/// If true, the Builder.sysroot will set to the SDK path. This has the drawback of preventing
|
/// If true, the Builder.sysroot will set to the SDK path. This has the drawback of preventing
|
||||||
/// you from including headers, libraries, etc. from outside the SDK generally. However, it can
|
/// you from including headers, libraries, etc. from outside the SDK generally. However, it can
|
||||||
|
|
@ -101,11 +101,15 @@ fn includeSdkLinuxX8664(b: *Builder, step: *std.build.LibExeObjStep, options: Op
|
||||||
}
|
}
|
||||||
|
|
||||||
var sdk_root_includes = std.fs.path.join(b.allocator, &.{ sdk_root_dir, "root/usr/include" }) catch unreachable;
|
var sdk_root_includes = std.fs.path.join(b.allocator, &.{ sdk_root_dir, "root/usr/include" }) catch unreachable;
|
||||||
defer b.allocator.free(sdk_root_includes);
|
var wayland_protocols_include = std.fs.path.join(b.allocator, &.{ sdk_root_dir, "root/usr/share/wayland-generated" }) catch unreachable;
|
||||||
step.addSystemIncludeDir(sdk_root_includes);
|
|
||||||
|
|
||||||
var sdk_root_libs = std.fs.path.join(b.allocator, &.{ sdk_root_dir, "root/usr/lib/x86_64-linux-gnu" }) catch unreachable;
|
var sdk_root_libs = std.fs.path.join(b.allocator, &.{ sdk_root_dir, "root/usr/lib/x86_64-linux-gnu" }) catch unreachable;
|
||||||
defer b.allocator.free(sdk_root_libs);
|
defer {
|
||||||
|
b.allocator.free(sdk_root_includes);
|
||||||
|
b.allocator.free(wayland_protocols_include);
|
||||||
|
b.allocator.free(sdk_root_libs);
|
||||||
|
}
|
||||||
|
step.addSystemIncludeDir(sdk_root_includes);
|
||||||
|
step.addSystemIncludeDir(wayland_protocols_include);
|
||||||
step.addLibPath(sdk_root_libs);
|
step.addLibPath(sdk_root_libs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue