Code::Blocks
This section is about setting up Code::Blocks
for developing Wii U Homebrew using the devkitPPC
toolchain.
Preparations
If you didn’t set up devkitPPC
already, you may want to follow this tutorial. You should’ve installed the required libraries for plugin development by now as well. If not, check out this page.
Installation
Code::Blocks
is a free IDE and can be downloaded here. Install it according to the Code::Blocks
homepage.
Setting up the compiler
For Wii U homebrew we generally use custom makefiles but Code::Blocks
still needs to have a valid compiler/toolchain set. Using this tutorial we are overriding an existing compiler setting.
If you are using it for non Wii U projects, make sure to make a backup/copy of the settings.
Once you have opened Code::Blocks, you can access the compiler options menu via Settings -> Compiler...
on the menu bar.
- Select the
GNU GCC Compiler for PowerPC (HighTec)
in the dropdown menu. - Press
Set as default
- Click on the
Toolchain executables
tab. - Set
Compiler's installation directory
to the bin folder of yourdevkitPPC
installation (on Windows this usually isC:\devkitPro\devkitPPC\bin
) - Set
C compiler
topowerpc-eabi-gcc
(on Windowspowerpc-eabi-gcc.exe
) - Set
C++ compiler
topowerpc-eabi-g++
(on Windowspowerpc-eabi-g++.exe
) - Set
Linker for dynamic libs:
topowerpc-eabi-g++
(on Windowspowerpc-eabi-g++.exe
) - Set
Linker for static libs:
topowerpc-eabi-ar
(on Windowspowerpc-eabi-ar.exe
) - Set
Make program
tomake
(on Windowsmake.exe
) - Save the settings by clicking on
OK
An example configuration can be found here:
Next steps
Now you can turn any existing project into a Code::Blocks
project by following this tutorial.
Alternatively, you can use the Code::Blocks
template to create a new plugin project from the scratch. A tutorial for this can be found here.
CLion
CLion
is a smart cross-platform IDE
for C
and C++
development.
Preparations
See the Code::Blocks
preparations above.
Installation
You can download CLion
here.
Setting up the compiler
In CLion
you should setup a supported gcc
like C/C++
compiler toolchain (not devkitPro
!). For Linux
this should be pre-installed. If not, you may want to follow this guide. On Windows
you need to install something like WSL
(recommended) or MinGW
/Cygwin
. Depending on which toolchain you chose, you need to configure it as the default toolchain in CLion
under File
-> Settings
-> Build, Execution, Deployment
-> Toolchains
:
Please note that this toolchain is only needed to provide code inspections on library functions. We’re of course still using devkitPro
for compiling the plugin.
Beginning a project
You can now use the Code::Blocks
template to open in CLion
by going to File
-> Open...
and choosing the project’s root directory. Delete the windows_template.cbp
file since it’s not needed.
Getting library code inspections
If you also want to get code inspections on wut
or wups
functions (highly recommended), you need to create a respective CMakeLists.txt
to use CLion
’s features to their fullest possible potential:
# We only use this CMakeLists.txt for CLion IDE support, not for building
# Set the minimum required CMake version
cmake_minimum_required(VERSION 3.10)
# Set the project name
set(PROJECT_NAME "example_project")
project(${PROJECT_NAME})
# Set the C++ standard
set(CMAKE_CXX_STANDARD 17)
# Add extra include directories
if (WIN32) # When using a Windows compilation toolchain
set(WUT "/c/devkitPro/wut/include")
set(WUPS "/c/devkitPro/wups/include")
else () # When using WSL as toolchain
set(WUT "/mnt/c/devkitPro/wut/include")
set(WUPS "/mnt/c/devkitPro/wups/include")
endif ()
include_directories(${WUT})
include_directories(${WUPS})
add_executable(${PROJECT_NAME} src/main.cpp)
Please note that you may need to adapt the WUT
and WUPS
variable file paths if they are different than the ones specified above.
Compiling
Compiling is still done using the command line/terminal and running the make
command. CLion
has a built-in Terminal feature for this. Click on View
-> Tool Windows
-> Terminal
to open a Terminal
inside CLion
:
Video tutorial
If you need some visual aid, I even created a video showing the whole plugin template and compilation setup here.