Removes kmcomp.dpr, related source, compilekeymanweb.pas, and related
unit tests.
Cleans up a couple of bits and pieces around kmc in order to help tests
to pass, and updates some tests that had legacy code in them
(particularly missing &TARGETS stores).
* get keymans version
Merge branch 'master' of https://github.com/keymanapp/keyman into refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION
# Conflicts:
# common/core/desktop/src/kmx/kmx_context.h
# common/core/desktop/src/kmx/kmx_processor.cpp
# common/windows/cpp/include/keymanversion.h
# common/windows/cpp/include/kkmnkbd/Compfile.h
# common/windows/cpp/include/kmtip_guids.h
# common/windows/cpp/src/kmtip_guids.cpp
# core/src/kmx/kmx_conversion.cpp
# core/src/kmx/kmx_conversion.h
# core/src/kmx/kmx_file.cpp
# core/src/kmx/kmx_processevent.cpp
# core/src/kmx/kmx_processor.hpp
# core/src/kmx/kmx_xstring.cpp
# developer/js/.gitignore
# developer/js/package-lock.json
# developer/js/tests/tsconfig.json
# developer/src/kmcmpdll/CasedKeys.cpp
# developer/src/kmcmpdll/CheckFilenameConsistency.cpp
# developer/src/kmcmpdll/CheckFilenameConsistency.h
# developer/src/kmcmpdll/CheckForDuplicates.cpp
# developer/src/kmcmpdll/CheckForDuplicates.h
# developer/src/kmcmpdll/CheckNCapsConsistency.cpp
# developer/src/kmcmpdll/CheckNCapsConsistency.h
# developer/src/kmcmpdll/Compiler.cpp
# developer/src/kmcmpdll/DeprecationChecks.cpp
# developer/src/kmcmpdll/NamedCodeConstants.cpp
# developer/src/kmcmpdll/UnreachableRules.cpp
# developer/src/kmcmpdll/UnreachableRules.h
# developer/src/kmcmpdll/compfile.h
# developer/src/kmcmpdll/kcframe/kcframe.cpp
# developer/src/kmcmpdll/kcframe/kcframe.vcxproj
# developer/src/kmcmpdll/kcframe/kcframe.vcxproj.filters
# developer/src/kmcmpdll/kmcmpdll.vcxproj
# developer/src/kmcmpdll/kmcmpdll.vcxproj.filters
# developer/src/kmcmpdll/version.rc
# developer/src/kmcmpdll/versioning.cpp
# developer/src/kmlmc/bundle.sh
# developer/src/kmlmc/tests/test-join-word-breaker.ts
# developer/src/kmlmc/tests/test-override-script-defaults.ts
# developer/src/server/tsconfig.json
# windows/src/developer/kmcmpdll/Makefile
# windows/src/developer/kmcmpdll/vkeys.h
# windows/src/engine/keyman32/keymanengine.h
# windows/src/global/inc/Vkeys.h
# windows/src/global/inc/rc4.h
# windows/src/global/vc/rc4.cpp
* changes in meson + include-paths of several files
* chore: remove common/core
* chore: remove unnecessary files
* chore: move headers and refs
* refactor(developer): fixup path to tests
* refactor(developer): fixup path to tests
tidied up +removed unnecessary files
checked contents of files+included a few new functions needed for myVersion
changed datatypes in CheckForDuplicates
tidy up more paths
CheckFileConsistency: not able to fully adapt for use of char16_t on non windows p.
-> used char16_t + commented out some AddWarning().
* sorted out some #includes
renamed some functions to reduce ambiguity
* fix(developer): solved linker errors
* chore(developer): remove some comments
* chore(developer): introduced KMX_UCHAR
* chore(developer): restored whitespace, comments
* chore(developer): tidied up vkeys.H / .cpp
* chore(developer): remove keyboardprocessor...
* chore(common): refactor shared types into km_types.h
* chore(core): remove duplicate types
* chore(core): move kmx_file.h to common
* chore(developper): removed typedefs of kmcompcx.h
* chore(developer): removed kmcompx/include/kmx_file.h
* chore(developer): chanched include of pch.h
* chore(developer): removed files from kmcompx/include/
* chore(developer): removed commented sections ( ** old **) if files
* chore(developer): removed doubled/overwritten functions
* chore(developer): removed doubled/overwritten functions
* chore(developer): changed #includes ".." -> <..>
* chore(developer): changed #includes ".." -> <..>
* chore(developer): enable tests for keyboards repo for kmcompx
* chore(developer): new functions e.g. string_from_wstring...
* chore(developer): changed printf->u16sprintf
* chore(developer): fopen
* chore(developer): fixed errors on running kmcompxtest
* chore(developer): changef u16fmt
* chore(developer): fixup u16ncat
* chore(developer): added return Msgs for different types of errors while compiling
* chore(developer): tests using RTL run Ok ( changed RTu->RTL)
* chore(developer): replaced u16ncmp with u16nicmp at most places
* chore(developer): changed Version number for tests 16.046 to 15.0265
* chore(developer): mostly whitespace changes
* chore(developer): tidied up code (not finished yet)
* chore(developer): removed #pragma once from wrong places, edited #includes
* chore(developer): removed #pragma once from wrong places, edited #includes
* chore(developer): CheckFileNameConsistency changed to take KMX_WCHART const* (= wchar_t* const); used in compiler.cpp now
* chore(developer): excluded some tests from kmcompxtest (use get_test_source_exclude_some_kmn.bat now)
* chore(developer): Win-functions in FileNameConsistency
* chore(developer): Win-functions in FileNameConsistency
* chore(developer): CheckFNConsuistency: called u16printf with f´different par.
* chore(developer): tidied up code
* chore(developer): tidied up code
* chore(developer): tiedied up code (compiler.cpp)
* chore(developer): tiedied up code
* chore(developer): tidied up code
* chore(developer): removed all commentaries _S2
* chore(developer): tidied up code
* chore(developer): tidied up code
* chore(developer): tidied up code
* chore(developer): removed several Windows-specific functions
* chore(developer): removed unused datatype typedefs
* chore(developer): new GetCompilerErrorString() used in AddCompileMessage()
* chore(developer): new GetCompilerErrorString() used in AddCompileMessage()
* chore(developer): removed CWARN/CHINT out of CompMsg
* chore(developer): adapted kmcompxtest to test kmn-files that have errors included
* chore(developer): changed gitignore
* chore(developer): changed gitignore
* chore(developer): changed Version Number fot Tests 15.0.265.0 -> 15.0.270.0
* chore(developer): added tests for kmcompx
* chore(developer): move tests (for ErrorMessages) to common/test/keyboards
* chore(developer): move CERR-tests into test/keyboards/invalid
* chore(developer): change mostly whitespace changes
* chore(developer): change mostly whitespace changes
* chore(developer): delete files of keyboards/kmcompx_tests
* chore(developer): include check for correct Filename + rename var + change whitespace changes
* chore(developer): revert changes in AddCompileMessage, tidy up CreateTempFile
* chore(developer): remove python from meson.build
* chore(developer): change ErrExtra, change CompileMsg, change _finddata in FileExists
* chore(developer): check for '_' after Errornumber in Filename
* chore(developer): re-include AddCompilerVersionStore in Compiler.cpp
* chore(developer): add Message CERR_InvalidCharacter to UTF16TempFromUTF8() ; change #include <> -> ""
* chore(developer): add some more keyboardtests
* chore(developer): add some more keyboardtests
* chore(developer): change remaining old datatype-names to new names ( e.g. char -> KMX_CHAR )
* chore(developer): edit + add CERR_tests
* chore(developer): edit + add CERR_tests
* chore(developer): use char16_t in CheckFileNameConsistency
* chore(developer): comments: converting functions in kmx_u16
* chore: reorganize
* chore: commit kmcompx-files
* chore: use ifdef for vkeys
* chore: copy files back
* chore: more cleanup
* chore: meson build for kmcmplib
* chore: tweak unit test, error messages, and paths
* chore(developer): make kmcmplib a static library
* chore(developer): start kmcmpdll link to kmcmplib
* chore(developer): add build.sh for kmcmplib
* chore(developer): link kmcmpdll to kmcmplib
* chore(common): avoid building 'invalid' shared keyboards
* chore(developer): include BEGIN_LINE (repeated Begin)
* chore(developer): add more CERR_tests and move some to other folder, edit readme
* chore(developer): addCompilerMsg for RepeatedBegin
* chore(developer):repeatedBEgin plus rename functions to prevent same names in kmcmpdll and kmcmplib
* chore(developer): add flag flag_use_kmcompx as switch to use old code (kmcmpdll) or new code kmcmplib
* chore(developer): introduce namespace kmcmp instead of different filenames
* chore(developer): more changes for using namespaces
* chore(developer): solve merge conflicts in namespaces
* chore(developer): use namespaces in kmcmplib (except for in dllexport-functions)
* chore(developer): remove some unnecessary CERR_ tests
* chore(developer): remove CERR_CallIsProfessionalFeature, CERR_IncludeCodesIsProfessionalFeature, CERR_MnemonicLayoutIsProfessionalFeature
* chore(developer): note about func.call_js; change all "VESION x.y " to "VESION x.y or higher" ; rename flag for kmcompx to flag_use_new_kmcomp
* chore(developer): use PKMX_DWORD/PKMX_WCHAR instead of LPKMX_DWORD/LPKMX_WCHAR; use PKMX_STR instead of char* in CompilerMessageProc
* chore(developer): remove kmx-file; NamedCodeConstants: rename variables, set const variables for buf sizes, brackets in for-loops
* chore(developer): change include paths ../
* chore(developer): get rid of reopened namespaces of kmcmp
* chore(developer): restored kmcompxtest
* chore(developer): change #include paths ../ ; excange km_kbp_cp with KMX_WCHAR; change some variable names
* chore(developer): use environment var KEYMAN_ROOT in path for tests; remove try-catch from json-validation.cpp
* chore(developer): use environment var KEYMAN_ROOT in path for tests; remove try-catch from json-validation.cpp
* chore(developer): revert change in NamedCodeConstants
* chore(developer): restored kmcompxtest, adapted readme
* chore(developer): use res-fils/version.rc for kmcmplib
* chore(developer): rename some functions/variables
* chore(developer): typos, comments, add function u16rchr()
* chore(developer): typos, comments, add function u16rchr()
* chore(developer): rename Functions, version rc-files
* chore(developer): rename Functions, version rc-files, set flag_use_new_kmcomp to use (old) kmcmpdll
* chore(developer): add BeginLine in kmcmpdll/Compiler.cpp; fread() in kmcmp_CompileKeyboardFileToBuffer
* chore(developer): set flag_use_new_kmcomp to only use kmcmpdll
* chore(developer): set flag_use_new_kmcomp to only use kmcmpdll...and back to kmcmplib
* (chore(developer): set flag_use_new_kmcomp to only use kmcmpdll...and back
* (chore(developer): changes in NamedCodeConstants::reindex() to run hieroglyphic.kmn properly
* chore(developer): changes in UnrechableRules::VerifyUnreachableRules() to run test_6440_unreachable_code..kmn
* chore(developer): remove unneccessary files, get ErrorMsg for INCLUDECODES, VISUALKEYBOARD, UnreachableRules, ErrExrta
* chore(developer): remove unneccessary files, get ErrorMsg for INCLUDECODES, VISUALKEYBOARD, UnreachableRules, ErrExrta, CWARN_ OK
* chore(developer): after stash:remove unneccessary files, get ErrorMsg for INCLUDECODES, VISUALKEYBOARD, UnreachableRules, ErrExrta, CWARN_ OK
* chore(developer): replace some #include <> with "" ; rename ErrExtra -> ErrExtraW
* chore(developer): replace some #include <> with "" ; rename ErrExtra -> ErrExtraW
* chore(developer): new converting function convert_pchar16T_To_pwcharT in kmx_u16
* chore(developer): CheckFilenameConsistency added fclose()
* chore(developer): --
* chore(developer): removed printf (---> started in... / °°-> changed to...)
* chore(developer): AddDeprecatedCode to get CWARN when in kmcomp.exe -s-w is set
* chore(developer): change MakeHashKeyFromFileKey16() to get correct behaviour of CHINT
* chore(developer): change MakeHashKeyFromFileKey16() to get correct behaviour of CHINT
* chore(developer): move converting function to kmx_u16
* chore(developer): add more CERR_ tests
* chore(developer): Not ready yet: changes in CheckFilenameConsistency to use on non-windows
* chore(developer): Not ready yet: changes in CheckFilenameConsistency to use on non-windows
* chore(developer): copied contents of 3 files of commit fcfc6c698a to here to achieve state of fcfc6c698a
* chore(developer): copied contents of 3 files of commit fcfc6c698a to here to achieve state of fcfc6c698a
* chore(developer): move/rename converting functions
* chore(developer) : update .gitignore, remove converting function
* chore(developer) : update gitignore; sort code in CheckFilenameConsistency::CheckFilenameConsistency()
* chore(developer) : change Version number 15.0.270 -> 17.0.51
* chore(developer): change #includes, path in meson.build
* chore(developer): new function Open_File() to open files on windows and non-windows platforms
* chore(developer): create Function to replace fopen/_wfsopen
* chore(developer): exclude kmx, kvk from git
* chore(developer): exclude kmx, kvk from git
* chore(developer): change #includes to include from kmcmplib
* chore(developer): remove stray fopen
* chore(developer): include Open_File() (as comment for now)
* chore(developer): include Open_File() (as comment for now)
* chore(developer): remove path to kmcmpdll in include_directories
* chore(developer): use functin Open_File()
* chore(developer): remove #ifdef for '\\' and '/' in both IsRelativePath; remove Function Open_File again
* chore(developer): new fun u16rchr_LinWin, strrchr_LinWin to exchange #ifndef for '\\' and '/'
* chore(developer): implement u16rchr_LinWin and strrchr_LinWin
* chore(developer): implement Open_File()
* chore(developer): new MakeHashKeyFromFileKey, remove comments for Open_File, & *LinWin-functions, delete 1 converting function
* chore(developer): tidy up comments
---------
Co-authored-by: Marc Durdin <marc@durdin.net>
- generate coverage/lcov.info files in several places that were already using c8
- change kmc-package's 'npm test' to include coverage, leave 'coverage' as alias
- gitignore the lcov files
Fixes#8060
During Linux packaging some files get put in the root of the
source directory. This change limits these files in `.gitignore`
to the root directory. It would be better to not generate these files
in the root directory in the first place, but that's not trivial
and a separate task.
[VSCode dev containers](https://code.visualstudio.com/docs/remote/containers)
allows to develop in a container and is configured through files
in `.devcontainer`. However, that directory falls in the same
category as `.vscode` in that it might be different on each
developer's machine, depending on preference and platform he's
working on. Therefore we exclude this directory similar to
`.vscode`.
Adds run-xcodebuild function to wrap xcodebuild calls to keep logging
and error handling consistent. Currently used only by the iOS build; the
macOS build has a corresponding execBuildCommand function which does
pretty much the same thing (changing that would belong in a separate PR
I think and low priority.)
Fixes#6320.
Part 1 of moving from lerna to a simpler, maintained monorepo solution,
using TypeScript Projects and NPM Workspaces.
There is more work to be done here. At this point, KeymanWeb builds and
runs without errors, but the built file is substantially different,
mostly in include order.
Using TypeScript Projects, we move away from the need to run build
scripts in various locations for almost all the Typescript modules.
TODO: Embedded versions and tests have not been verified.
TODO: developer/server is not yet verified.
TODO: developer/js (needs a rename!) is not yet verified.
TODO: Currently, the predictive-text folder needs refactoring to move
the construction of the worker wrapper out of the Predictive Text build
and into the final assembly of keymanweb.js (as it should be valid to
run it as a separate .js anyway).
TODO: Most of the `<reference>` paths need to be re-verified. Ideally
there should be no references outside the current module for any given
.ts.
TODO: The embedded vs browser vs node (headless) builds should be tidied
up for consistency so that it's obvious what depends on what. This is
currently messiest in the predictive-text folder, where the output names
diverge from the filenames and the various files are mixed in the same
folder (as evidenced by the exclusions listed in each tsconfig.json).
TODO: `npm install` should be removed from most build scripts and
instead `npm ci` (#6196) should be run only once from the top-level
folder for any given build. I've had eliminated side-effects from the
`install` action for npm, which makes it easier to reason about state.
TODO: verify_npm_setup and related functions can probably be eliminated.
TODO: most of the build scripts should be largely eliminated for web.
TODO: several ts projects use inconsistent output folders.
TODO: it may be possible to generate a .d.ts for models/types so that
we can use a consistent reference for those as well.
TODO: build.sh, tsconfig.json should always be in the module's top-level
folder, not in a subfolder such as src (e.g. see input-processor/src,
keyboard-processor/src, web/source).
TODO: resources/web-environment should be in common/web.
TODO: other js node_modules imports should be wrapped like es6-shim.
TODO: fix up the publish code for npm modules
TODO: eliminate version numbers from package.json if possible?
Whew, that's most of the stuff I noticed!
Move to all projects using bin/ and obj/ for outputs, and
cleanup all Makefiles and project files accordingly. Remove
some obsolete projects along the way. Cleanup .gitignore
also.
1. This is an initial conversion, so much editing to do.
2. Establishes a build script with pandoc dependency.
3. Works to build both .chm and .md on website.
4. Docbook is no longer required; removed in follow-up PR.
This change fixes the launchpad build script and also improves
updating the watch file.
If we use the variables that uscan provides we don't have to
hard-code the package name in the watch file. This makes it possible
to use a generic one for all packages.
While it might be nice to add the tag to versions in filenames, this
creates a lot of work on the website where we make some filename
assumptions. So, this PR winds that detail of filename changes back,
and renames copydev.in to download.in to make it consistent with the
other download.in files.
Crowdin CLI doesn't extract into a temporary .crowdin-tmp folder so that can be removed. (.crowdin-tmp was used in prior Bash scripts).
Also moved note about using a VPN to the wiki https://github.com/keymanapp/keyman/wiki/Crowdin-CLI