Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore Windows support #4

Closed
7 tasks done
pktiuk opened this issue Aug 26, 2020 · 33 comments · Fixed by #267
Closed
7 tasks done

Restore Windows support #4

pktiuk opened this issue Aug 26, 2020 · 33 comments · Fixed by #267
Labels
enhancement New feature or request help from outside needed Issues, which cannot be entirely solved by our team, help from outside is needed. help wanted Extra attention is needed packaging Every issue linked with providing and fixing packages for different distributions and systems Windows Windows-only issues

Comments

@pktiuk
Copy link
Member

pktiuk commented Aug 26, 2020

This project requires installer for Windows.

Original antimicro was compiled on Windows, but this fork doesn't have this feature yet.
Most of required components are already included in antimicro's repository (I think it would be a good point to start).

It would be nice to also add portable version of AntiMicroX, it was done there

Things to do:

This issue is migrated of original issue juliagoda/antimicroX#131 from legacy AntiMicroX repo.

⚠️ We are looking for developers familiarized with Windows for this one, because our team consists mostly of Linux users/developers.

@pktiuk pktiuk added enhancement New feature or request help wanted Extra attention is needed packaging Every issue linked with providing and fixing packages for different distributions and systems labels Aug 26, 2020
@pktiuk pktiuk added the help from outside needed Issues, which cannot be entirely solved by our team, help from outside is needed. label Aug 28, 2020
@pktiuk pktiuk pinned this issue Sep 6, 2020
@gombosg
Copy link
Collaborator

gombosg commented Sep 12, 2020

While looking around for #32 I discovered this.

We need to learn what the original antimicro used as output library that was dropped in favor of Linux, and need to restore that event handler. See here.

@pktiuk
Copy link
Member Author

pktiuk commented Sep 16, 2020

Maybe we should stick to QT-based input methods, just like Qt Virtual Keyboard.
Maybe there is also a class for controlling mouse movement. 🤔

@gombosg
Copy link
Collaborator

gombosg commented Sep 17, 2020

Are you sure that you can generate OS input events with that? It just looks like... well, a virtual keyboard that the user can interact with.

@pktiuk
Copy link
Member Author

pktiuk commented Sep 17, 2020

It is virtual keyboard, but we could "borrow" some libraries used by this app :)

@OlegPopow
Copy link

In accordance with the wishes of the respected developer, I would like to ask about the progress of work on the Windows version. Yes, I've been using Windows to play games for some time, because unfortunately Wine does not fully meet my expectations. Some games work tragically on Wine so I had to apologize with Windows and install it after 17 years. I would be delighted if I could use the same program on two platforms and use the same profiles. Don't treat this as a rush, I just want to know if it makes any sense for me to wait or better to look for an alternative.

@pktiuk
Copy link
Member Author

pktiuk commented Oct 18, 2020

Currently, there is no measurable progress in restoring Windows support, now we are investigating possibilities of using more universal (independent on operating system) qt libraries, but while dealing with other issues we are still thinking about avoiding further breaking app for Windows (like avoiding deletion of default icons used by app, because QIcon::fromTheme won't work properly with Windows without defined fallback option).

This is still our top priority, but I am not able to deal with this task without preparations and getting familiar with the architecture of AntiMicroX, which is not as small and simple app as end-users may see it.
I am going to familiarize with structure of this project by fixing its bugs, cleaning its code/configs/files and (probably) improving logging to easier investigate problems with apps (I think it would be great to use multiple logs level in app, it would make debugging easier, because enabling all of logs gives huge output which is difficult to read)

@AriaMoradi
Copy link
Contributor

take a look at https://github.com/Tylemagne/Gopher360 the code might help?

@gombosg
Copy link
Collaborator

gombosg commented Nov 15, 2020

Starting to try and install antimicrox on Windows... argh... :)

@gombosg
Copy link
Collaborator

gombosg commented Nov 18, 2020

