Commit graph

39 commits

Author SHA1 Message Date
Marc Durdin
94ac669ec1 maint(resources): verify order of builder_describe_internal_dependency
Test-bot: skip
2025-12-01 16:47:50 +01:00
Marc Durdin
39b4d630dd docs(windows): add documentation for localization functions
Build-bot: skip
2025-09-25 09:46:24 +02:00
Marc Durdin
ad9ab53c72 feat(windows): improve startup time by caching locale names
This was flagged years ago as a potential performance hotspot: each
locale is loaded at process start for any kmcomapi-involved process,
which takes quite a long time. This refactor moves the locale
enumeration out of kmcomapi and into the build process, so we have a
static list of locales put into locale/index.xml.

This includes a minor breaking change to Keyman Engine API on Windows:
`MessageFromID(id, locale)` now only allows the three ids
SKUILanguageName, SKUILanguageNameWithEnglish, and SKLanguageCode, for
performance reasons. At this point, only SKUILanguageNameWithEnglish is
actually used anywhere in Keyman, and it is unlikely that any other
consumers are requesting alternate IDs.

Fixes: #14787
Build-bot: skip release:windows
2025-09-19 14:11:37 +02:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
f9ab3c7045
Apply suggestions from code review
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-02-24 09:58:48 +01:00
Marc Durdin
ef60c08d7c chore: add build.sh edit action for Delphi projects
This opens up the Delphi IDE with the correct KEYMAN_ROOT environment,
which allows for debugging. This is very helpful when working with
multiple worktrees, and also helps to avoid editing a project in the
wrong tree.
2025-02-22 06:18:47 +01:00
Marc Durdin
f082ddc070 chore(common): adjust build settings for windows clean builds 2024-08-22 13:20:52 +02:00
Marc Durdin
8b2070c339 chore(developer): minor cleanup on scripts
Additional shared script resources for Developer and Windows,
refactor of a code signing function, refactor of clean step in build.sh.
2024-05-20 06:35:11 +07:00
Marc Durdin
8b6d6b0618 chore(developer): cleanup on build scripts
A round of cleanup and consistency for Developer build scripts.
2024-05-20 06:35:05 +07:00
Marc Durdin
c1366763eb chore(common): add dependency 2024-05-20 06:34:59 +07:00
Marc Durdin
fa57d5c674 chore(developer): final work on build.sh for developer
Now builds from a clean repo:

  developer/src/build.sh configure build test publish

* Splits kmbrowserhost into kmdbrowserhost for Developer; this means
  that Developer Browser Host now inherits the Developer settings rather
  than the Keyman for Windows settings, and simplifies distribution and
  management. The only difference between the two is in the startup code
  so this seems like a good split.

* Cleanup of various build scripts and dependencies.
2024-05-20 06:34:53 +07:00
Marc Durdin
c8a1c6aa39 chore(developer): use builder.inc.sh instead of build-utils.sh in build scripts
also, remove old Makefiles
2024-05-20 06:34:46 +07:00
Marc Durdin
2499ebf4bb chore(developer): move windows common Makefiles to build scripts
Relates to #11317.
2024-05-20 06:34:38 +07:00
Marc Durdin
982fdd0318 fix(developer): skip resource check for node addons 2023-10-07 05:49:25 +07:00
Marc Durdin
eeb755f76a fix(windows): re-enable signature check
Fixes #9692.

Signature checking was skipped because we missed a ".virtual" to force
nmake to build the test and test_i3633 targets. This opened up a small
cascade of related formatting issues on Makefiles, and the fact that the
test_i3633 (has there ever been a more poorly named project?) Makefile
did not even work.

Refactored significantly, added same tests to Developer Makefile, and
also now verifying the .msi and installer executable.

We can improve this further but I'd like to get this in to avoid further
critical issues with code signing given the current broken signing
configuration.
2023-10-06 09:14:35 +07:00
Eberhard Beilharz
f095593cd5 fix(windows): Adjust to new version of langtags.json
The new version of `langtags.json` added a new `_conformance` record
at the top of the file. This change adjusts the indexes where we expect
the `_version` record. It also introduces a const for the index of the
version record to make future updates easier.
2023-07-06 20:12:32 +02:00
Marc Durdin
c108008440 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-common-general-files 2022-06-25 05:39:26 +10:00
Marc Durdin
a0fe8b16f8
Merge branch 'chore/developer/js-to-lmc' into chore/developer/move-common-components 2022-06-24 14:23:02 +10:00
Marc Durdin
1910ac85f5 chore(windows): Merge branch 'chore/developer/js-to-lmc' into chore/windows/move-delphi-common-units 2022-06-23 15:56:15 +10:00
Marc Durdin
331c9d2d71 chore(windows): move shared general units to common 2022-06-22 13:58:58 +10:00
Marc Durdin
9dbe33e36e chore(windows): move KeymanVersion.pas to common and update refs 2022-06-21 09:39:04 +10:00
Marc Durdin
ad4039b5db chore(windows): move RegistryKeys.pas, ErrorControlledRegistry.pas, Glossary.pas, ScanCodeMap.pas to common 2022-06-21 09:39:03 +10:00
Marc Durdin
f163ceb6d5 chore(windows): move Unicode.pas to common 2022-06-21 09:39:01 +10:00
Marc Durdin
ff9a4c5edb chore(windows): move GetOSVersion to common 2022-06-21 09:39:00 +10:00
Marc Durdin
1b3d6b8867 chore(windows): lower-case unicodedata.mdb 2022-06-21 07:05:49 +10:00
Marc Durdin
6a56fca2d6 chore(windows): move global/delphi/tlb to common 2022-06-13 06:29:23 +10:00
Marc Durdin
cbda56f3e5 chore(windows): move global/delphi/standards to common 2022-06-13 06:15:47 +10:00
Marc Durdin
99b04a4240 chore(windows): move global/delphi/charmap to common
Moves character map units to common folder, and updates project refs.
2022-06-13 05:54:23 +10:00
Marc Durdin
0a1d4b6241 chore(windows): move unicodedata to common
Also makes common/windows/bin/tools more consistent.
2022-06-10 13:26:07 +10:00
Marc Durdin
320ff7f38c chore(windows): move msbuild-wrapper.bat to common 2022-06-10 13:24:27 +10:00
Marc Durdin
4f233a3a0d chore(windows): move test-klog to common and add call to Developer build 2022-06-10 12:00:47 +10:00
Marc Durdin
78a2b9de06 chore(windows): update Makefiles for sentrytool 2022-06-10 11:39:19 +10:00
Marc Durdin
221d6e336b chore(windows): move sentrytool files to common 2022-06-10 11:35:34 +10:00
Marc Durdin
57da5ec288 chore(windows): remove test certificates
Including test certificates in the repo is convenient, but not safe.
Each developer building Keyman should have their own test certificates,
which `nmake test-certificates` will do for them.

Updated instructions accordingly.
2022-06-10 11:33:25 +10:00
Marc Durdin
c2fce6bed2 chore(windows): cleanup refs to devtools in makefiles 2022-06-10 07:27:36 +10:00
Marc Durdin
a36c476848 chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
Marc Durdin
fe9c4917ac chore(windows): move buildunidata to common 2022-06-07 11:37:24 +10:00
Marc Durdin
e535d3c437 chore(windows): fixup clean-tools target 2022-06-07 11:37:01 +10:00
Marc Durdin
be93f9d017 chore(windows): move build_standards_data to common 2022-06-07 11:22:20 +10:00