Files
Bubberstation/tools/build
nevimer 4d8898fdef Merge remote-tracking branch 'skrat/master' into upstream-2024-02-03
# Conflicts:
#	_maps/map_files/IceBoxStation/IceBoxStation.dmm
#	_maps/map_files/KiloStation/KiloStation.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	_maps/skyrat/automapper/automapper_config.toml
#	code/controllers/subsystem/statpanel.dm
#	code/datums/chatmessage.dm
#	code/datums/quirks/negative_quirks/claustrophobia.dm
#	code/game/objects/items/tools/weldingtool.dm
#	code/modules/client/preferences/middleware/quirks.dm
#	code/modules/mob/living/carbon/carbon_defense.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/inventory.dm
#	code/modules/mob/living/living_say.dm
#	code/modules/modular_computers/file_system/programs/jobmanagement.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/research/designs/mechfabricator_designs.dm
#	code/modules/research/machinery/_production.dm
#	code/modules/surgery/organs/internal/_internal_organ.dm
#	html/changelogs/archive/2024-01.yml
#	modular_skyrat/modules/automapper/code/area_spawn_entries.dm
#	modular_skyrat/modules/jukebox/code/jukebox_subsystem.dm
#	modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm
#	modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm
#	modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm
#	modular_skyrat/modules/synths/code/bodyparts/power_cord.dm
#	tgstation.dme
#	tgui/packages/tgui/components/Dropdown.tsx
#	tgui/packages/tgui/components/Input.tsx
#	tgui/packages/tgui/interfaces/Fabrication/DesignBrowser.tsx
#	tgui/packages/tgui/interfaces/Jukebox.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/QuirksPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/data.ts
#	tgui/packages/tgui/interfaces/common/SearchBar.tsx
2024-02-03 21:08:40 -05:00
..

/tg/station build script

This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.

  • VSCode: a) Press Ctrl+Shift+B to build. b) Press F5 to build and run with debugger attached.
  • Windows: a) Double-click BUILD.bat in the repository root to build (will wait for a key press before it closes). b) Double-click tools/build/build.bat to build (will exit as soon as it finishes building).
  • Linux: a) Run tools/build/build from the repository root.

The script will skip build steps whose inputs have not changed since the last run.

Getting list of available targets

You can get a list of all targets that you can build by running the following command:

tools/build/build --help

Dependencies

  • On Windows, build.bat will automatically install a private (vendored) copy of Node.
  • On Linux, install Node using your package manager or from https://nodejs.org/en/download/.
  • On Linux, unless using tgs4 or later you will need to compile rust-g on the server and obtain a .so file, for instructions see https://github.com/tgstation/rust-g

Why?

We used to include compiled versions of the tgui JavaScript code in the Git repository so that the project could be compiled using BYOND only. These pre-compiled files tended to have merge conflicts for no good reason. Using a build script lets us avoid this problem, while keeping builds convenient for people who are not modifying tgui.

This build script is based on Juke Build - follow the link to read the documentation for the project and understand how it works and how to contribute.

Named byond versions

If you have byond installations in non-standard locations or want to use few versions at once for testing you can fill in dm_versions.json file in this directory. Entries with "default" set to true will be used BEFORE byond installations in standard locations. Otherwise you need to pass --dm-version={name} to the build script to choose version you want to use. Example dm_versions.json file:

[
  {
    "name": "515.1594",
    "path": "C:\\Repo\\ByondVersions\\515.1594_byond\\byond\\bin\\dm.exe",
    "default": false
  },
  {
    "name": "funny_version",
    "path": "D:\\Repo\\ByondVersions\\514.1589_byond\\byond\\bin\\dm.exe",
    "default": true
  }
]