I set up QT Creator on my Windows, and first tried to build the original antimicro using the build instructions there. It found the SDL DLL, compiled, but failed miserably during linking.
I have 32 bit cmake, QT (5.14.2), SDL, everything (except windows).
Attached logs to see if we find anything.
cmake.txt
build.txt

@gombosg
Copy link
Collaborator

gombosg commented Nov 18, 2020

In other words, where can I learn more, see logs about what is happening (and going wrong) during linking?

@pktiuk
Copy link
Member Author

pktiuk commented Nov 18, 2020

At first glance it seems that CMake was not searching for SDL2.
It would be good to have in legacy cmake lines (try to add it somewhere at the beginning):

find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})

As an example cmake with sdl check this_link

I see find_library(SDL2_LIBRARY SDL2 ${SDL2_LIBRARY_DIR}), but it is less reliable solution than finding packages.

@gombosg
Copy link
Collaborator

gombosg commented Nov 22, 2020

After a lot of work, I managed to get the FindSDL2.cmake script running and using find_package for SDL2... to get to the same error. xD
Now that I looked through the 2 cmakelist files, I see about a dozen Windows-specific files in antimicro that have been removed from antimicrox.

@gombosg
Copy link
Collaborator

gombosg commented Nov 22, 2020

Ha! I was only 1 step from doing it, doing this AntiMicro/antimicro#207 helped.
Now we can move on to getting things working for antimicrox...

kép

@pktiuk
Copy link
Member Author

pktiuk commented Nov 23, 2020

Is your current work on any branch?
In case if someone else would like to try it.

How you have installed SDL2?

@gombosg
Copy link
Collaborator

gombosg commented Nov 24, 2020

So far I pushed here: https://github.com/AntiMicro/antimicro/tree/windows-build-fix
I used the link you mentioned to install SDL2. Though I haven't done any Linux testing, all this was for Windows.

@AriaMoradi
Copy link
Contributor

AriaMoradi commented Dec 3, 2020

Ok, first I was doing some research around #114 and exploring the past issues/commits, and now I am starting to understand why juliagoda became so bitter about things in the end.
Windows support was neglected and I completely understand why, when you don't have access to a windows box and no help is around this is what happens.

To further eliviate the case first we need windows focused devs and testers. And second we should consider this a "port/back port" not a "restoration effort".
This might be to some degree in contradiction with #114.

@gombosg
Copy link
Collaborator

gombosg commented Dec 4, 2020

Yes. I need a day or so to just sit down and measure how big of an effort this would be. Fortunately, this day is like that. :)

@AriaMoradi
Copy link
Contributor

AriaMoradi commented Dec 4, 2020

original comment: #115 (comment)
copying it here so we can discuss it further here and not go off-topic in #115

Ok this is bad! to restore windows we probably have to bring back this deleted code(and probably much more...)

And also there's this:16b4af6
which is a part of 2.25(just a few versions after 2.23 which is made by the original team.)

Then I think to restore windows It maybe best to start from somewhere between 2.25 and 2.23 and port back new features from what we have now to windows...

pretty much from what I see AntimicroX(with *nix endig is which is cooler) could be Linux only and we could continue Antimicro as a windows (only?) project.

@gombosg
Copy link
Collaborator

gombosg commented Feb 26, 2021

I can get back to this in late March, or April, sorry. It's in progress and there is some hope. :)

@Bigoukun
Copy link

Good luck in restoring Windows compatibility. I can't help with the code, but I might be able to test any Windows version you'll be able to make.

@rayman3003

This comment has been minimized.

@marci-nlm
Copy link

Hey, just found this open issue. I'll look into getting involved soon. Let me know if you need any testing done on windows

@Zacharybinx34

This comment has been minimized.

@pktiuk
Copy link
Member Author

pktiuk commented Jun 22, 2021

Sorry guys, but we haven't made any significant progress since then.
Everything done in this matter is (and will be) reported here. If you don't see any updates here you can safely assume there is no progress.

pktiuk referenced this issue in AntiMicro/antimicro Jul 13, 2021
The USE_QT5 code path already unconditionally sets CMAKE_AUTOMOC to on.

Calling QT5_WRAP_CPP() used to be just redundant, as antimicro_HEADERS_MOC
was never actually added as a source dependency of the antimicro target. In
other words, CMake's own automoc infrastructure was actually being used and
the moc invocations from QT5_WRAP_CPP() were not being made at all.

Starting with Qt 5.9.4, calling QT5_WRAP_CPP() disables the AUTOMOC property
on the macro's input files, which means neither CMake's automoc
infrastructure not QT5_WRAP_CPP()'s code were being used and we ended up
with several 'undefined reference to vtable' errors when linking.
@Grandma-Betty

This comment has been minimized.

@pktiuk pktiuk changed the title Restore Windows installer Restore Windows support Sep 16, 2021
@pktiuk
Copy link
Member Author

pktiuk commented Sep 16, 2021

First step is made, app compiles on Windows and can be launched, but this task is still far from being done.

Anyway, does anybody have experience with configuring Github Actions for Windows? #223

@pktiuk
Copy link
Member Author

pktiuk commented Oct 22, 2021

STATUS UPDATE
Thanks to help from @avinal I will be able to prepare the first Windows AntiMicroX release within 2 weeks.

@pktiuk
Copy link
Member Author

pktiuk commented Oct 29, 2021

STATUS UPDATE
AntiMicroX 3.2.0 is now released 🎉
Installer can be downloaded from release site https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0
This is the first release supporting Windows.
Because of this there may be some brand-new Windows-only bugs in there.
That's why this release may be not as stable as legacy AntiMicro. In case of any bugs open bug issue. For other questions (about usage etc) feel free to open new thread in discussions.

@pktiuk pktiuk unpinned this issue Oct 29, 2021
@Gkjsdll
Copy link

Gkjsdll commented Oct 29, 2021

Launching on Windows 10 after running the installer throws 4 separate errors about Qt5 dll's being missing. The order seems to change.

The code execution cannot proceed because Qt5Core.dll was not found. Reinstalling the program may fix this problem.
The code execution cannot proceed because Qt5Gui.dll was not found. Reinstalling the program may fix this problem.
The code execution cannot proceed because Qt5Concurrent.dll was not found. Reinstalling the program may fix this problem.
The code execution cannot proceed because Qt5Network.dll was not found. Reinstalling the program may fix this problem.

I've tried reinstalling as administrator and uninstall + reinstall, and a full system restart. I've also performed a full system restart.

@pktiuk
Copy link
Member Author

pktiuk commented Oct 29, 2021

Created new issue for this #268
Reinstalling won't help in this case.

@pktiuk
Copy link
Member Author

pktiuk commented Oct 30, 2021

Everything should now work fine.
Newly uploaded installer contains all of needed dll files

@Grandma-Betty
Copy link

Grandma-Betty commented Nov 6, 2021

Just downloaded antimicrox-3.2.0-AMD64.exe but when starting it on Windows 10 nothing happens. I also tried to run it as administrator but still: Nothing happens.
I'm on Windows 10 Version 21H1 (Build 19043.1320)
Any hints?
Thank you!

EDIT: Got it working running it in Windows 7 compatibility mode.

@scarletfrank
Copy link

Just downloaded antimicrox-3.2.0-AMD64.exe but when starting it on Windows 10 nothing happens. I also tried to run it as administrator but still: Nothing happens. I'm on Windows 10 Version 21H1 (Build 19043.1320) Any hints? Thank you!

EDIT: Got it working running it in Windows 7 compatibility mode.

I'm on Windows 10 Version 21H1 (Build 19043.1348). antimicrox-3.2.0-AMD64.exe works without administrator setting.
Also it might be a coincidence that I got Controller Companion working running it in Windows7 compatibility mode.
lol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help from outside needed Issues, which cannot be entirely solved by our team, help from outside is needed. help wanted Extra attention is needed packaging Every issue linked with providing and fixing packages for different distributions and systems Windows Windows-only issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.