-
Notifications
You must be signed in to change notification settings - Fork 25
Building MartyPC
The MartyPC Desktop frontend can be built targeting Windows, Linux, and MacOS
It may be possible to build on other platforms; please consider contributing instructions if you do.
The first step to building MartyPC is installing Rust on your system. Visit the installation instructions at rust-lang.org and follow the instructions for installing Rust via rustup
for your platform.
MartyPC uses the nightly
toolchain. Switch to nightly with the command: rustup default nightly
You can switch back to the stable toolchain with rustup default stable
if you need to.
If you are getting build errors, make sure you have updated recently via rustup update
.
Next, make sure you have git installed. If you need to install it, you can use your system's package manager, or install Git directly.
- Make sure you have installed the MSVC build tools
- You don't need to install the entire Visual Studio community edition, but you can as an alternative to installing build tools.
- When installing the build tools, you can select the C++ build option to reduce the amount of disk space you need.
- Open a command prompt
-
cd
to an appropriate directory (git will make a new subdirectory here when you clone the MartyPC repo) - Clone the repository
- Type
git clone https://github.com/dbalsom/martypc.git
- Type
- Type
cd martypc/install
- Type
cargo run -r --features ega
(features may vary - see Cargo.toml for a list)
Building for Linux follows the same basic process, but you must have several development dependencies installed. How you install them depends on your particular distribution.
-
Assuming a minimal install:
- Install git
sudo apt install git
- Install curl
sudo apt install curl
- Install build tools
sudo apt build-essential
- Run the command from the install page linked above. As of this writing, it is:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Proceed with defaults to install Rust in your home directory
- Open a new shell to set new environment variables
- Ensure the following development dependencies are installed with
sudo apt install [packagename]
pkg-config
libasound2-dev
libudev-dev
libc-dev
-
libx11-dev
- This dependency is required for hardware accelerated OpenGl!
-
cd
to an appropriate directory - Clone the martypc repo
git clone https://github.com/dbalsom/martypc.git
cd martypc/install
- Build MartyPC!
cargo run -r
- Install git
- Open a Terminal window
-
cd
to an appropriate directory - clone the repository
git clone https://github.com/dbalsom/martypc.git
-
cd
into the /install directory in the newly cloned repository - type
cargo run -r --features ega
(features may vary - see Cargo.toml for a list)
- Ensure you have the wasm-unknown-unknown target installed. You can do so with the command
rustup target add wasm32-unknown-unknown
- Build a front-end that supports wasm, such as
martypc_eframe
.-
cd
into the/frontends/martypc_eframe
directory. - Type
trunk build
to build.
-
Ensure you have the wasm-unknown-emscripten target installed. You can do so with the command rustup target add wasm32-unknown-emscripten
- Build a front-end that supports wasm, such as
martypc_eframe
.
- IDEs
- If you'd like to use a IDE, I recommend RustRover, which is currently free during EAP. I currently maintain build configurations for RustRover.
- You can also use Visual Studio Code, but I haven't been updating the build configurations in a while, so you may need to update things. Please send a pull request for anything you have to fix.
- Pull Requests
- PRs are welcome! Just be sure that you describe them well and have thoroughly tested them. Please open an issue or discussion before developing any major new functionality or feature.
- Please respect the configured rustfmt settings - I recommend configuring your editor or IDE to perform rustfmt on save.