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

refactor(windows): merge keyman64 build into keyman32 #11906

Merged
merged 4 commits into from
Jul 3, 2024

Conversation

mcdurdin
Copy link
Member

@mcdurdin mcdurdin commented Jul 2, 2024

Merges the build settings for keyman64.dll vc++ project into the keyman32.dll project, so they are both built from the same project, in preparation for ARM support, to minimize repetition in the source tree.

There should be no material differences to the built libraries.

Also cleans up some noise in keyman32.vcxproj which made it easier to verify the changes.

Fixes: #11904

User Testing

  • TEST_WINDOWS: Please run a basic test of Windows functionality, verifying that Keyman operates as expected.

Merges the build settings for keyman64.dll vc++ project into the
keyman32.dll project, so they are both built from the same project, in
preparation for ARM support, to minimize repetition in the source tree.

There should be no material differences to the built libraries.

Also cleans up some noise in keyman32.vcxproj which made it easier to
verify the changes.

Fixes: #11904
@keymanapp-test-bot keymanapp-test-bot bot added has-user-test user-test-missing User tests have not yet been defined for the PR labels Jul 2, 2024
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jul 2, 2024

User Test Results

Test specification and instructions

  • TEST_WINDOWS (PASSED): I tested this issue with the attached "keyman-18.0.66.exe" build on the Windows 10 and 11 OS environments: Here is my observation. (notes)

@@ -18,7 +18,7 @@ builder_describe "Keyman common Windows modules" \

builder_parse "$@"

if [[ $BUILDER_OS != windows ]]; then
if [[ $BUILDER_OS != win ]]; then
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This script isn't actually used at this point, but I noticed this when testing. Just a silly.

#ifdef _WIN64
#error hotkeys.cpp is not required for win64.
#endif
#ifndef _WIN64
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Swapping the condition around, because the .cpp files are now included with all archs, and it is easier to track in the .cpp than having conditional exclusions in the .vcxproj

@keymanapp-test-bot keymanapp-test-bot bot added user-test-required User tests have not been completed and removed user-test-missing User tests have not yet been defined for the PR labels Jul 2, 2024
Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

windows/src/engine/keyman32/build.sh Outdated Show resolved Hide resolved
windows/src/engine/build.sh Show resolved Hide resolved
@@ -31,6 +31,9 @@
////////////////////////////////////////////////////////////////////////////

#include "pch.h"

#ifndef _WIN64
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be the other way round?

Suggested change
#ifndef _WIN64
#ifdef _WIN64

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this is correct as it is -- even though that is confusing! The syskbd* files are only used in the x86 host.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a comment or fill in the description at the top?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a comment or fill in the description at the top?

See #11929. Apologies for missing this before merge.

@dinakaranr
Copy link

Test Results

  • TEST_WINDOWS (Passed): I tested this issue with the attached "keyman-18.0.66.exe" build on the Windows 10 and 11 OS environments: Here is my observation.
  1. Installed the "keyman-18.0.66.exe" file. 
  2. A keyboard was added to the system tray.
  3. Open the "Configuration" window.
  4. Installed and uninstalled keyboards are listed on the "Keyboard Layouts" tab.
  5. Hotkeys works, which is mentioned on the "Hotkeys" tab.
  6. Keyboard switched between languages by (Left-ALT + Shift).
  7. The keyboard works well in Notepad and libreoffice. 
  8. The feature works well in the Windows 10 and 11 OS environments. Thank you.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Jul 2, 2024
@mcdurdin mcdurdin merged commit 4f39c75 into master Jul 3, 2024
3 checks passed
@mcdurdin mcdurdin deleted the refactor/windows/11904-merge-keyman32-keyman64 branch July 3, 2024 20:58
@keyman-server
Copy link
Collaborator

Changes in this pull request will be available for download in Keyman version 18.0.68-alpha

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

Successfully merging this pull request may close these issues.

refactor(windows): merge keyman32 and keyman64 source folders
5 participants