Skip to content
Snippets Groups Projects
README.md 1.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Boytacean Libretro
    
    ## Build
    
    ```bash
    cargo build
    ```
    
    #### Arm64 Linux
    
    João Magalhães's avatar
    João Magalhães committed
    Download the linux toolchain from [Arm GNU Toolchain Downloads](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads).
    
    
    Set the env variable `ARM64_TOOLCHAIN` to the path of the toolchain directory.
    
    Create a toolchain synbolic link using the following command in Unix:
    
    ```bash
    ln -s $ARM64_TOOLCHAIN aarch64-linux-gnu
    ```
    
    ... and the following command in Windows (cmd vs powershell):
    
    ```bash
    mklink /D aarch64-linux-gnu %ARM64_TOOLCHAIN%
    New-Item -ItemType SymbolicLink -Path aarch64-linux-gnu -Target $env:ARM64_TOOLCHAIN
    ```
    
    
    To install the Rust targets for Arm64 Linux using rustup run:
    
    
    ```bash
    rustup target add aarch64-unknown-linux-gnu
    ```
    
    
    Then you're ready to build Boytacean's libretro core:
    
    
    ```bash
    cargo build --target=aarch64-unknown-linux-gnu --release
    ```
    
    #### Android
    
    
    Configure `NDK_HOME` environment variable to point to your Android NDK directory and then create local toolchain replicas in the root project directory using:
    
    ```bash
    mkdir -p ndk
    ${NDK_HOME}/build/tools/make_standalone_toolchain.py --api 26 --arch arm64 --install-dir ndk/arm64
    ${NDK_HOME}/build/tools/make_standalone_toolchain.py --api 26 --arch arm --install-dir ndk/arm
    ${NDK_HOME}/build/tools/make_standalone_toolchain.py --api 26 --arch x86 --install-dir ndk/x86
    ```
    
    To install the Rust targets for Android using rustup run:
    
    ```bash
    rustup target add aarch64-linux-android
    rustup target add armv7-linux-androideabi
    rustup target add i686-linux-android
    ```
    
    Then you're ready to build Boytacean's libretro core using the following commands (for release builds):
    
    ```bash
    cargo build --target=aarch64-linux-android --release
    cargo build --target=armv7-linux-androideabi --release
    cargo build --target=i686-linux-android --release
    ```