Friday, July 16, 2021

Getting you up to date

Its been a long while since I last posted, previously I was working with Linux and getting trying to get minimize events handled but to no avail.

After the Linux task, I moved on to creating a library dependency check system to see if any of GateWare's library would need a certain library enabled in order to run correctly. The check is a preprocessor check that runs on build time. There are two types of messages the user will get, either a warning or an error. This depends on what the user defines. By default the user will get warning messages but if defined, the user can force error messages or disable the checks all together.

I worked on the dependency checks for two weeks after the last post, or the last two weeks of June, which lead into a week long Summer break. When break was over I would be working on UWP.


During the break(last week) I did some research and had a meeting with the Chase Richards, who started the UWP portion of GW, to see where he left off. As always he was very informal and helpful.

At the beginning of this week GW had a meeting and we talked about where I would start and plan things out. During the meeting I brought up an outline I had made from my meeting with Chase and we started building a work-path from there. 

In my opinion the meeting went really smoothly, besides the fact that I am the only dev currently. I believe having the meeting with Chase proved to be a very good choice because it  provided me with an outline of what to do and it let me gather the correct information to justify the points in my outline.

From the meeting my work-path would be as follows:

- Get UWP branch up to date with development

- Port missing UWP libraries

- Isolate UWP code and iOS code in app files


This whole week I have been working on getting UWP up to date from 6 months ago. The first thing I was going to do was go step by step and merging up the Git timeline. The reason behind it was i wanted to see the changes happening before my eyes to I know what merge conflicts to choose. After two merges I decided to just attempt to merge up to our development branch. It seemed to work at first, when the Input and Graphics unit tests were disabled. If they were enabled however I would get linker errors that came from some tests.

Since it worked in a certain case I decided to keep the merge. The next thing to do was fix the linker errors, which caused a lot of headache. After some time staring at the code, I realized that UWP uses different API's than GW does for user input and for console windows. The reason for the errors was because the tests were enabled but we could not feed it the right data because UWP uses its own api. The solution to this was to disable the Input and Graphics tests if UWP is being used, even if the user enables them. This is done by this:

#if !defined(WINAPI_FAMILY) && !(WINAPI_FAMILY == WINAPI_FAMILY_APP)

#endif

This checks if the UWP api is being used.


I just had a meeting with Lari and Chase earlier today over messaging. We all are on the same page about where GW and UWP is at. Now that I have a stable build i will be testing for bugs and try to see if i can make my patch more efficient. Other than that the upcoming week I will start to work on porting missing libraries.

Link to predefined macro:

https://social.msdn.microsoft.com/Forums/en-US/51f29cfe-d07f-4898-9962-945ed7b66d7f/predefined-macro-to-identify-uwp?forum=wpdevelop