diff --git a/packages/app/test/pack.test.mts b/packages/app/test/pack.test.mts index 77ff7b5d9..ef965a60b 100644 --- a/packages/app/test/pack.test.mts +++ b/packages/app/test/pack.test.mts @@ -284,35 +284,35 @@ describe("npm pack", () => { "windows/Win32/AutolinkedNativeModules.g.h", "windows/Win32/DevMenu.cpp", "windows/Win32/DevMenu.h", - "windows/Win32/Images/SplashScreen.scale-100.png", - "windows/Win32/Images/SplashScreen.scale-200.png", - "windows/Win32/Images/SplashScreen.scale-400.png", - "windows/Win32/Images/Square150x150Logo.scale-100.png", - "windows/Win32/Images/Square150x150Logo.scale-200.png", - "windows/Win32/Images/Square150x150Logo.scale-400.png", - "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png", - "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png", - "windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png", - "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png", - "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png", - "windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png", - "windows/Win32/Images/Square44x44Logo.scale-100.png", - "windows/Win32/Images/Square44x44Logo.scale-200.png", - "windows/Win32/Images/Square44x44Logo.scale-400.png", - "windows/Win32/Images/Square44x44Logo.targetsize-16.png", - "windows/Win32/Images/Square44x44Logo.targetsize-256.png", - "windows/Win32/Images/Square44x44Logo.targetsize-48.png", - "windows/Win32/Images/StoreLogo.scale-100.png", - "windows/Win32/Images/StoreLogo.scale-200.png", - "windows/Win32/Images/StoreLogo.scale-400.png", - "windows/Win32/Images/Wide310x150Logo.scale-200.png", "windows/Win32/Main.cpp", "windows/Win32/Main.h", "windows/Win32/Main.ico", "windows/Win32/Main.rc", "windows/Win32/Main.small.ico", - "windows/Win32/Package.appxmanifest", - "windows/Win32/ReactApp.Package.wapproj", + "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png", + "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png", + "windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png", + "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png", + "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png", + "windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png", + "windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png", + "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png", + "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png", + "windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png", + "windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png", + "windows/Win32/ReactApp.Package/Package.appxmanifest", + "windows/Win32/ReactApp.Package/ReactApp.Package.wapproj", "windows/Win32/ReactApp.vcxproj", "windows/Win32/ReactApp.vcxproj.filters", "windows/Win32/pch.cpp", diff --git a/packages/app/test/windows/copyAndReplace.test.mts b/packages/app/test/windows/copyAndReplace.test.mts index 8b712a3f9..3b5aa1eb6 100644 --- a/packages/app/test/windows/copyAndReplace.test.mts +++ b/packages/app/test/windows/copyAndReplace.test.mts @@ -6,7 +6,7 @@ import { fs, setMockFiles } from "../fs.mock.mts"; describe("copyAndReplace()", () => { const copyAndReplace: typeof copyAndReplaceActual = (src, dst, r) => - copyAndReplaceActual(src, dst, r, fs.promises); + copyAndReplaceActual(src, dst, r, fs); const readTextFile: typeof readTextFileActual = (p) => readTextFileActual(p, fs); diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png similarity index 100% rename from packages/app/windows/Win32/Images/SplashScreen.scale-100.png rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-100.png diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png similarity index 100% rename from packages/app/windows/Win32/Images/SplashScreen.scale-200.png rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-200.png diff --git a/packages/app/windows/Win32/Images/SplashScreen.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png similarity index 100% rename from packages/app/windows/Win32/Images/SplashScreen.scale-400.png rename to packages/app/windows/Win32/ReactApp.Package/Images/SplashScreen.scale-400.png diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png similarity index 100% rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-100.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-100.png diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png similarity index 100% rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-200.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-200.png diff --git a/packages/app/windows/Win32/Images/Square150x150Logo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png similarity index 100% rename from packages/app/windows/Win32/Images/Square150x150Logo.scale-400.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square150x150Logo.scale-400.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-16.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-256.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.altform-unplated_targetsize-48.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-100.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-100.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-200.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-200.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.scale-400.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.scale-400.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-16.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-16.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-16.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-256.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-256.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-256.png diff --git a/packages/app/windows/Win32/Images/Square44x44Logo.targetsize-48.png b/packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png similarity index 100% rename from packages/app/windows/Win32/Images/Square44x44Logo.targetsize-48.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Square44x44Logo.targetsize-48.png diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-100.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png similarity index 100% rename from packages/app/windows/Win32/Images/StoreLogo.scale-100.png rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-100.png diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png similarity index 100% rename from packages/app/windows/Win32/Images/StoreLogo.scale-200.png rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-200.png diff --git a/packages/app/windows/Win32/Images/StoreLogo.scale-400.png b/packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png similarity index 100% rename from packages/app/windows/Win32/Images/StoreLogo.scale-400.png rename to packages/app/windows/Win32/ReactApp.Package/Images/StoreLogo.scale-400.png diff --git a/packages/app/windows/Win32/Images/Wide310x150Logo.scale-200.png b/packages/app/windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png similarity index 100% rename from packages/app/windows/Win32/Images/Wide310x150Logo.scale-200.png rename to packages/app/windows/Win32/ReactApp.Package/Images/Wide310x150Logo.scale-200.png diff --git a/packages/app/windows/Win32/Package.appxmanifest b/packages/app/windows/Win32/ReactApp.Package/Package.appxmanifest similarity index 100% rename from packages/app/windows/Win32/Package.appxmanifest rename to packages/app/windows/Win32/ReactApp.Package/Package.appxmanifest diff --git a/packages/app/windows/Win32/ReactApp.Package.wapproj b/packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj similarity index 98% rename from packages/app/windows/Win32/ReactApp.Package.wapproj rename to packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj index 2f8bc6255..db28d6c56 100644 --- a/packages/app/windows/Win32/ReactApp.Package.wapproj +++ b/packages/app/windows/Win32/ReactApp.Package/ReactApp.Package.wapproj @@ -5,7 +5,7 @@ {b44cead7-fbff-4a17-95eb-ff5434bbd79d} $(WindowsTargetPlatformVersion) en-US - ReactApp.vcxproj + ..\ReactApp.vcxproj NativeOnly NativeOnly @@ -87,7 +87,7 @@ - + True diff --git a/packages/app/windows/app.mjs b/packages/app/windows/app.mjs index b4d66ba0b..490037b49 100755 --- a/packages/app/windows/app.mjs +++ b/packages/app/windows/app.mjs @@ -126,15 +126,19 @@ export async function copyAndReplace( srcPath, destPath, replacements, - fs = nodefs.promises + fs = nodefs ) { + mkdir_p(path.dirname(destPath), fs); + if (!replacements) { - return cp_r(srcPath, destPath, nodefs); + return cp_r(srcPath, destPath, fs); } + const fsp = fs.promises; + // Treat as text file - const data = await fs.readFile(srcPath, { encoding: "utf-8" }); - return writeTextFile(destPath, replaceContent(data, replacements), fs); + const data = await fsp.readFile(srcPath, { encoding: "utf-8" }); + return writeTextFile(destPath, replaceContent(data, replacements), fsp); } /** @@ -185,8 +189,7 @@ export async function generateSolution(destPath, options, fs = nodefs) { mkdir_p(destPath, fs); /** @type {typeof copyAndReplace} */ - const copyAndReplaceAsync = (src, dst, r) => - copyAndReplace(src, dst, r, fs.promises); + const copyAndReplaceAsync = (src, dst, r) => copyAndReplace(src, dst, r, fs); const copyTasks = projectFiles.map(([file, replacements]) => copyAndReplaceAsync( @@ -208,6 +211,7 @@ export async function generateSolution(destPath, options, fs = nodefs) { const slnPath = path.join(destPath, `${info.bundle.appName}.sln`); const vcxprojPath = path.join(projectFilesDestPath, projectFileName); const vcxprojLocalPath = path.relative(destPath, vcxprojPath); + const wapprojPath = "ReactApp.Package\\ReactApp.Package.wapproj"; copyTasks.push( writeTextFile( slnPath, @@ -230,11 +234,8 @@ export async function generateSolution(destPath, options, fs = nodefs) { `"${path.relative(destPath, rnWindowsPath)}\\` ) .replace( - "ReactApp.Package\\ReactApp.Package.wapproj", // Win32 - vcxprojLocalPath.replace( - "ReactApp.vcxproj", - "ReactApp.Package.wapproj" - ) + wapprojPath, // Win32 + vcxprojLocalPath.replace("ReactApp.vcxproj", wapprojPath) ) .replace("ReactApp\\ReactApp.vcxproj", vcxprojLocalPath) // Win32 .replace("ReactTestApp\\ReactTestApp.vcxproj", vcxprojLocalPath) // UWP diff --git a/packages/app/windows/win32.mjs b/packages/app/windows/win32.mjs index b97ac352e..ec682faa0 100644 --- a/packages/app/windows/win32.mjs +++ b/packages/app/windows/win32.mjs @@ -13,13 +13,13 @@ export function configureForWin32({ projectFileName: "ReactApp.vcxproj", projectFiles: [ ["AutolinkedNativeModules.g.cpp"], - ["Images"], ["Main.ico"], ["Main.rc"], ["Main.small.ico"], - ["Package.appxmanifest"], + ["ReactApp.Package/Images"], + ["ReactApp.Package/Package.appxmanifest"], [ - "ReactApp.Package.wapproj", + "ReactApp.Package/ReactApp.Package.wapproj", { "": bundle.contentItems, },