Step-by-step: How to build EmulationStation on Windows
-
@fieldofcows Thank you i'll take a look right now.
-
@fieldofcows sorry but still can't compile (never compiled before) what i'm doing wrong?
1> ------ Operation Compilation omitted: project: INSTALL, configuration: Debug Win32 ------
1> Project not selected to be compiled for this solution configuration
2> ------ Operation Compilation omitted: project: PACKAGE, configuration: Debug Win32 ------
2> Project not selected to be compiled for this solution configuration
========== Compile: 0 correct, 0 incorrect, 6 updated, 2 omitted ==========I'm trying to compile emulationstation-all debug win32
And if I try to compile release:
6> ------ Operation Compile started: project: ALL_BUILD, configuration: Release Win32 ------
6> Building Custom Rule C: /src/EmulationStation/CMakeLists.txt
6> CMake does not need to be re-run because C: \ src \ EmulationStation \ build \ CMakeFiles \ generate.stamp is up-to-date.
7> ------ Operation Compile skipped: project: INSTALL, configuration: Release Win32 ------
7> Project not selected to be compiled for this solution configuration
8> ------ Operation Compile skipped: project: PACKAGE, configuration: Release Win32 ------
8> Project not selected to be compiled for this solution configuration
========== Compile: 6 correct, 0 incorrect, 0 updated, 2 omitted ========== -
@Nismo That looks like it built correctly. If you look in your EmulationStation source directory there should be subdirectory named "Release" which should now contain your emulationstation.exe.
-
@fieldofcows yes the directories are there but no .exe inside, only log files.
Edit: it's ok, i was looking in the wrong release and debug folders inside "build" folder.
Compiled ok, thanks a lot, now i'm trying to translate some menus.
-
@fieldofcows Sorry mate but i have another problem, when i try to run my compiled program, it doesn't use the same libs than before, it requires mt-gd libs and more than before, now requires boost_thread, boost_chrono, boost_date_time, icuind57.dll and icuucd57.dll:
- boost_chrono-vc140-mt-gd-1_61.dll
- boost_date_time-vc140-mt-gd-1_61.dll
- boost_filesystem-vc140-mt-gd-1_61.dll
- boost_locale-vc140-mt-gd-1_61.dll
- boost_system-vc140-mt-gd-1_61.dll
- boost_thread-vc140-mt-gd-1_61.dll
- icuind57.dll
- icuucd57.dll
No problem with boost libs, i have found compiled libs out there, but i can't find icuind57.dll and icuucd57.dll.
Any tips?
Edit: fixed by compiling minsizerelease.
-
@fieldofcows it's not working the no splash screen command in the last build?
-
@Nismo said in Step-by-step: How to build EmulationStation on Windows:
it's not working the no splash screen command in the last build
Which fork of ES are you building? I've separated all the 'enhancements' out into separate commits and at the moment there isn't a branch that pulls in the latest of everything. I can put one together for you shortly if you want.
-
@fieldofcows can you do it for me? I'm using your fork I downloaded today.
Where I can find the commits you did?
-
@Nismo I tidied up my fork a while ago. The 'master' now tracks the retropie master. This branch is the previous one I built you and contains all modifications except the opacity bug fix. Will that one do for now?
-
@fieldofcows Yes!! thank you vey much!!! Nice christmas present.
I'm translating to my native language.
-
@fieldofcows do I need to make this commits to that fork?
https://github.com/fieldofcows/EmulationStation/commit/59fe6a36cbafc0a94a5db8e877ad3f497c76efd5
-
@Nismo No. That one should build fine on Windows.
-
@fieldofcows Thanks again.
-
@fieldofcows I'm having the same issues someone else is having with the following:
5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameData.cpp) 5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataList.cpp) 5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataFolder.cpp) 5>c:\src\emulationstation\es-gamedata\src\GameDataTags.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataItem.cpp) 5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataTags.cpp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4>C:\src\EmulationStation\es-core\src\platform.cpp(87): error C3861: 'open': identifier not found 4>C:\src\EmulationStation\es-core\src\platform.cpp(89): error C3861: 'close': identifier not found ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4>C:\src\EmulationStation\es-core\src\Util.cpp(105): error C2440: 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' 4> C:\src\EmulationStation\es-core\src\Util.cpp(105): note: No constructor could take the source type, or constructor overload resolution was ambiguous 4>C:\src\EmulationStation\es-core\src\Util.cpp(106): error C2440: 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' 4> C:\src\EmulationStation\es-core\src\Util.cpp(106): note: No constructor could take the source type, or constructor overload resolution was ambiguous
Now the open()/close() issue you state would be fixed in your fork but I'm using your fork. Not sure about the sqlite and initializing issues.
I'm not sure if this is related, but when building a few of the libraries, VS stated a few projects were skipped.
-
@trigger_death My 'master' branch is not the one to use anymore. It should be tracking the RetroPie branch but I think I've committed some stuff there by mistake. I generally do not use that one anymore.
I took a backup of the branch from the point where I was working on the video preview with Nismo and named it 'old_master'. You find it here: https://github.com/fieldofcows/EmulationStation/commits/old_master. This might be a good starting point if you want a Windows build. You can switch to it like this:
git clone https://github.com/fieldofcows/EmulationStation.git EmulationStation cd EmulationStation git checkout old_master
I've got a few features to sort out and try to get merged back to retropie. When this is done I'll create a Windows build branch and keep it up to date with my latest developments.
-
@fieldofcows Thanks it works. :D
But about the Windows branch, does that mean there's currently separate branches for building on Windows and Linux systems? Because I was hoping to use this to debug before spending multiple hours building on my Pi.
-
@fieldofcows I'm very happy to know that we can have an up to date windows branch.
Thank you very much.
@trigger_death If the branchs are up to date I don't think you could have any problem.
-
@trigger_death said in Step-by-step: How to build EmulationStation on Windows:
But about the Windows branch, does that mean there's currently separate branches for building on Windows and Linux systems?
That particular branch builds on Windows, Linux and Raspberry pi without problems.
There is a simple fix that needs to be applied to the retropie ES which would allow it to build on Windows. I'll see if I can suggest a PR to get it included in the retropie fork. Although this is a RPi version, I don't see any harm in including this fix.
-
@fieldofcows I hope this isn't going too off topic but: Although you say it's well documented, I actually find this guide for Windows to be much more understandable than any of the other guides for Linux or the Raspberry Pi. However, I can't seem to find any guides on how to build & install EmulationStation on RetroPie. Do you have insight into that? It's not mentioned anywhere to where the output should be as well as how to setup the libraries.
Edit: Nevermind, I've figured out how to do it and layed it out here.
-
This PR, which was merged in recently, broke my builds of ES under windows.
Basically, what happened is that PugiXML is now an git submodule, which is much easier to maintain. However, when you rebase your view, it is not automatically included.
You need to performgit submodule update --init
in order to make that happen.
Easy enough, but it took me a while to figure it out.
@BuZz: will we do the same for nanosvg?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.