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

chore(windows): move from Makefile to build.sh #11461

Merged
merged 6 commits into from
May 23, 2024

Conversation

mcdurdin
Copy link
Member

@mcdurdin mcdurdin commented May 16, 2024

Fixes #11316.

Now builds from a clean repo:

windows/src/build.sh configure build test publish
  • Cleanup of various build scripts and dependencies.

TODO:

  • Move Developer-related build script changes to chore(developer): build.sh for developer #11421
  • Re-review all build scripts for consistency
  • CI linkage - release build
  • CI linkage - test build
  • user test spec
  • CI linkage - test osk render build --> this will come in a follow-up PR (lower priority)
  • convert remaining makefiles for manual tests and support projects --> this will come in a follow-up PR (lower priority)

User Testing

  • TEST_WINDOWS: Please perform a basic regression test of Keyman for Windows to ensure that all functions continue to operate as expected.

@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label May 16, 2024
@keymanapp-test-bot keymanapp-test-bot bot added this to the A18S2 milestone May 16, 2024
@keymanapp-test-bot keymanapp-test-bot bot added has-user-test 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 May 19, 2024
@mcdurdin mcdurdin force-pushed the chore/windows/11316-build.sh branch from 8ece62c to 3957148 Compare May 19, 2024 23:09
@mcdurdin mcdurdin force-pushed the chore/developer/11317-build.sh branch from 781d154 to 8b2070c Compare May 19, 2024 23:35
@mcdurdin
Copy link
Member Author

Note: split out a number of common changes into separate PRs #11477, #11478, and moved Developer-related fixes into #11421.

@mcdurdin mcdurdin marked this pull request as ready for review May 20, 2024 05:41
@mcdurdin mcdurdin linked an issue May 20, 2024 that may be closed by this pull request
@dinakaranr
Copy link

Test Results

  • TEST_WINDOWS (PASSED): I tested this issue with the attached "Keymandeveloper-18.0.39-alpha-test-11461" build on the Windows 11 OS environment: Here is my observation.
    I have followed the acceptance scenario from the help file. I executed the below scenarios
  1. Installed the "keyman-18.0.39.exe" file.
  2. Open the configuration dialog by clicking the keyman icon from the toolbox tray.
  3. Installed keyboards that are required for testing.

SUITE_BASELINE: Keyman for Windows Base Line Tests: Passed
SUITE_CAPSLOCK: Passed
CapsAlwaysOff: Passed
SHIFT: CapsOnOnly/ShiftFreesCaps: Passed
SUITE_TSF_APP: Passed
SUITE_IMX_KEYBOARDS: Passed
SUITE_STORE_AND_CONTEXT: Passed

I followed the test scenario described above test suite. I executed as per the test case instructions and outputs were correctly displayed in "Text Editor". It works well. Thank you.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label May 20, 2024
The build agents use a fixed location for signtool.exe, but this is not
the case for other devs, so we need to grab our VS environment in order
to locate it.
# after all other builds complete

builder_describe_outputs \
publish /windows/src/desktop/inst/keymanengine.msm
Copy link
Contributor

Choose a reason for hiding this comment

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

This should either be
$KEYMAN_ROOT/windows/release/${VERSION}/keymanengine.msm
of the local version before copy_installer
keymanengine.msm
Either case nothing is copying it to where this line suggests.
Also should see comment below

Copy link
Member Author

Choose a reason for hiding this comment

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

Good catch. Fixed.

function copy-installer() {
builder_heading copy-installer
mkdir -p "$KEYMAN_ROOT/windows/release/${VERSION}"
cp keymanengine.msm "$KEYMAN_ROOT/windows/release/${VERSION}/keymanengine.msm"
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we no longer include version in the name `keymanengine-${VERSION}.msm

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, another good catch. The Keyman Desktop .wxs has:

<Merge Id="keymanengine" Language='1033' SourceFile='..\..\engine\inst\keymanengine.msm' />

Which is why the build worked. Fixed this one too.


function do_publish() {
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keyman32.dll"
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keyman32.dll" //t keyman-engine-windows
Copy link
Contributor

@rc-swag rc-swag May 22, 2024

Choose a reason for hiding this comment

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

Just querying this change in behaviour
for my local publish this gets skipped as $KEYMAN_SYMSTOREPATH is not is set an so wrap-symstore exits early. Previously the Defines.mak file had this line.

# KEYMAN_SYMSTOREPATH defaults to sibling folder "symbols". If it is not present,
# then we won't attempt to write symbols to the store.
!IFNDEF KEYMAN_SYMSTOREPATH
KEYMAN_SYMSTOREPATH=$(KEYMAN_ROOT)\..\symbols
!ENDIF

Copy link
Member Author

Choose a reason for hiding this comment

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

I will add a check to wrap-symstore.

Copy link
Member Author

@mcdurdin mcdurdin May 23, 2024

Choose a reason for hiding this comment

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

It's already there, see:

wrap-symstore() {
if [[ -z "${KEYMAN_SYMSTOREPATH+x}" ]]; then
builder_warn "\$KEYMAN_SYMSTOREPATH is not set. Skipping symstore for $@"
return 0
fi

I guess that is slightly different behaviour. It's probably better not to default to ../symbols!

Copy link
Contributor

@rc-swag rc-swag left a comment

Choose a reason for hiding this comment

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

lgtm

Base automatically changed from chore/developer/11317-build.sh to master May 23, 2024 07:22
@mcdurdin mcdurdin merged commit 0259522 into master May 23, 2024
25 checks passed
@mcdurdin mcdurdin deleted the chore/windows/11316-build.sh branch May 23, 2024 07:23
@keyman-server
Copy link
Collaborator

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

mcdurdin added a commit that referenced this pull request May 24, 2024
Relates to #11461.

The FV build is now a part of the Windows publish build. At the same
time, addresses a number of typos in the build script, which had not
been tested because it was not linked to the Windows build.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chore(windows): Consolidate build scripts on windows
4 participants