Add Common Build Tooling ## Information for Developers On Windows, the build scripts will automatically install Node. Other platforms should use their package manager or download it from https://nodejs.org/en/download/ Pick one: - VSCode: `Ctrl+Shift+B` - VSCode: `F5` (build & run with debugger) or `Ctrl+F5` (build & run without debugger) - Windows: double-click root `Build.bat` (pause to see output) or `tools/build/build.bat` (no pause) - Git Bash and non-Windows: `tools/build/build` ## Information for Server Admins - TGS scripts will automatically install the version of Node specified in `dependencies.sh` - Either use this build script, or compile tgui by running any script in `tgui/bin` folder. ## Details Both dm and tgui are now built with a single script. It's pretty easy to launch: just press `Ctrl+Shift+B` in VSCode, and tada! 🎉 **It's smart.** It will skip certain steps if source files were untouched for that step. So, if you're only touching dm code, it will only rebuild dm code, and will skip tgui. **Syntax is fairly readable and maintainable.** ```js const { Task, runTasks, exec } = require('./cbt'); const taskTgui = new Task('tgui') .depends('tgui/yarn.lock') .depends('tgui/packages/**/*.js') .provides('tgui/public/*.bundle.*') .provides('tgui/public/*.chunk.*') .build(async () => { await exec('tgui/bin/tgui'); }); runTasks([taskTgui]); ``` **This is a long term solution to the js bundle hell.** Now that we have a single script to build everything, bundles have been excluded from the repo, and they will no longer cause conflicts in PRs. This results in quicker PR turnaround time and less time wasted on rebuilding tgui for PRs. **CI pipelines have been updated.** They're not coded in the most optimal way, just making them green for now. ## Possible future work - Support compiling with DM defines by passing them as an argument, like `-D LOWMEMORYMODE`. - Instead of explicitly listing the task sequence in `runTasks()`, support specifying tasks in `.depends()`, which in turn will allow building a graph of dependencies and running things in parallel. Co-authored-by: Tad Hardesty <tad@platymuus.com> - Add root Build.bat - Add trio of tools/bootstrap/ scripts for Node - Add tools/build/README.md - Ensure build script and VSC configuration works properly on Linux - Update TGS4 PreCompile scripts Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com> - Keep PreCompile scripts compatible with TGS3 as well - Update LinuxOneShot PreCompile scripts - Update TGS4 configuration
3.4 KiB
/tg/station codebase
- Website: https://www.tgstation13.org
- Code: https://github.com/tgstation/tgstation
- Wiki: https://tgstation13.org/wiki/Main_Page
- Codedocs: https://codedocs.tgstation13.org/
- /tg/station Discord: https://tgstation13.org/phpBB/viewforum.php?f=60
- Coderbus Discord: https://discord.gg/Vh8TJp9
IRC: irc://irc.rizon.net/coderbus(dead)
This is the codebase for the /tg/station flavoured fork of SpaceStation 13.
Space Station 13 is a paranoia-laden round-based roleplaying game set against the backdrop of a nonsensical, metal death trap masquerading as a space station, with charming spritework designed to represent the sci-fi setting and its dangerous undertones. Have fun, and survive!
DOWNLOADING
Requirements for contributors
/tg/station HACKMD account - Design documentation here
Interested in some starting lore?
LICENSE
All code after commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU AGPL v3.
All code before commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU GPL v3. (Including tools unless their readme specifies otherwise.)
See LICENSE and GPLv3.txt for more details.
The TGS DMAPI API is licensed as a subproject under the MIT license.
See the footer of code/__DEFINES/tgs.dm and code/modules/tgs/LICENSE for the MIT license.
All assets including icons and sound are under a Creative Commons 3.0 BY-SA license unless otherwise indicated.
