Skip to content

Instantly share code, notes, and snippets.

@32th-System
Last active August 3, 2018 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 32th-System/ed3af8608a67378db7b7c06010419574 to your computer and use it in GitHub Desktop.
Save 32th-System/ed3af8608a67378db7b7c06010419574 to your computer and use it in GitHub Desktop.

Building Taisei for Windows

Requirements (We will cross compile on Ubuntu for Windows because build tools for Windows suck):

-VirtualBox -Ubuntu installation ISO -Your CPU needs to support virtualization and it needs to be enabled in the BIOS. Otherwise, if you are using Windows 10, you can use the Windows Subsystem for Linux.

VirtualBox preperation (You will need the ISO for a different Ubuntu flavour or the network installer for 32-bit)**:

To download Ubuntu, go to https://www.ubuntu.com/download/desktop and click on [Download]. It will ask you for a donation but you don't have to. The ISO will appear in your download manager anyways.

In the meantime, get VirtualBox from https://www.virtualbox.org/wiki/Downloads. Get the installer for Windows as well as the extension pack. Once you have the VirtualBox downloaded and installed, double click the extension pack to install it too.

Start up VirtualBox and click on "New". Give it a name and set the OS type to Linux and the operating system to Ubuntu (64-bit). Allocate enough memory. 2GB is recommended. It will then ask you to create a virtual hard drive. Be generous and give it 40 to 60GB. A new virtual machine should pop up in the VM manager.

Click on change and go to System > Processor. Give the VM enough CPU threads to work with for it to not be too slow. At least 2 threads are recommended. Under "Mass storage" click on the disc drive, click on the little CD with an arrow to the left and use the option to select a file. Find your Ubuntu ISO and select it. Now click [OK].

Start the VM now. When a purple screen pops up, press any key and select your language with the arrow keys and ENTER. In the next menu select "Install Ubuntu". The Ubuntu installation itslef is pretty straight forward. However it is recommended to not "Install additional software for devices and multimedia" as everything will work without it. It is also recommended to do a minimal installation as no stuff such as office programs will be needed.

When you go to reboot your VM, the ISO will automatically be ejected automatically. You just need to press ENTER when it asks you to do so.

In your new freshly installed Ubuntu system it will show you the new features of Ubuntu and ask you for system information. You can send them that information but you don't have to do so.

A window about updates should pop up soon. Definitely install the updates. Once that is done, open up a terminal. From now on everything will be done there.

Run the command sudo apt install build-essential. If nothing appears when you type in your password, that is normal. You are still typing your password. Now in the VirtualBox menu bar click on Devices > Insert Guest Additions. A dialouge box will ask you if you want to run the software on the CD. Click "yes". After the Guest Additions have ben installed, reboot the VM. Once the VM is rebooted, open the terminal back up.

Windows Subsystem for Linux preperation (Windows 10 only):

Hold the Windows key and hit R. In the dialouge box type in optionalfeatures and hit ENTER. In this dialouge box, look for "Windows Subsystem for Linux" and check the box. Reboot your PC and open up the Microsoft Store. Search for "Ubuntu" and install it then start it. It may ask you to do additional steps for setting it up. Just follow the instructions on screen.

Universal steps:

First a few packages will need ti be installed. Do that with sudo apt install build-essential git autoconf automake autopoint bison flex gperf intltool libtool-bin python ruby scons p7zip-full libgdk-pixbuf2.0-dev libfreetype6-dev meson python-docutils. In VirtualBox you can enable clipboard sharing to copy and paste this command.

Now we need to download the compiler. Do that with git clone -b taisei https://github.com/taisei-project/mxe. Navigate into the mxe folder with cd mxe. Run make but as soon as you see it say [generate settings.mk] abort by holding CTRL and pressing C immediatly. Run nano settings.mk and remove the # from #MXE_TARGETS :=...... Now delete everything except for a few things so that it looks something like this: MXE_TARGETS := x86_64-w64-mingw32.static (may vary based on your computer). The variations are: -x86_64-w64-mingw32.static: 64-bit compiler for 64-bit Windows -x86_64-w32-mingw32.static: 64-bit compiler for 32-bit Windows -i686-w64-mingw32.static: 32-bit compiler for 64-bit Windows -i686-w32-mingw32.static: 32-bit compiler for 32-bit Windows

The mxe targets can also end with .shared meaning that you will have to copy a DLL for each dependency Taisei has into the Taisei output folder.

Check taisei.mk with nano taisei.mk. It needs to contain a line that says:

LOCAL_PKG_LIST := gcc sdl2 sdl2_mixer sdl2_image zlib libpng libzip meson-wrapper freetype`

If any of the words after the "=" sign is missing, add it. If there is more than just those words there, delete the unnecessary words. To save changes with nano, hold CTRL and hit O and to exit nano hold CTRL and hit X.

Run make again and let it sit. After make has completed, run cd usr/bin and export PATH=$PATH:$(pwd). Run cd ~ to get back to where you started.

Download the Taisei source code with git clone https:/github.com/taisei-project/taisei. To download a certain branch run git clone -b branch https:/github.com/taisei-project/taisei. Example commaand to download the Reimu branch: git clone -b reimu https:/github.com/taisei-project/taisei.

Now run cd taisei to navigate to the Taisei source code folder and run mkdir ouput Next, x86_64-w64-mingw32.static-meson BUILD_OPTIONS --prefix=$(pwd)/output build. BUILD_OPTIONS are the options to append for buillding. For example, if you want a debug build, you need the option -Dbuildtype=debug and to disable OpenGL debugging append ``Ddebug_opengl=false`.

Example of debug build without OpenGL debugging: x86_64-w64-mingw32.static-meson -Dbuildtype=debug -Ddebug_opengl=false --prefix=$(pwd)/output build.

During this command there may be warnings and errors but if you get a summary, everything is fine.

Go to the build folder with cd build and run ninja. During those build commands you may see warnings but warnings are harmless. Errors aren't. If you encounter an error, report it to me. If everything runs successfully, run ninja install and cd ..

Copying the successful Taisei build to your main PC:

In the Windows Subsystem for Linux, just run cp -r output /mnt/c/ and a folder output will apprear in your C:\ drive.

In VirtualBox, you need to set up shared folders. On the menu bar, hold the right CTRL key and hit S. Click on "Shared Folders" and add a new one with the folder symbol that has a + sign. Change the folder path and give it a name. Remember the name and click OK.

In the terminal in the VM, run sudo mount -t vboxsf NAME /mnt(replace NAME with the name you gave your shared folder). Now run sudo cp -r output /mnt/. The folder you specified as the shared folder will now have the folder output in it that contains your Taisei build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment