diff --git a/.changeset/chilly-trains-nail.md b/.changeset/chilly-trains-nail.md deleted file mode 100644 index e9576eb7..00000000 --- a/.changeset/chilly-trains-nail.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -"cmake-rn": minor ---- - -Add support for building projects declaring multiple shared object libraries into Node-API addons. - -Each addon is emitted next to the sources it was built from, so that a project -declaring many addons produces the same layout as building each of them on its -own. Both the location and the name of an artifact are derived from the target -that produced it: - -- `--out` supports a new `{targetSourceDir}` placeholder, expanding to the source - directory of the target being emitted, and now defaults to - `{targetSourceDir}/build/{configuration}`. This resolves to the same path as - before, unless `--build` is pointed outside of the source directory. -- The artifact is named after the target's `OUTPUT_NAME` rather than the CMake - target name. These are the same unless `OUTPUT_NAME` is set explicitly, which is - how a project can give its targets the unique names CMake requires without - affecting the name of the addon. - -Also adds `--concurrency`, limiting how many build tasks run at once. It defaults -to the available parallelism, or to 1 when `--verbose` is enabled, since -interleaved output from concurrent builds is hard to read. diff --git a/.changeset/gentle-pandas-learn.md b/.changeset/gentle-pandas-learn.md deleted file mode 100644 index f291a8cd..00000000 --- a/.changeset/gentle-pandas-learn.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"cmake-rn": minor ---- - -Let a consumer override the Android `ANDROID_STL` CMake cache variable via -the existing `-D`/`--define` option (e.g. `--define ANDROID_STL=c++_static`). -It still defaults to `c++_shared`, matching what React Native itself uses, -but an addon that must match a prebuilt third-party dependency's STL, or one -that's genuinely self-contained, can now ask for a different value. - -This also fixes an ordering bug where a `--define` targeting any of the -Android platform's own default CMake variables (including `ANDROID_STL`) was -silently discarded: our hardcoded defaults were appended to the CMake -command line _after_ the user-provided `-D` arguments, and CMake resolves a -cache variable set multiple times via `-D` to its last occurrence. diff --git a/.changeset/real-emus-jam.md b/.changeset/real-emus-jam.md deleted file mode 100644 index 13a4194c..00000000 --- a/.changeset/real-emus-jam.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"gyp-to-cmake": minor ---- - -Add --namespaced-targets to allow a root project to add many sub-projects. - -CMake requires target names to be unique across a project tree, so sub-projects -that each declare an `addon` target cannot be added to a single root project. This -prefixes the target name with the project name, while setting `OUTPUT_NAME` so the -artifact keeps the name a `require` resolves against. diff --git a/.changeset/release-debug-logging.md b/.changeset/release-debug-logging.md deleted file mode 100644 index 218065a6..00000000 --- a/.changeset/release-debug-logging.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"react-native-node-api": patch ---- - -Stop emitting `log_debug`'s per-addon diagnostic chatter (library -found/loaded, symbol resolution, ...) in release builds. It is now compiled -out in `NDEBUG` builds (CMake's `Release`/`MinSizeRel`/`RelWithDebInfo` -configurations, and Xcode's default `Release` configuration), mirroring React -Native's own dev/release logging split. `log_warning` and `log_error` are -unaffected and keep firing in every build type. diff --git a/.changeset/silent-vendor-hermes.md b/.changeset/silent-vendor-hermes.md deleted file mode 100644 index 272847f4..00000000 --- a/.changeset/silent-vendor-hermes.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"react-native-node-api": patch ---- - -Make `vendor-hermes --silent` actually silent. The spinners were passed -`isEnabled: false`, which stops the animation but still writes the spinner text -and its final symbol to stderr. They now use `isSilent`, which suppresses the -output entirely, leaving the vendored Hermes path on stdout as the command's -only output. diff --git a/.changeset/silly-cobras-invite.md b/.changeset/silly-cobras-invite.md deleted file mode 100644 index 6c79c0e3..00000000 --- a/.changeset/silly-cobras-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"cmake-rn": minor ---- - -Add a `--code-signing-allowed` flag to `cmake-rn`. `CODE_SIGNING_ALLOWED=NO` remains the default (needed for the free-standing dynamic libraries we produce), but a consumer who needs signed binaries in the XCFramework can now pass `--code-signing-allowed` to opt in. diff --git a/.changeset/wet-carrots-relax.md b/.changeset/wet-carrots-relax.md deleted file mode 100644 index 6050c6cb..00000000 --- a/.changeset/wet-carrots-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ferric-cli": patch ---- - -Add `--dts-only` flag to `ferric build`, generating just the TypeScript declaration file and JS entrypoint without cross-compiling any Android/Apple binaries. It still runs a real host `cargo build` (napi-rs has no lighter typegen-only mode), so it's meant for regenerating a checked-in declarations fixture rather than for environments without a Rust toolchain. diff --git a/packages/cmake-rn/CHANGELOG.md b/packages/cmake-rn/CHANGELOG.md index cb7cd2c3..0db08b6d 100644 --- a/packages/cmake-rn/CHANGELOG.md +++ b/packages/cmake-rn/CHANGELOG.md @@ -1,5 +1,49 @@ # cmake-rn +## 0.8.0 + +### Minor Changes + +- c17619d: Add support for building projects declaring multiple shared object libraries into Node-API addons. + + Each addon is emitted next to the sources it was built from, so that a project + declaring many addons produces the same layout as building each of them on its + own. Both the location and the name of an artifact are derived from the target + that produced it: + - `--out` supports a new `{targetSourceDir}` placeholder, expanding to the source + directory of the target being emitted, and now defaults to + `{targetSourceDir}/build/{configuration}`. This resolves to the same path as + before, unless `--build` is pointed outside of the source directory. + - The artifact is named after the target's `OUTPUT_NAME` rather than the CMake + target name. These are the same unless `OUTPUT_NAME` is set explicitly, which is + how a project can give its targets the unique names CMake requires without + affecting the name of the addon. + + Also adds `--concurrency`, limiting how many build tasks run at once. It defaults + to the available parallelism, or to 1 when `--verbose` is enabled, since + interleaved output from concurrent builds is hard to read. + +- 3235633: Let a consumer override the Android `ANDROID_STL` CMake cache variable via + the existing `-D`/`--define` option (e.g. `--define ANDROID_STL=c++_static`). + It still defaults to `c++_shared`, matching what React Native itself uses, + but an addon that must match a prebuilt third-party dependency's STL, or one + that's genuinely self-contained, can now ask for a different value. + + This also fixes an ordering bug where a `--define` targeting any of the + Android platform's own default CMake variables (including `ANDROID_STL`) was + silently discarded: our hardcoded defaults were appended to the CMake + command line _after_ the user-provided `-D` arguments, and CMake resolves a + cache variable set multiple times via `-D` to its last occurrence. + +- 4dbd9b3: Add a `--code-signing-allowed` flag to `cmake-rn`. `CODE_SIGNING_ALLOWED=NO` remains the default (needed for the free-standing dynamic libraries we produce), but a consumer who needs signed binaries in the XCFramework can now pass `--code-signing-allowed` to opt in. + +### Patch Changes + +- Updated dependencies [7962f09] +- Updated dependencies [1d0e670] + - react-native-node-api@1.1.3 + - weak-node-api@0.1.1 + ## 0.7.2 ### Patch Changes diff --git a/packages/cmake-rn/package.json b/packages/cmake-rn/package.json index ff7b0a56..5a8c1ea3 100644 --- a/packages/cmake-rn/package.json +++ b/packages/cmake-rn/package.json @@ -1,6 +1,6 @@ { "name": "cmake-rn", - "version": "0.7.2", + "version": "0.8.0", "description": "Build React Native Node API modules with CMake", "homepage": "https://github.com/callstackincubator/react-native-node-api", "repository": { diff --git a/packages/ferric/CHANGELOG.md b/packages/ferric/CHANGELOG.md index cf49fe52..be7df824 100644 --- a/packages/ferric/CHANGELOG.md +++ b/packages/ferric/CHANGELOG.md @@ -1,5 +1,15 @@ # ferric-cli +## 0.4.3 + +### Patch Changes + +- 8a81b9b: Add `--dts-only` flag to `ferric build`, generating just the TypeScript declaration file and JS entrypoint without cross-compiling any Android/Apple binaries. It still runs a real host `cargo build` (napi-rs has no lighter typegen-only mode), so it's meant for regenerating a checked-in declarations fixture rather than for environments without a Rust toolchain. +- Updated dependencies [7962f09] +- Updated dependencies [1d0e670] + - react-native-node-api@1.1.3 + - weak-node-api@0.1.1 + ## 0.4.2 ### Patch Changes diff --git a/packages/ferric/package.json b/packages/ferric/package.json index ac7d2c25..0102d4dd 100644 --- a/packages/ferric/package.json +++ b/packages/ferric/package.json @@ -1,6 +1,6 @@ { "name": "ferric-cli", - "version": "0.4.2", + "version": "0.4.3", "description": "Rust Node-API Modules for React Native", "homepage": "https://github.com/callstackincubator/react-native-node-api", "repository": { diff --git a/packages/gyp-to-cmake/CHANGELOG.md b/packages/gyp-to-cmake/CHANGELOG.md index 0d67cec3..59b48421 100644 --- a/packages/gyp-to-cmake/CHANGELOG.md +++ b/packages/gyp-to-cmake/CHANGELOG.md @@ -1,5 +1,16 @@ # gyp-to-cmake +## 0.6.0 + +### Minor Changes + +- c17619d: Add --namespaced-targets to allow a root project to add many sub-projects. + + CMake requires target names to be unique across a project tree, so sub-projects + that each declare an `addon` target cannot be added to a single root project. This + prefixes the target name with the project name, while setting `OUTPUT_NAME` so the + artifact keeps the name a `require` resolves against. + ## 0.5.5 ### Patch Changes diff --git a/packages/gyp-to-cmake/package.json b/packages/gyp-to-cmake/package.json index 43eae5ba..505687c6 100644 --- a/packages/gyp-to-cmake/package.json +++ b/packages/gyp-to-cmake/package.json @@ -1,6 +1,6 @@ { "name": "gyp-to-cmake", - "version": "0.5.5", + "version": "0.6.0", "description": "Convert binding.gyp files to CMakeLists.txt", "homepage": "https://github.com/callstackincubator/react-native-node-api", "repository": { diff --git a/packages/host/CHANGELOG.md b/packages/host/CHANGELOG.md index 18eb910a..909f1010 100644 --- a/packages/host/CHANGELOG.md +++ b/packages/host/CHANGELOG.md @@ -1,5 +1,22 @@ # react-native-node-api +## 1.1.3 + +### Patch Changes + +- 7962f09: Stop emitting `log_debug`'s per-addon diagnostic chatter (library + found/loaded, symbol resolution, ...) in release builds. It is now compiled + out in `NDEBUG` builds (CMake's `Release`/`MinSizeRel`/`RelWithDebInfo` + configurations, and Xcode's default `Release` configuration), mirroring React + Native's own dev/release logging split. `log_warning` and `log_error` are + unaffected and keep firing in every build type. +- 1d0e670: Make `vendor-hermes --silent` actually silent. The spinners were passed + `isEnabled: false`, which stops the animation but still writes the spinner text + and its final symbol to stderr. They now use `isSilent`, which suppresses the + output entirely, leaving the vendored Hermes path on stdout as the command's + only output. +- weak-node-api@0.1.1 + ## 1.1.2 ### Patch Changes diff --git a/packages/host/package.json b/packages/host/package.json index 4f390e1b..e9d39a05 100644 --- a/packages/host/package.json +++ b/packages/host/package.json @@ -1,6 +1,6 @@ { "name": "react-native-node-api", - "version": "1.1.2", + "version": "1.1.3", "description": "Node-API for React Native", "homepage": "https://github.com/callstackincubator/react-native-node-api", "repository": {