spiegel-keyman/windows/src
rc-swag 22d8db3e25
Merge pull request #8186 from keymanapp/fix/windows/8185/add-remove-btn-kbd-id-fix
fix(windows): add remove lang id uses correct keyboard id
2023-02-09 09:50:05 +10:00
..
buildtools chore: revise tag variable name to VERSION_GIT_TAG 2023-01-21 17:02:50 +07:00
desktop Merge pull request #8186 from keymanapp/fix/windows/8185/add-remove-btn-kbd-id-fix 2023-02-09 09:50:05 +10:00
engine feat(windows): add additional registry keys to report 2023-01-31 11:13:27 +07:00
ext chore(windows): move buildunidata to common 2022-06-07 11:37:24 +10:00
global chore(windows): Add safecall for internal CustomisationStorage API interface 2022-11-14 09:40:14 +11:00
support chore(windows): fixup refs and move StockFileNames 2022-06-23 09:47:59 +10:00
test chore(windows): remove unused options from locales and UI 2022-11-18 11:57:12 +11:00
.gitignore chore(developer): fixup top-level makefiles 2022-05-18 12:03:23 +10:00
components.groupproj chore(windows): move KeymanVersion.pas to common and update refs 2022-06-21 09:39:04 +10:00
Defines.mak chore(windows): move unicodedata to common 2022-06-10 13:26:07 +10:00
docopy.bat Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
edithistory.txt Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
Header.mak chore(windows): move from Borland make to nmake 2021-12-06 12:47:31 +04:00
header_format.txt Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
header_template.txt Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
LICENSE.md chore: license date 2022-03-15 13:59:27 +11:00
Makefile chore(windows): move KeymanVersion.pas to common and update refs 2022-06-21 09:39:04 +10:00
nightly_patchbuild.bat Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
NMAKE.md chore(windows): move from Borland make to nmake 2021-12-06 12:47:31 +04:00
README.md chore(windows): remove test certificates 2022-06-10 11:33:25 +10:00
set-release-version.bat fix(windows): Rename to Keyman 2020-12-02 09:56:14 +11:00
Target.mak chore(windows): move KeymanVersion.pas to common and update refs 2022-06-21 09:39:04 +10:00
TODO.md chore(common): update copyright year in various locations 2020-12-22 10:56:55 +11:00
versionhistory.txt Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00

Keyman for Windows and Keyman Developer

Build Prerequisites

Building Keyman for Windows and Keyman Developer

  1. Start 'Developer Command Prompt for VS 2019'.
  2. Run nmake build from the windows/src folder.
  3. Artifacts from a successful build will be placed in windows/bin folder.

Note: running nmake build will currently reset the packages and path settings in your Delphi environment. If you use Delphi for other projects, you should consider building Keyman under a login user dedicated to it, or in a VM.

Type nmake to see build targets. Common build targets are:

  • nmake build : builds Keyman for Windows and Keyman Developer

  • nmake clean : remove temporary files and build artifacts

  • nmake release : makes a release of all Keyman Windows projects

  • nmake install : install some or all components to Program Files (requires elevated command prompt).

Building without Delphi

It is possible to build all components that do not require Delphi by adding the environment variable NODELPHI=1 before starting the build. Currently many components are Delphi-based, but if you are working just in Keyman Core, the compiler, or Keyman Engine's C++ components, you may be able to get away without building them. In this situation, we recommend copying the relevant Delphi-built components into windows/bin folders from a compatible installed version of Keyman for testing and debugging purposes.

Release builds

A release build is not usually needed for local development. To run a release build, you will need to obtain valid code signing certificates. See Certificates, below. Official release builds for Keyman are built in the Keyman project's CI environment.

  1. Start 'Developer Command Prompt for VS 2019'.
  2. Run nmake release from the windows/src folder.
  3. Artifacts from a successful build will be placed in windows/release folder.
  4. buildtools/help-keyman-com.sh will push updated documentation to help.keyman.com. Environment variable HELP_KEYMAN_COM needs to be set to the root of the local help.keyman.com git repository.

Note: by default, the version number generated may vary from the current release version. You will not be able to install it over a later version of Keyman, and will need to uninstall and reinstall.

Certificates

In order to create a release build, you will need a code signing certiicate. You can use your own certificate, or you can use test certificates which are not globally trusted. The environment variables SC_PFX_SHA1 and SC_PFX_SHA256 can be set to custom certificate paths.

The Keyman repo no longer includes test certificates. To build your own, run nmake test-certificates from common/windows/delphi/tools/certificates to build and install your own local root CA "KeymanTestCA" certificates. If you specify a password for the certificate, you'll need to set that in the environment variable SC_PWD.

(Note: these SC_ values can be defined in UserDefines.mak instead of as environment variables.)

Manual certificate installation

You do not need to install the KeymanTest certificates, only the KeymanTestCA certificates.

If you have not already installed the KeymanTestCA certificates using the nmake command above, to manually install the Keyman KeymanTestCA certificates, do the following in common/windows/delphi/tools/certificates:

  1. Open the certificate and click 'Install certificate...' to open the Certificate Import Wizard.
  2. Select either 'Current User' or 'Local Machine' for 'Store Location' depending on your preference and click Next.
  3. Select 'Place all certificates in the following store' and 'Browse...' to select 'Trusted Root Certification Authorities'. Click Next and finish the wizard.

Crash Reporting

Crash report dialogs as shown by tsysinfo have a few special secret hotkeys useful for development purposes:

  1. Ctrl+C - copy details to clipboard
  2. Ctrl+Shift+C - copy more details to clipboard
  3. Alt+DblClk on icon - open sentry site to event
  4. Ctrl+DblClk on icon - show more details in message box