Commit graph

95 commits

Author SHA1 Message Date
Marc Durdin
fe9c4917ac chore(windows): move buildunidata to common 2022-06-07 11:37:24 +10:00
Marc Durdin
0ceae8b87c chore(windows): update cef4delphi makefiles 2022-06-06 16:06:12 +10:00
Marc Durdin
ba57b69e72 chore(windows): move cef4delphi to common/windows 2022-06-06 15:59:05 +10:00
Marc Durdin
4c29e74e4c chore(windows): move ext/sentry to common 2022-06-06 15:13:53 +10:00
Marc Durdin
fcac6bcbc6 chore(windows): move tds2dbg to common 2022-06-06 14:18:45 +10:00
Marc Durdin
8cf568474d chore(developer): move qrcode component to Developer 2022-06-06 14:07:34 +10:00
Marc Durdin
07f8deb810 chore(windows): remove jwa from windows Makefile 2022-06-06 08:14:05 +10:00
Marc Durdin
49cae15718 chore(windows): update JWA Makefiles 2022-06-06 08:13:38 +10:00
Marc Durdin
fc7917cdca chore(windows): move JWA to common 2022-06-06 08:13:37 +10:00
Marc Durdin
87ad92ac4c chore(windows): remove extraneous JWA files 2022-06-06 08:13:35 +10:00
Marc Durdin
6ab5a76b74 chore(windows): restore jwa build for this branch 2022-06-06 08:13:09 +10:00
Marc Durdin
42e1ec83e2 chore(windows): update JEDI makefiles 2022-06-06 07:52:25 +10:00
Marc Durdin
c863ce59b7 chore(developer): move JCL and JVCL files to developer 2022-06-06 07:44:19 +10:00
Marc Durdin
6992943859 chore(windows): remove further extraneous JCL and JVCL files 2022-06-06 07:42:19 +10:00
Marc Durdin
0a8d106ab0 chore(windows): remove extraneous JVCL files 2022-06-06 07:40:02 +10:00
Marc Durdin
8e7200f799 chore(windows): delete extraneous JVCL files 2022-06-06 07:33:20 +10:00
Marc Durdin
96706158ce chore(windows): delete extraneous JCL files 2022-06-06 07:30:40 +10:00
Marc Durdin
21a9212fae chore(windows): move json-schema-validator to developer 2022-06-05 15:35:38 +10:00
Marc Durdin
8fa66f0b3e chore(windows): move scfontcombobox to developer 2022-06-05 15:24:21 +10:00
Marc Durdin
8a25e5434c chore(developer): update mbcolor build 2022-06-05 08:13:58 +10:00
Marc Durdin
fe3efc7b05 chore(windows): move mbcolor files to dev 2022-06-05 08:08:49 +10:00
Marc Durdin
d74e70b7f1 chore(windows): move dcpcrypt to common/windows 2022-06-02 10:38:29 +10:00
Marc Durdin
28346ebfab chore(windows): remove old dcpcrypt units 2022-06-02 08:50:39 +10:00
Marc Durdin
3f28e01024 chore(windows): remove unused regexpr package 2022-06-01 15:28:38 +10:00
Marc Durdin
038c6d6e5c chore(developer): move browse4folder to Developer source
browse4folder is used only by Keyman Developer IDE.
2022-06-01 13:48:40 +10:00
Marc Durdin
418bbdc022 chore(windows): remove unused legacy folders 2022-06-01 06:18:40 +10:00
Marc Durdin
a3d9a9e4c1 chore(windows): move crash metadata to extra
Fixes #6396.
2022-03-18 11:33:41 +11:00
Marc Durdin
bf7b6d22f9 chore(developer): add browse4folder to components 2021-12-17 13:06:11 +11:00
Marc Durdin
988fec305c chore(windows): enable build without Delphi installed
This makes it possible to run `set NODELPHI=1`, `nmake build` and then
only non-Delphi projects will be built.
2021-12-10 00:10:54 +11:00
Marc Durdin
dee896b4c6 chore(windows): move from Borland make to nmake
While it may be smarter to move to a different build system altogether,
it is also a *lot* more work. This was a fairly minor syntax refresh to
get nmake working with our existing Makefile system. This is now no
longer compatible with Borland make, so you will need to use `nmake` to
build.

The presence of NMAKE.md informs builds systems that nmake should be
used instead of make.
2021-12-06 12:47:31 +04:00
Marc Durdin
3219b44624 chore: sentry.io dsn 2021-10-04 15:01:36 +11:00
Marc Durdin
5d32a61a63 chore(windows): patches for Delphi 10.4
Updates Keyman for Windows and Keyman Developer sources so that they
build under Delphi 10.4. No validation has been performed to ensure that
there are no other issues. The intent here is to get a baseline build
working.

Note also IMSample.vcxproj which has its WinSDK version updated for
VS2019.
2021-07-27 16:57:40 +10:00
Marc Durdin
5246408ac0 chore(windows): make build paths consistent
More iterations on this yak shave.
2021-07-01 10:52:59 +10:00
Marc Durdin
4e56f2eaeb fix(windows): force add sentry binaries 2021-05-29 18:07:38 +10:00
Marc Durdin
9dcb8aa054 fix(windows): use version-specific sentry-db path
Fixes #5188.
2021-05-29 16:23:17 +10:00
Marc Durdin
7235bf2057 fix(windows): sentry.dll version handling
Fixes #5166.

This introduces versioned management of sentry.dll for Keyman for
Windows, Keyman Engine and Keyman Developer. As sentry.dll's ABI is not
backwardly compatible, we have to maintain independent copies of each
DLL for each app.

