summaryrefslogtreecommitdiffstats
path: root/rust/qmk-hid-com/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--rust/qmk-hid-com/src_c/meson.build16
-rw-r--r--rust/qmk-hid-com/src_c/package.nix63
2 files changed, 65 insertions, 14 deletions
diff --git a/rust/qmk-hid-com/src_c/meson.build b/rust/qmk-hid-com/src_c/meson.build
index 9e8357f..20388b8 100644
--- a/rust/qmk-hid-com/src_c/meson.build
+++ b/rust/qmk-hid-com/src_c/meson.build
@@ -4,22 +4,9 @@ project(
'qmk-unicode-type', 'c',
version: '0.1',
license: 'GPL-3.0-or-later',
- default_options : [
- 'buildtype=release',
- 'default_library=static'
- ],
)
-git = find_program('git', native: true, required: false)
-
-if not git.found()
- add_project_arguments('-DVERSION="@0@"'.format(meson.project_version()), language: 'c')
-else
- git_commit_hash = run_command([git.full_path(), 'describe', '--always', '--tags'], check: true).stdout().strip()
- git_branch = run_command([git.full_path(), 'rev-parse', '--abbrev-ref', 'HEAD'], check: true).stdout().strip()
- version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash, git_branch)
- add_project_arguments('-DVERSION=@0@'.format(version), language: 'c')
-endif
+add_project_arguments('-DVERSION="@0@"'.format(meson.project_version()), language: 'c')
cc = meson.get_compiler('c')
@@ -47,5 +34,6 @@ executable(
libhid,
rt,
],
+ install: true
)
diff --git a/rust/qmk-hid-com/src_c/package.nix b/rust/qmk-hid-com/src_c/package.nix
new file mode 100644
index 0000000..17f84db
--- /dev/null
+++ b/rust/qmk-hid-com/src_c/package.nix
@@ -0,0 +1,63 @@
+{
+ stdenv,
+ lib,
+ # deps
+ meson,
+ pkg-config,
+ ninja,
+ wayland-scanner,
+ wayland,
+ hidapi,
+}:
+stdenv.mkDerivation {
+ pname = "qmk-unicode-type";
+ version = "1.0.0";
+
+ src = lib.cleanSourceWith {
+ src = lib.cleanSource ./.;
+ filter = name: type:
+ (type == "directory")
+ || (builtins.elem (builtins.baseNameOf name) [
+ "virtual-keyboard-unstable-v1.xml"
+ ])
+ || (lib.strings.hasSuffix ".c" (builtins.baseNameOf name))
+ || (lib.strings.hasSuffix ".h" (builtins.baseNameOf name))
+ || (lib.strings.hasSuffix ".build" (builtins.baseNameOf name));
+ };
+
+ env = {
+ };
+ mesonFlags = lib.mapAttrsToList lib.mesonOption {
+ debug = "false";
+ optimization = "3";
+ strip = "true";
+ warning_level = "everything";
+ werror = "true";
+ b_lundef = "true";
+ b_lto = "true";
+ b_ndebug = "false";
+ b_pgo = "generate";
+ b_staticpic = "true";
+ b_pie = "false";
+ c_std = "gnu2x";
+ };
+ # ar with gcc plugins for lto objects
+ preConfigure = ''
+ CC="gcc";
+ AR="gcc-ar";
+ RANLIB="gcc-ranlib" ;
+ export CC AR RANLIB
+ '';
+
+ strictDeps = true;
+ nativeBuildInputs = [
+ meson
+ pkg-config
+ ninja
+ wayland-scanner
+ ];
+ buildInputs = [
+ wayland
+ hidapi
+ ];
+}