mirror of
				https://github.com/tobspr/shapez.io.git
				synced 2025-06-13 13:04:03 +00:00 
			
		
		
		
	Support for building on non-steam platforms
This commit is contained in:
		
							parent
							
								
									6e9fa89792
								
							
						
					
					
						commit
						56214defaf
					
				| @ -9,26 +9,31 @@ const buildutils = require("./buildutils"); | ||||
| const execSync = require("child_process").execSync; | ||||
| 
 | ||||
| function gulptasksStandalone($, gulp) { | ||||
|     const electronBaseDir = path.join(__dirname, "..", "electron"); | ||||
|     const targets = [ | ||||
|         { | ||||
|             tempDestDir: path.join(__dirname, "..", "tmp_standalone_files"), | ||||
|             suffix: "", | ||||
|             taskPrefix: "", | ||||
|             electronBaseDir: path.join(__dirname, "..", "electron"), | ||||
|             steam: true, | ||||
|         }, | ||||
|         { | ||||
|             tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_china"), | ||||
|             suffix: "china", | ||||
|             taskPrefix: "china.", | ||||
|             electronBaseDir: path.join(__dirname, "..", "electron"), | ||||
|             steam: true, | ||||
|         }, | ||||
|         { | ||||
|             tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_wegame"), | ||||
|             suffix: "wegame", | ||||
|             taskPrefix: "wegame.", | ||||
|             electronBaseDir: path.join(__dirname, "..", "electron_wegame"), | ||||
|             steam: false, | ||||
|         }, | ||||
|     ]; | ||||
| 
 | ||||
|     for (const { tempDestDir, suffix, taskPrefix } of targets) { | ||||
|     for (const { tempDestDir, suffix, taskPrefix, electronBaseDir, steam } of targets) { | ||||
|         const tempDestBuildDir = path.join(tempDestDir, "built"); | ||||
| 
 | ||||
|         gulp.task(taskPrefix + "standalone.prepare.cleanup", () => { | ||||
| @ -39,13 +44,15 @@ function gulptasksStandalone($, gulp) { | ||||
|             const requiredFiles = [ | ||||
|                 path.join(electronBaseDir, "node_modules", "**", "*.*"), | ||||
|                 path.join(electronBaseDir, "node_modules", "**", ".*"), | ||||
|                 path.join(electronBaseDir, "steam_appid.txt"), | ||||
|                 path.join(electronBaseDir, "favicon*"), | ||||
| 
 | ||||
|                 // fails on platforms which support symlinks
 | ||||
|                 // https://github.com/gulpjs/gulp/issues/1427
 | ||||
|                 // path.join(electronBaseDir, "node_modules", "**", "*"),
 | ||||
|             ]; | ||||
|             if (steam) { | ||||
|                 requiredFiles.push(path.join(electronBaseDir, "steam_appid.txt")); | ||||
|             } | ||||
|             return gulp.src(requiredFiles, { base: electronBaseDir }).pipe(gulp.dest(tempDestBuildDir)); | ||||
|         }); | ||||
| 
 | ||||
| @ -69,6 +76,11 @@ function gulptasksStandalone($, gulp) { | ||||
|         }); | ||||
| 
 | ||||
|         gulp.task(taskPrefix + "standalone.prepareVDF", cb => { | ||||
|             if (!steam) { | ||||
|                 cb(); | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             const hash = buildutils.getRevision(); | ||||
| 
 | ||||
|             const steampipeDir = path.join(__dirname, "steampipe", "scripts"); | ||||
| @ -122,7 +134,7 @@ function gulptasksStandalone($, gulp) { | ||||
|             const privateArtifactsPath = "node_modules/shapez.io-private-artifacts"; | ||||
| 
 | ||||
|             let asar; | ||||
|             if (fs.existsSync(path.join(tempDestBuildDir, privateArtifactsPath))) { | ||||
|             if (steam && fs.existsSync(path.join(tempDestBuildDir, privateArtifactsPath))) { | ||||
|                 asar = { unpackDir: privateArtifactsPath }; | ||||
|             } else { | ||||
|                 asar = true; | ||||
| @ -152,24 +164,26 @@ function gulptasksStandalone($, gulp) { | ||||
|                             return; | ||||
|                         } | ||||
| 
 | ||||
|                         fs.writeFileSync( | ||||
|                             path.join(appPath, "LICENSE"), | ||||
|                             fs.readFileSync(path.join(__dirname, "..", "LICENSE")) | ||||
|                         ); | ||||
| 
 | ||||
|                         fse.copySync( | ||||
|                             path.join(tempDestBuildDir, "steam_appid.txt"), | ||||
|                             path.join(appPath, "steam_appid.txt") | ||||
|                         ); | ||||
| 
 | ||||
|                         fs.writeFileSync(path.join(appPath, ".itch.toml"), tomlFile); | ||||
| 
 | ||||
|                         if (platform === "linux") { | ||||
|                         if (steam) { | ||||
|                             fs.writeFileSync( | ||||
|                                 path.join(appPath, "play.sh"), | ||||
|                                 '#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n' | ||||
|                                 path.join(appPath, "LICENSE"), | ||||
|                                 fs.readFileSync(path.join(__dirname, "..", "LICENSE")) | ||||
|                             ); | ||||
|                             fs.chmodSync(path.join(appPath, "play.sh"), 0o775); | ||||
| 
 | ||||
|                             fse.copySync( | ||||
|                                 path.join(tempDestBuildDir, "steam_appid.txt"), | ||||
|                                 path.join(appPath, "steam_appid.txt") | ||||
|                             ); | ||||
| 
 | ||||
|                             fs.writeFileSync(path.join(appPath, ".itch.toml"), tomlFile); | ||||
| 
 | ||||
|                             if (platform === "linux") { | ||||
|                                 fs.writeFileSync( | ||||
|                                     path.join(appPath, "play.sh"), | ||||
|                                     '#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n' | ||||
|                                 ); | ||||
|                                 fs.chmodSync(path.join(appPath, "play.sh"), 0o775); | ||||
|                             } | ||||
|                         } | ||||
|                     }); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user