Building EE for Windows just became a bit easier.

Assuming you have a linux machine that is. Anything based on debian.

Also, the Windows Linux Subsystem will most likely work. But did not try that.

Instructions:
sudo apt install mingw-w64 cmake
git clone https://github.com/daid/EmptyEpsilon.git
git clone https://github.com/daid/SeriousProton.git
cd EmptyEpsilon
mkdir _build_win32
cd _build_win32
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw.toolchain -DSERIOUS_PROTON_DIR=../../SeriousProton
make -j 8 package
This should download and build SFML as well.

I hope I can manage the same for the Android build now.

Comments

  • I love simplified procedures
  • Making some progress with Android as well. But CMake, the android NDK and SFML are pretty much fighting each other over build system control, and I need to be nanny and keep them in line.
  • Minor news. Managed to build an EE Android APK that does not work... :neutral:
    But making some progress.
  • Good luck, man!

    Your kung fu is powerful.
  • Progress is good news even if it's not quite working yet
  • Partial good news. Android version starts now. Scenario selection does not work and crashes on exit. But important step has been made.
  • I've archived my results with instructions. Instructions to build for android are almost the same as for windows now:

    https://github.com/daid/EmptyEpsilon/blob/master/android/Readme.md

    I think it will work as a client just fine, but didn't test that yet.
    Latest test version can also be found at http://daid.eu/ee/EmptyEpsilon.apk
  • I tried it as a client. It did not connect to the server, although, the server is running 20190521 and this client says it's 20190812. I did not try to rebuild and force to the version that matches the server, I just took the .apk directly from the second link
  • Nice!
    I have tried the windows cross-compile, but sadly ran into issues.
    Downloadling sfml, Compiling and creating the exe seems to work fine, however the packaging don't work.
    There are a lot of errors about missing dll files in the form of file INSTALL cannot find "/home/$USER/source/EmptyEpsilon/cmake/_win32//SFML_install/bin/libFLAC-8.dll".
    There are similar other error messages for a couple of DLLs.
    The strange thing is that the cmake says the linking of those dll worked (but in a strange path, "../../../lib", that does not exist and would be outside of the EE directory tree) however, I don't find them anywhere. Also, I don't see a folder "SFML_install", but the "//" indicates a Path error anyway.
  • edited August 2019
    To the android version: I runs on a Samsung Galaxy Tab 2, but has the same Problems as older apks: in radar views no distance circles, and also no nebulae are shown, but I guess that was to be expected. Engineering and relay seems to work fine.
    I tried it as a client. It did not connect to the server, although, the server is running 20190521 and this client says it's 20190812.
    Yep that is normal. But easier than compile the apk is to just to recompile a linux version, as I guess you have the setup already. I usually compile the recent sources with version number 0(unless I do a specific branch), and the app connects to it.
  • For the windows issue, looks like a bunch of dlls are no longer needed with a newer SFML. So that should be a simple fix. Good to hear the exe builds, that's the hard bit. The rest is just some minor things to fix.

    The android bugs are expected, nothing has been done to fix those. But good to hear that it does something :-)
  • I think I fixed the packaging issues for windows. I didn't test the final build yet, but the package is properly build now.

    I now have the linux, android and windows builds running in CI, so I know if things fail to build again.
  • Yes, that works now, great!
  • just got the new build to work on windows linux subsystem.
    went pretty smooth. the first attempts produced errors both in the cmake command and in the make command, for inability to copy some files. after a few attempts I added sudo to both these commands and it works great.

    my script also uses $(grep -c ^processor /proc/cpuinfo) instead of 8 for CPU count.
  • How's performance on the windows linux subsystem? When someone tried running SNIS with the windows linux subsystem, performance was pretty bad because it seemed to be using software rendering, and we couldn't figure out how to allow it to use the GPU.
  • I might be wrong, but I figured greenshade only used the subsystem to crosscompile a windows version, as that's probably easier than building it natively.
  • Indeed. WLS is only used for building in this case. You end up with a native windows version.

    I do a lot of crosscompiling for my day job. So this is pretty much standard stuff for me.

    Never tried gui applications in WLS
  • I used WLS for the build only and as expected it's much faster than virtualbox.
    WLS is only intended for command line applications.
  • edited September 2019
    So I now tried building the apk as well. First small obstacle was that cmake could not find java (I only had the runtime installed on the build machine, installing the openjdk-8-jdk package solved that). So I guess there should be openjdk added as a depedancy for the android build.

    Then configuring and building ran fine for a while, although it complained about not finding ~/.android/repositories.cfg, which don't stopped it from building though.
    The make part throwed a bunch of warnings, but did go quite far anyways, then it stopped with this output (rough translation, as it is german here)
    jarsigner error: java.lang.RuntimeException: keystore load: /home/$USER/.keystore (file or directory not found)
    CMakeFiles/apk.dir/build.make:65: rule for target „EmptyEpsilon.apk.unaligned“ failed
    make[2]: *** [EmptyEpsilon.apk.unaligned] Error 1
    make[2]: *** Datei „EmptyEpsilon.apk.unaligned“ will be removed
    CMakeFiles/Makefile2:136: rule for target „CMakeFiles/apk.dir/all“ failed
    make[1]: *** [CMakeFiles/apk.dir/all] Error 2
    Makefile:151: rule for target "all" failed
    make: *** [all] Error 2
  • I've just tried building a release with crash-log. I've set -DDRMINGW_ROOT="../../drmingw-0.8.2-win32" -DENABLE_CRASH_LOGGER=1 in the cmake command, but I get a
    SeriousProton/src/engine.cpp:16:10: fatal error: exchndl.h: No such file or directory
    #include <exchndl.h>
    any idea what i'm doing wrong?
  • @BlueShadow The warnings are currently expected. No worries there. The missing keystore is a missing checking my cmake file for something you need to setup manually. You need to generate a signing key for android. See: https://github.com/daid/EmptyEpsilon/blob/master/cmake/android.toolchain#L23

    Fact that you got to signing means that the build is pretty much done.

    @greenshade I think the DRMINGW_ROOT needs to be an absolute path, at least. That's the difference I see with my build. But I hope to intigrade this into the whole auto-setup-and-build as well, so it is less error prone.
  • Thank you. I just used $(pwd)/../../drmingw-0.8.2-win32 and it works.
    I can haz crash logz now
Sign In or Register to comment.