@gjsify/oxfmt-native 0.64.5 → 0.64.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/meson.build +19 -7
  2. package/package.json +6 -6
package/meson.build CHANGED
@@ -18,10 +18,23 @@ project('GjsifyOxfmt', ['c', 'vala'], version: '1.0',
18
18
 
19
19
  cc = meson.get_compiler('c')
20
20
 
21
- vala_deps = [
22
- dependency('glib-2.0'),
23
- dependency('gobject-2.0'),
24
- ]
21
+ host_system = host_machine.system()
22
+
23
+ # On darwin every GNOME library is resolved against the HOST PROCESS rather than
24
+ # recorded as an `@rpath/` dependency: a second GLib beside the one the host
25
+ # already loaded gives the process two GType registries, then SIGSEGV.
26
+ # docs/prebuilds.md § One GLib.
27
+ host_provided = ['glib-2.0', 'gobject-2.0']
28
+
29
+ vala_deps = []
30
+ foreach pkg : host_provided
31
+ dep = dependency(pkg)
32
+ vala_deps += host_system == 'darwin' \
33
+ ? dep.partial_dependency(compile_args: true, includes: true) \
34
+ : dep
35
+ endforeach
36
+
37
+ host_provided_link_args = host_system == 'darwin' ? ['-Wl,-undefined,dynamic_lookup'] : []
25
38
 
26
39
  # ----------------------------------------------------------------------------
27
40
  # Host-dependent naming + runtime-lookup conventions
@@ -44,8 +57,6 @@ vala_deps = [
44
57
  # portability work, so `else` (ELF naming) is the honest fallback rather than a
45
58
  # .dll branch that would imply support that does not exist.
46
59
  # ----------------------------------------------------------------------------
47
- host_system = host_machine.system()
48
-
49
60
  if host_system == 'darwin'
50
61
  rust_cdylib_name = 'libgjsify_oxfmt.dylib'
51
62
  shared_lib_name = 'libgjsifyoxfmt.dylib'
@@ -156,7 +167,8 @@ sources = files(
156
167
  inc = include_directories('src/vala')
157
168
 
158
169
  # Tell ld where to find libgjsify_oxfmt.so (placed there by rust_cdylib)
159
- link_args = ['-L' + meson.current_build_dir(), '-lgjsify_oxfmt']
170
+ link_args = ['-L' + meson.current_build_dir(), '-lgjsify_oxfmt'] \
171
+ + host_provided_link_args
160
172
 
161
173
  libGjsifyOxfmt = library('gjsifyoxfmt', sources,
162
174
  dependencies: vala_deps,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/oxfmt-native",
3
- "version": "0.64.5",
3
+ "version": "0.64.6",
4
4
  "description": "Vala/GObject + Rust cdylib bridge to oxc's formatter (oxfmt) for GJS. Formats JavaScript/TypeScript/JSX under GJS without a Node runtime — the Node-free counterpart to the npm `oxfmt` native napi binary, backing `gjsify format` under GJS. Wraps oxc_formatter (Prettier-compatible) via a single-shot FFI; the embedded CSS/HTML/Markdown ExternalFormatter (Prettier-NAPI) is out of scope.",
5
5
  "type": "module",
6
6
  "main": "lib/esm/index.js",
@@ -67,7 +67,7 @@
67
67
  "@girs/gobject-2.0": "5.4.0"
68
68
  },
69
69
  "devDependencies": {
70
- "@gjsify/cli": "^0.64.5",
70
+ "@gjsify/cli": "^0.64.6",
71
71
  "@types/node": "^25.9.2",
72
72
  "typescript": "^6.0.3"
73
73
  },
@@ -83,9 +83,9 @@
83
83
  },
84
84
  "homepage": "https://github.com/gjsify/gjsify/tree/main/packages/infra/oxfmt-native#readme",
85
85
  "optionalDependencies": {
86
- "@gjsify/oxfmt-native-darwin-arm64": "0.64.5",
87
- "@gjsify/oxfmt-native-darwin-x64": "0.64.5",
88
- "@gjsify/oxfmt-native-linux-arm64": "0.64.5",
89
- "@gjsify/oxfmt-native-linux-x64": "0.64.5"
86
+ "@gjsify/oxfmt-native-darwin-arm64": "0.64.6",
87
+ "@gjsify/oxfmt-native-darwin-x64": "0.64.6",
88
+ "@gjsify/oxfmt-native-linux-arm64": "0.64.6",
89
+ "@gjsify/oxfmt-native-linux-x64": "0.64.6"
90
90
  }
91
91
  }