Skip to content

Conversation

@unexploredtest
Copy link

@unexploredtest unexploredtest commented Dec 24, 2025

Adds workflows for building Dolphin on Linux, Mac OS and Windows as discussed in #58 . Originally I wanted to merge them into a single file but I found them different enough that I made separate files for each OS.
Alongside building, the workflows also upload the builds. The one for Linux is built on Ubuntu 24.04 so it'll only work on that version specifically (due to different package versions). The one for Windows runs fine (the executable gets built on folder Release so it has to be manually copied to the root directory, alongside the python embeded files like before).

I had to make a few changes in the source code though. In finding python libraries whenever find_package is attempted it uses the systems python libraries which didn't run for me on my Windows, so instead I included them manually from the one in Externals/python, let me know what you think.

As for the second change, I encountered a very strange issue. If you attempt to build the project with cmake on Windows, you'll encounter symbol error on Gui::DrawText, which should definitely exist and doesn't happen for other methods in Gui. If you change the name to something else (Gui::DrawText2 in this case) the projects gets built successfully... Honestly a very odd issue and considering that this doesn't happen on Linux and Mac OS (and via solution) it's safe to assume that it's a bug with the compiler/linker/build system. Thankfully this doesn't change Python's API but if you dislike this I'll revert the changes but we'll also have to ditch Windows' workflow.

The Error:

     Creating library D:/a/dolphin/dolphin/build/Source/Core/DolphinQt/Release/Dolphin.lib and object D:/a/dolphin/dolphin/build/Source/Core/DolphinQt/Release/Dolphin.exp
scripting.lib(guimodule.obj) : error LNK2019: unresolved external symbol "public: void __cdecl API::Gui::DrawText(struct ImVec2,unsigned int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?DrawText@Gui@API@@QEAAXUImVec2@@IV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: static struct _object * __cdecl Py::PyCFunctionWrapperStruct<void (__cdecl*)(struct _object *,float,float,unsigned int,char const *),&void __cdecl PyScripting::draw_text(struct _object *,float,float,unsigned int,char const *)>::PyCFunctionWrapper(struct _object *,struct _object *)" (?PyCFunctionWrapper@?$PyCFunctionWrapperStruct@P6AXPEAU_object@@MMIPEBD@Z$1?draw_text@PyScripting@@YAX0MMI1@Z@Py@@SAPEAU_object@@PEAU3@0@Z) [D:\a\dolphin\dolphin\build\Source\Core\DolphinQt\dolphin-emu.vcxproj]
D:\a\dolphin\dolphin\Binary\x64\Release\Dolphin.exe : fatal error LNK1120: 1 unresolved externals [D:\a\dolphin\dolphin\build\Source\Core\DolphinQt\dolphin-emu.vcxproj]

And also, merry Christmas!

@Felk
Copy link
Owner

Felk commented Jan 2, 2026

Thanks a lot, and also Merry Christmas and Happy New Year! I'll try to take a deep look soon, but I'm currently still moving so bare with me

@unexploredtest
Copy link
Author

Happy new year! Take your time

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants