-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Rework launchers #18847
Rework launchers #18847
Conversation
595afac
to
2e50269
Compare
2e50269
to
99e425a
Compare
Rebased. |
99e425a
to
5e699df
Compare
Updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm and works, but the packaging changes are untested. One thing I did notice is that the error dialogue doesn't always open in the foreground. Is there some sort of setting to do that?
The packaging changes (except for the latest revision, but I tested that locally and verified that both the 64 and 32 bit installers work) are tested by the devtest tag, with travis logs at https://travis-ci.com/github/pchote/OpenRA/builds/203989439 I could not find any way to force the error dialog on top. I don't think this is supported in SDL 😞 |
https://stackoverflow.com/questions/11512373/findwindow-and-setforegroundwindow-alternatives/12758966#12758966 seems to offer a solution. The crash dialogue seems to retain the name from the exe, so I could get one to the front locally by using "TiberianDawn" as process name. |
That won't work because |
I tried calling I'm out of ideas, so can't proceed any further with that suggestion/request without help. If anyone wants to try modifying the code to test ideas you can compile the TD launcher with
and then copy |
The behaviour I mentioned above is explained by this link:
So it sounds like we should be expecting this to fail. |
The trick is that the game process needs to grant permission for the launcher to set the foreground window before it crashes. Added a new commit to fix this, which you can test using the msbuild command above. |
ed09e92
to
714cc22
Compare
That did the trick, good job. 👍 |
714cc22
to
7ece5f2
Compare
Open question: now that the platform launchers link against |
If there is no need to ship the generic exe, then we should drop it. |
7ece5f2
to
5f14f93
Compare
Ok, done. I also scope creeped in replacing MakeLAA.cs/exe with a python script to remove another change from #17989. New packages will be available from https://github.com/pchote/OpenRA/releases/tag/devtest-20201127-2 |
- Use SDL2 message boxes instead of Winforms. - Use a proper project instead of compiling a single file. - Use assembly attributes instead of modifying strings in the source code. - Remove generic OpenRA.exe launcher. - Replace MakeLAA.exe with a python script.
5f14f93
to
6326e4e
Compare
Updated. I also removed the |
This is the third and final PR backporting the project structure changes from #17989 for the playtest.
The first (new) commit splits the OpenRA.exe entry point into its own project, and changes OpenRA.Game to a library.
The second commit overhauls the windows launchers, taking a new approach that i'm surprised nobody considered earlier, using assembly attributes that can be passed to msbuild at compile time to avoid editing source files.
Depends on #18846.Supersedes #18582.
Test builds: https://github.com/pchote/OpenRA/releases/tag/devtest-20201122