Difference between revisions of "Setting up Development Environment"

From Nintendo Switch Brew
Jump to navigation Jump to search
m (added installation path to match environment variable)
m (Protected "Setting up Development Environment": Counter-productive edit warring ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
= Setup =
 
= Setup =
Install [http://devkitpro.org/ devkitA64]. If it's already installed, update it. On Windows, there's a [https://github.com/devkitPro/installer/releases/latest graphical installer]. On Unix-like platforms such as Linux/macOS, there's a [https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitA64update.pl Perl script]. Make sure you also select libnx and the switch examples when installing.
+
Install [https://devkitpro.org/ devkitA64]. If it's already installed, update it using sudo (dkp-)pacman -Syu. On Windows, there's a [https://github.com/devkitPro/installer/releases/latest graphical installer]. On Unix-like platforms such as Linux/macOS, there's [https://github.com/devkitPro/pacman/releases/latest pacman].
 +
 
 +
[https://devkitpro.org devkitPro] also provides a set of [https://hub.docker.com/u/devkitpro/ Docker images] which come pre-installed with all the portlibs packages.
 +
 
 +
'''Please note: devkitPro is the organisation that provides the tools. They are not a software package, they don't have version numbers and the only way to have them compile your code is to pay them (or maybe if you ask nicely when you need help figuring out an issue)'''
  
 
==Windows==
 
==Windows==
devkitPro provides 64bit precompiled windows binaries of devkitA64 which can be run directly on Windows.
+
devkitPro provides 64-bit precompiled Windows binaries of devkitA64 which can be run directly on Windows.
 +
 
 +
* If you already use msys2 then you can follow the instructions at https://github.com/devkitPro/pacman/releases/latest to add the devkitPro repositories.
 +
 
 +
Otherwise
 +
 
 
* [https://github.com/devkitPro/installer/releases download the latest version of the graphical installer] from github and run it, following the instructions as you go.
 
* [https://github.com/devkitPro/installer/releases download the latest version of the graphical installer] from github and run it, following the instructions as you go.
 
* An Internet connection is required.
 
* An Internet connection is required.
* You will want to make sure devkitA64 is selected during the installation process to develop for the Switch - you can also install  devkitARM (for 3DS, DS and GBA) and devkitPPC (for GameCube/Wii development) if you wish.
+
* Ensure at least "Switch Development" is ticked - you can also leave the other options ticked if you wish.
 
* Once the installer has finished, launch MSYS from:
 
* Once the installer has finished, launch MSYS from:
 
** Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
 
** Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
Line 14: Line 23:
  
 
==Unix-like platforms==
 
==Unix-like platforms==
Currently devkitPro provides precompiled versions of devkitARM for the following Unix-like platforms: Linux (x86_64), macOS (x86_64). Note that Linux x86_64 binaries are usable under WSL.
+
Currently devkitPro provides precompiled versions of devkitA64 for the following Unix-like platforms: Linux (x86_64), macOS (x86_64). Note that Linux x86_64 binaries are usable under WSL.
 
 
* First, you need to install curl so the installer can download the devkitARM packages, and you should also install Git - you'll need it to update libnx or share your code on GitHub, among many other things. If you are running Linux, you'll also need wget; it comes preinstalled on most distributions, but not all.
 
 
 
* Find your way into a shell (eg. by opening a Terminal window), and follow the instructions for your OS:
 
** Debian/Ubuntu/Linux Mint/Ubuntu on WSL: <code>sudo apt-get install git curl</code>
 
** Fedora/CentOS/RHEL: <code>sudo yum install git curl</code>
 
** openSUSE: <code>sudo zypper install git curl</code>
 
** Arch Linux/ALWSL: <code>sudo pacman -S git curl wget</code>
 
** macOS: Download Git from [http://git-scm.com/download/mac] and install it. Curl is included with the OS.
 
 
 
* We can set the DEVKITPRO environment variable first so the script knows where to install or we can set the variable later to the value the script tells us. The script will default this to ~/devkitPro
 
<pre>
 
echo "export DEVKITPRO=/opt/devkitpro" >> ~/.bashrc
 
source ~/.bashrc
 
</pre>
 
 
 
* Next, we need to download, make executable and run the devkitARM updater (don't worry, the updater is also the installer.)
 
<pre>
 
curl -L https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitA64update.pl -o devkitA64update.pl
 
chmod +x ./devkitA64update.pl
 
./devkitA64update.pl /opt/devkitpro
 
</pre>
 
  
You may need to use sudo here if you set DEVKITPRO to a path not writable by your user.
+
* Follow the instructions to install pacman found at https://github.com/devkitPro/pacman/releases/latest
 +
* run sudo (dkp-)pacman -S switch-dev to install the tools and libraries for switch development
 +
* logout and login again to get the environment settings needed.
  
 
= Building the examples =
 
= Building the examples =

Latest revision as of 18:50, 10 November 2019

Setup

Install devkitA64. If it's already installed, update it using sudo (dkp-)pacman -Syu. On Windows, there's a graphical installer. On Unix-like platforms such as Linux/macOS, there's pacman.

devkitPro also provides a set of Docker images which come pre-installed with all the portlibs packages.

Please note: devkitPro is the organisation that provides the tools. They are not a software package, they don't have version numbers and the only way to have them compile your code is to pay them (or maybe if you ask nicely when you need help figuring out an issue)

Windows

devkitPro provides 64-bit precompiled Windows binaries of devkitA64 which can be run directly on Windows.

Otherwise

  • download the latest version of the graphical installer from github and run it, following the instructions as you go.
  • An Internet connection is required.
  • Ensure at least "Switch Development" is ticked - you can also leave the other options ticked if you wish.
  • Once the installer has finished, launch MSYS from:
    • Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
    • Windows 8 and 8.1: Right click on the Start screen and select 'All Apps'. You should find MSYS there.
    • Windows 10 (pre-Anniversary Update): Start -> All Apps -> devkitPro -> MSYS
    • Windows 10 (post-Anniversary Update): Start -> devkitPro -> MSYS

Unix-like platforms

Currently devkitPro provides precompiled versions of devkitA64 for the following Unix-like platforms: Linux (x86_64), macOS (x86_64). Note that Linux x86_64 binaries are usable under WSL.

  • Follow the instructions to install pacman found at https://github.com/devkitPro/pacman/releases/latest
  • run sudo (dkp-)pacman -S switch-dev to install the tools and libraries for switch development
  • logout and login again to get the environment settings needed.

Building the examples

Switch examples are still being created; however, there are a growing number of examples available from the switchbrew/switch-examples GitHub repository. These are downloaded by the installer and can be found in $DEVKITPRO/examples/switch

These can be built from the command line.

To start a new homebrew project from the bash shell, simply type the following (replacing ~/projects/myswitchproject with the place you would like your project to be stored, with ~ meaning your HOME directory):

cp -r $DEVKITPRO/examples/switch/templates/application ~/projects/myswitchproject
cd ~/projects/myswitchproject

The standard Makefile will use the folder as the name of the .nro that will be built. You can keep that behaviour or simply change the TARGET := $(notdir $(CURDIR)) line in the Makefile to explicitly name your project.

To compile it, type make in the project directory.