diff --git a/packages/cmake-rn/src/cli.ts b/packages/cmake-rn/src/cli.ts index d7d621f5..abd0893c 100644 --- a/packages/cmake-rn/src/cli.ts +++ b/packages/cmake-rn/src/cli.ts @@ -79,11 +79,16 @@ const cleanOption = new Option( "Delete the build directory before configuring the project" ); -const outPathOption = new Option( +const outOption = new Option( "--out ", "Specify the output directory to store the final build artifacts" ); +const outToBuildOption = new Option( + "--out-to-build", + "Use `./build/${configuration}` directory as output (like `node-gyp` and `cmake-js`)" +); + const ndkVersionOption = new Option( "--ndk-version ", "The NDK version to use for Android builds" @@ -118,7 +123,8 @@ export const program = new Command("cmake-rn") .addOption(androidOption) .addOption(appleOption) .addOption(buildPathOption) - .addOption(outPathOption) + .addOption(outOption) + .addOption(outToBuildOption) .addOption(cleanOption) .addOption(ndkVersionOption) .addOption(androidSdkVersionOption) @@ -169,6 +175,14 @@ export const program = new Command("cmake-rn") } } + if (globalContext.outToBuild) { + assert( + globalContext.out === undefined, + "Cannot use --out with --out-to-build" + ); + globalContext.out = path.join(buildPath, globalContext.configuration); + } + const tripletContext = [...triplets].map((triplet) => { const tripletBuildPath = getTripletBuildPath(buildPath, triplet); return {