sentry.dll (or sentry.x64.dll for x64 apps) will be found in the
sentry-0.4.9 folder relative to the running process, except when running
from within the keyman repo tree (based on presence of KEYMAN_ROOT env
var). In those cases, the windows/src/ext/sentry sentry.dll will be
used, allowing us to test new debug time sentry DLLs easily.

A little bit of cleanup and consolidation was also done in the
KeymanPaths.pas unit.
2021-05-28 15:55:06 +10:00
Marc Durdin
7c087ef6ac chore(windows): Update Sentry to 0.4.9
Fixes #4607.

The Sentry 0.4.9 update actually simplifies some things. It does only
build with VS2019 by default, which pushed me to update Keyman build to
the same version, but that's a good thing overall, and was fairly
painless anyway.

Previously, we had our own custom build of sentry-native to make sure
that the C++ runtime libraries were statically linked to sentry.dll, but
this is now configurable in the build options, so we were able to
abandon our fork of the project at
https://github.com/keymanapp/sentry-native, which is good news. (I will
leave the fork there just in case but we'll eventually delete it once we
are convinced that this is robust.)

I have updated sentry.pas to match sentry.h; most of the changes are in
comments but there are a handful of new functions and some small changes
to function signatures.

I retested the Sentry exception scenarios and results can be found at
https://docs.google.com/spreadsheets/d/19xfurbn4cGubSCD68EGuKhcR5HrjaUcY/edit#gid=170604584

There may be an issue with Delphi x64 programs missing symbols from my
machine; something to keep an eye on but not a blocker for this merging,
I think.
2021-05-25 18:34:38 +10:00
Marc Durdin
9e53505be0 chore(windows): cef4delphi source units 2021-05-21 15:20:58 +10:00
Marc Durdin
56fdc98a81 chore(windows): Chromium 89.0.18
Updates Chromium Embedded Framework to 89.0.18. Goes with
branch v89.0.18 of https://github.com/keymanapp/CEF4Delphi_Binary

Adds a script to checkout the correct version of CEF from the repo
according to CEF_VERSION.md.
2021-05-21 14:47:18 +10:00
Marc Durdin
aebfdecf7a chore(windows): breadcrumbs
Some of our Sentry reports are difficult to track down. Adding user
interaction breadcrumbs to Keyman Configuration (to start with) may
simplify this. I may add more breadcrumbs to other projects now that
this is available.
2021-03-16 06:57:57 +11:00
Marc Durdin
49f05e879d fix(developer): Support all fonts in Keyboard Fonts dialog
Fixes #2789.

The Keyboard Fonts dialog skipped some fonts which it did not recognise
as valid TrueType fonts. As a bonus, I've rewritten a few parts of it to
make it significantly faster to load.

I also turned off the font formatting for the list, as it was not very
helpful and hurt performance considerably.
2021-03-03 14:24:59 +11:00
Marc Durdin
65cb3aaec2 fix(developer): disable TSentryClient on WINE
Under WINE, on macOS at least, TSentryClient is crashing at
startup, e.g. when calling SymInitialise. In order to have a
working kmcomp.exe on macOS/Linux, we'll just disable Sentry
altogether for now.
2021-01-18 06:36:31 +11:00
Marc Durdin
b8da7cf962 chore(windows): remove docbook and libxslt
As we now build help files from Markdown, we no longer
need these two dependencies.
2020-12-04 13:43:46 +11:00
Marc Durdin
9e46b555d9 fix(windows): Rename to Keyman
Fixes #4003.

This addresses the majority of locations where we use the name "Keyman
Desktop" in code. There will be some filenames and paths that do not
change at this point -- particularly at a source level. For now, the
focus is on the user interface changes.

While making these changes, I also made the VERSION and MANIFEST
resources more consistent.
2020-12-02 09:56:14 +11:00
Marc Durdin
9f53e0f0af fix(windows): sentry range check error
In some circumstances, Sentry would get a range check error while
processing the call stack due to DWORD being defined as NativeInt,
not NativeUInt, in old JWA libraries. This would mask the original
exception, and could cause the app to hang.
2020-11-23 10:57:01 +11:00
Marc Durdin
63086e9e9c
Merge pull request #3842 from keymanapp/fix/windows/sporadic-8087-controlword-corruption
fix(windows): sporadic 8087 control word corruption
2020-11-12 15:07:53 +11:00
Marc Durdin
fef2f05144 fix(windows): sporadic 8087 control word corruption
This replaces vectored exception handler code which fixed up the 8087 CW
with a thread-safe version of Set8087CW that avoids the global
variable Default8087CW. We would get occasional situations where
exceptions were raised on 2 threads simultaneously, which could lead to a
race where the first thread set Default8087CW to $1340, and then the second
thread would read that and think that is the default to keep. We want to
avoid touching Default8087CW altogether here.

See also https://stackoverflow.com/a/39684636/1836776 and RSP-13643.
2020-11-09 16:14:11 +11:00
Marc Durdin
3d1601ffe5 fix(windows): SizeOfImage header was wrong for dbg
Fixes #3831.

This fixes both issues reported in the bug (dproj changes ensure
separate .tds, and Makefile changes fix order of execution so that
dbg is generated after sentryprep's cleanup).
2020-11-06 17:36:56 +11:00
Marc Durdin
53a197fba5 chore(windows): Move to Windows SDK 10.0.17763.0
This removes the requirement for the Windows 8.1 SDK.
2020-10-05 14:11:34 +11:00
Marc Durdin
daa65dcd2e fix(windows): Buffer overrun in firstrun
Fixes #3633.

Memory allocation was half its required size due to missing
`sizeof(Char)` calculation.

Also added extra tags to Sentry events for command line and executable,
which made tracing this issue so much easier.
2020-09-29 09:04:07 +10:00