add build.zig
parent
e325e65eb8
commit
d6a9539e0c
|
@ -0,0 +1,83 @@
|
|||
const std = @import("std");
|
||||
|
||||
const VERSION = std.SemanticVersion{ .major = 1, .minor = 6, .patch = 0 };
|
||||
|
||||
pub fn build(b: *std.Build) void {
|
||||
const target = b.standardTargetOptions(.{});
|
||||
const optimize = b.standardOptimizeOption(.{});
|
||||
|
||||
// const enable_x11 = b.option(bool, "enable-x11", "Whether to enable x11 compatibility");
|
||||
const xkb_config_root = b.option([]const u8, "xkb-config-root", "Root directory for xkb config") orelse "/usr/share/X11/xkb";
|
||||
const x_locale_root = b.option([]const u8, "x-locale-root", "x locale root") orelse "/usr/share/X11/locale";
|
||||
|
||||
const config_header = b.addConfigHeader(.{}, .{
|
||||
.EXIT_INVALID_USAGE = @as(i64, 2),
|
||||
.LIBXKBCOMMON_VERSION = b.fmt("\"{}\"", .{VERSION}),
|
||||
.DFLT_XKB_CONFIG_ROOT = xkb_config_root,
|
||||
.DFLT_XKB_CONFIG_EXTRA_PATH = b.fmt("\"{s}\"", .{"/usr/share/xkb"}),
|
||||
.XLOCALEDIR = b.fmt("\"{s}\"", .{x_locale_root}),
|
||||
|
||||
.DEFAULT_XKB_RULES = "\"evdev\"",
|
||||
.DEFAULT_XKB_MODEL = "\"pc105\"",
|
||||
.DEFAULT_XKB_LAYOUT = "\"us\"",
|
||||
.DEFAULT_XKB_VARIANT = "NULL",
|
||||
.DEFAULT_XKB_OPTIONS = "NULL",
|
||||
|
||||
.HAVE_STRNDUP = @as(i64, 1),
|
||||
.HAVE_MMAP = @as(i64, 1),
|
||||
});
|
||||
|
||||
// _ = b.run(&.{ "bison", "--defines=src/xkbcomp/parser.h", "-o", "src/xkbcomp/parser.c", "-p", "_xkbcommon_", "src/xkbcomp/parser.y" });
|
||||
|
||||
const lib = b.addStaticLibrary(.{
|
||||
.name = "xkbcommon",
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
lib.root_module.c_std = .C11;
|
||||
lib.addConfigHeader(config_header);
|
||||
lib.addCSourceFiles(.{
|
||||
.files = &.{
|
||||
"src/compose/parser.c",
|
||||
"src/compose/paths.c",
|
||||
"src/compose/state.c",
|
||||
"src/compose/table.c",
|
||||
"src/xkbcomp/action.c",
|
||||
"src/xkbcomp/ast-build.c",
|
||||
"src/xkbcomp/compat.c",
|
||||
"src/xkbcomp/expr.c",
|
||||
"src/xkbcomp/include.c",
|
||||
"src/xkbcomp/keycodes.c",
|
||||
"src/xkbcomp/keymap.c",
|
||||
"src/xkbcomp/keymap-dump.c",
|
||||
"src/xkbcomp/keywords.c",
|
||||
"src/xkbcomp/parser.c",
|
||||
"src/xkbcomp/rules.c",
|
||||
"src/xkbcomp/scanner.c",
|
||||
"src/xkbcomp/symbols.c",
|
||||
"src/xkbcomp/types.c",
|
||||
"src/xkbcomp/vmod.c",
|
||||
"src/xkbcomp/xkbcomp.c",
|
||||
"src/atom.c",
|
||||
"src/context.c",
|
||||
"src/context-priv.c",
|
||||
"src/keysym.c",
|
||||
"src/keysym-utf.c",
|
||||
"src/keymap.c",
|
||||
"src/keymap-priv.c",
|
||||
"src/state.c",
|
||||
"src/text.c",
|
||||
"src/utf8.c",
|
||||
"src/utils.c",
|
||||
},
|
||||
});
|
||||
lib.installHeadersDirectoryOptions(.{
|
||||
.source_dir = .{ .path = "include/xkbcommon" },
|
||||
.install_dir = .header,
|
||||
.install_subdir = "xkbcommon",
|
||||
});
|
||||
lib.addIncludePath(.{ .path = "src" });
|
||||
lib.addIncludePath(.{ .path = "include/" });
|
||||
lib.linkLibC();
|
||||
b.installArtifact(lib);
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
.{
|
||||
.name = "libxkbcommon",
|
||||
.version = "1.6.0",
|
||||
|
||||
// This field is optional.
|
||||
// This is currently advisory only; Zig does not yet do anything
|
||||
// with this value.
|
||||
//.minimum_zig_version = "0.11.0",
|
||||
|
||||
// This field is optional.
|
||||
// Each dependency must either provide a `url` and `hash`, or a `path`.
|
||||
// `zig build --fetch` can be used to fetch all dependencies of a package, recursively.
|
||||
// Once all dependencies are fetched, `zig build` no longer requires
|
||||
// internet connectivity.
|
||||
.dependencies = .{
|
||||
// See `zig fetch --save <url>` for a command-line interface for adding dependencies.
|
||||
//.example = .{
|
||||
// // When updating this field to a new URL, be sure to delete the corresponding
|
||||
// // `hash`, otherwise you are communicating that you expect to find the old hash at
|
||||
// // the new URL.
|
||||
// .url = "https://example.com/foo.tar.gz",
|
||||
//
|
||||
// // This is computed from the file contents of the directory of files that is
|
||||
// // obtained after fetching `url` and applying the inclusion rules given by
|
||||
// // `paths`.
|
||||
// //
|
||||
// // This field is the source of truth; packages do not come from a `url`; they
|
||||
// // come from a `hash`. `url` is just one of many possible mirrors for how to
|
||||
// // obtain a package matching this `hash`.
|
||||
// //
|
||||
// // Uses the [multihash](https://multiformats.io/multihash/) format.
|
||||
// .hash = "...",
|
||||
//
|
||||
// // When this is provided, the package is found in a directory relative to the
|
||||
// // build root. In this case the package's hash is irrelevant and therefore not
|
||||
// // computed. This field and `url` are mutually exclusive.
|
||||
// .path = "foo",
|
||||
//},
|
||||
},
|
||||
|
||||
// Specifies the set of files and directories that are included in this package.
|
||||
// Only files and directories listed here are included in the `hash` that
|
||||
// is computed for this package.
|
||||
// Paths are relative to the build root. Use the empty string (`""`) to refer to
|
||||
// the build root itself.
|
||||
// A directory listed here means that all files within, recursively, are included.
|
||||
.paths = .{
|
||||
// This makes *all* files, recursively, included in this package. It is generally
|
||||
// better to explicitly list the files and directories instead, to insure that
|
||||
// fetching from tarballs, file system paths, and version control all result
|
||||
// in the same contents hash.
|
||||
"",
|
||||
// For example...
|
||||
//"build.zig",
|
||||
//"build.zig.zon",
|
||||
//"src",
|
||||
//"LICENSE",
|
||||
//"README.md",
|
||||
},
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,171 @@
|
|||
/* A Bison parser, made by GNU Bison 3.8.2. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
|
||||
especially those whose name start with YY_ or yy_. They are
|
||||
private implementation details that can be changed or removed. */
|
||||
|
||||
#ifndef YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED
|
||||
# define YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
#endif
|
||||
#if YYDEBUG
|
||||
extern int _xkbcommon_debug;
|
||||
#endif
|
||||
|
||||
/* Token kinds. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
enum yytokentype
|
||||
{
|
||||
YYEMPTY = -2,
|
||||
END_OF_FILE = 0, /* END_OF_FILE */
|
||||
YYerror = 256, /* error */
|
||||
YYUNDEF = 257, /* "invalid token" */
|
||||
ERROR_TOK = 255, /* ERROR_TOK */
|
||||
XKB_KEYMAP = 1, /* XKB_KEYMAP */
|
||||
XKB_KEYCODES = 2, /* XKB_KEYCODES */
|
||||
XKB_TYPES = 3, /* XKB_TYPES */
|
||||
XKB_SYMBOLS = 4, /* XKB_SYMBOLS */
|
||||
XKB_COMPATMAP = 5, /* XKB_COMPATMAP */
|
||||
XKB_GEOMETRY = 6, /* XKB_GEOMETRY */
|
||||
XKB_SEMANTICS = 7, /* XKB_SEMANTICS */
|
||||
XKB_LAYOUT = 8, /* XKB_LAYOUT */
|
||||
INCLUDE = 10, /* INCLUDE */
|
||||
OVERRIDE = 11, /* OVERRIDE */
|
||||
AUGMENT = 12, /* AUGMENT */
|
||||
REPLACE = 13, /* REPLACE */
|
||||
ALTERNATE = 14, /* ALTERNATE */
|
||||
VIRTUAL_MODS = 20, /* VIRTUAL_MODS */
|
||||
TYPE = 21, /* TYPE */
|
||||
INTERPRET = 22, /* INTERPRET */
|
||||
ACTION_TOK = 23, /* ACTION_TOK */
|
||||
KEY = 24, /* KEY */
|
||||
ALIAS = 25, /* ALIAS */
|
||||
GROUP = 26, /* GROUP */
|
||||
MODIFIER_MAP = 27, /* MODIFIER_MAP */
|
||||
INDICATOR = 28, /* INDICATOR */
|
||||
SHAPE = 29, /* SHAPE */
|
||||
KEYS = 30, /* KEYS */
|
||||
ROW = 31, /* ROW */
|
||||
SECTION = 32, /* SECTION */
|
||||
OVERLAY = 33, /* OVERLAY */
|
||||
TEXT = 34, /* TEXT */
|
||||
OUTLINE = 35, /* OUTLINE */
|
||||
SOLID = 36, /* SOLID */
|
||||
LOGO = 37, /* LOGO */
|
||||
VIRTUAL = 38, /* VIRTUAL */
|
||||
EQUALS = 40, /* EQUALS */
|
||||
PLUS = 41, /* PLUS */
|
||||
MINUS = 42, /* MINUS */
|
||||
DIVIDE = 43, /* DIVIDE */
|
||||
TIMES = 44, /* TIMES */
|
||||
OBRACE = 45, /* OBRACE */
|
||||
CBRACE = 46, /* CBRACE */
|
||||
OPAREN = 47, /* OPAREN */
|
||||
CPAREN = 48, /* CPAREN */
|
||||
OBRACKET = 49, /* OBRACKET */
|
||||
CBRACKET = 50, /* CBRACKET */
|
||||
DOT = 51, /* DOT */
|
||||
COMMA = 52, /* COMMA */
|
||||
SEMI = 53, /* SEMI */
|
||||
EXCLAM = 54, /* EXCLAM */
|
||||
INVERT = 55, /* INVERT */
|
||||
STRING = 60, /* STRING */
|
||||
INTEGER = 61, /* INTEGER */
|
||||
FLOAT = 62, /* FLOAT */
|
||||
IDENT = 63, /* IDENT */
|
||||
KEYNAME = 64, /* KEYNAME */
|
||||
PARTIAL = 70, /* PARTIAL */
|
||||
DEFAULT = 71, /* DEFAULT */
|
||||
HIDDEN = 72, /* HIDDEN */
|
||||
ALPHANUMERIC_KEYS = 73, /* ALPHANUMERIC_KEYS */
|
||||
MODIFIER_KEYS = 74, /* MODIFIER_KEYS */
|
||||
KEYPAD_KEYS = 75, /* KEYPAD_KEYS */
|
||||
FUNCTION_KEYS = 76, /* FUNCTION_KEYS */
|
||||
ALTERNATE_GROUP = 77 /* ALTERNATE_GROUP */
|
||||
};
|
||||
typedef enum yytokentype yytoken_kind_t;
|
||||
#endif
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
union YYSTYPE
|
||||
{
|
||||
#line 165 "src/xkbcomp/parser.y"
|
||||
|
||||
int64_t num;
|
||||
enum xkb_file_type file_type;
|
||||
char *str;
|
||||
xkb_atom_t atom;
|
||||
enum merge_mode merge;
|
||||
enum xkb_map_flags mapFlags;
|
||||
xkb_keysym_t keysym;
|
||||
ParseCommon *any;
|
||||
struct { ParseCommon *head; ParseCommon *last; } anyList;
|
||||
ExprDef *expr;
|
||||
struct { ExprDef *head; ExprDef *last; } exprList;
|
||||
VarDef *var;
|
||||
struct { VarDef *head; VarDef *last; } varList;
|
||||
VModDef *vmod;
|
||||
struct { VModDef *head; VModDef *last; } vmodList;
|
||||
InterpDef *interp;
|
||||
KeyTypeDef *keyType;
|
||||
SymbolsDef *syms;
|
||||
ModMapDef *modMask;
|
||||
GroupCompatDef *groupCompat;
|
||||
LedMapDef *ledMap;
|
||||
LedNameDef *ledName;
|
||||
KeycodeDef *keyCode;
|
||||
KeyAliasDef *keyAlias;
|
||||
void *geom;
|
||||
XkbFile *file;
|
||||
struct { XkbFile *head; XkbFile *last; } fileList;
|
||||
|
||||
#line 158 "src/xkbcomp/parser.h"
|
||||
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
int _xkbcommon_parse (struct parser_param *param);
|
||||
|
||||
|
||||
#endif /* !YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED */
|
Loading…
Reference in New Issue