mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-19 23:07:42 +00:00
Merge pull request #14621 from keymanapp/epic/win-arm
epic: ARM support for Windows 🦾
This commit is contained in:
commit
751fc79014
76 changed files with 4811 additions and 2697 deletions
123
.github/workflows/README.md
vendored
Normal file
123
.github/workflows/README.md
vendored
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
# api-verification.yml
|
||||
TODO
|
||||
|
||||
# auto-merge-keyman-server-pr.yml
|
||||
TODO
|
||||
|
||||
# build-test-publish-docker.yml
|
||||
TODO
|
||||
|
||||
# cleanup-ghcr.yml
|
||||
TODO
|
||||
|
||||
# close-linked-issues-for-merged-prs.yml
|
||||
TODO
|
||||
|
||||
# core-arm64-windows-test.yml: Test Keyman Core on Windows/ARM64
|
||||
|
||||
This action allows us to test Keyman Core for Windows on ARM64 architecture with
|
||||
a GitHub agent, as we do not have any TeamCity Windows build agents with ARM64
|
||||
arch.
|
||||
|
||||
It will normally be triggered as part of a test build from the
|
||||
resources/teamcity/triggers/trigger-test-builds.sh script.
|
||||
|
||||
You can manually trigger a core-arm64-windows-test action on GitHub on your fork
|
||||
of keymanapp/keyman. This is normally only needed to test changes to the action
|
||||
itself:
|
||||
|
||||
- push the changes to your fork of keymanapp/keyman: `git push myfork HEAD:master`
|
||||
- make sure you have GHA enabled in the settings of your fork
|
||||
- seet `GITHUB_TOKEN=<your_gh_token>`
|
||||
- trigger a build with:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"core-arm64-windows-test: master\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/master)\", \
|
||||
\"branch\": \"master\", \
|
||||
\"user\": \"${USER}\", \
|
||||
\"isTestBuild\": \"true\", \
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
|
||||
To trigger a build for PR #1234 in a branch `my-pr-branch` this would look similar
|
||||
to this:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"core-arm64-windows-test: PR #1234\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/my-pr-branch)\", \
|
||||
\"branch\": \"my-pr-branch\", \
|
||||
\"user\": \"${USER}\", \
|
||||
\"isTestBuild\": \"true\", \
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
|
||||
....
|
||||
|
||||
# crowdin.yml
|
||||
TODO
|
||||
|
||||
# deb-packaging.yml: Ubuntu Packaging GitHub Action
|
||||
|
||||
You can manually trigger a deb-packaging action on GitHub on your fork
|
||||
of keymanapp/keyman. This is normally only needed to test changes to the action
|
||||
itself:
|
||||
|
||||
- push the changes to your fork of keymanapp/keyman: `git push myfork HEAD:master`
|
||||
- make sure you have GHA enabled in the settings of your fork
|
||||
- seet `GITHUB_TOKEN=<your_gh_token>`
|
||||
- trigger a build with:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"deb-pr-packaging: master\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/master)\", \
|
||||
\"branch\": \"master\", \
|
||||
\"baseBranch\": \"master\", \
|
||||
\"baseRef\": \"$(git rev-parse refs/heads/master^)\", \
|
||||
\"user\": \"${USER}\", \
|
||||
\"isTestBuild\": \"true\", \
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
|
||||
To trigger a build for PR #1234 in a branch `pr-1234` this would look similar
|
||||
to this:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"deb-pr-packaging: PR #1234\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/pr-1234)\", \
|
||||
\"branch\": \"pr-1234\", \
|
||||
\"baseBranch\": \"master\", \
|
||||
\"baseRef\": \"$(git rev-parse refs/heads/master)\", \
|
||||
\"user\": \"${USER}\", \
|
||||
\"isTestBuild\": \"true\", \
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
|
||||
# labeler.yml
|
||||
TODO
|
||||
|
||||
# npm-publish.yml
|
||||
TODO
|
||||
|
||||
# pr-build-status.yml
|
||||
TODO
|
||||
163
.github/workflows/core-arm64-windows-test.yml
vendored
Normal file
163
.github/workflows/core-arm64-windows-test.yml
vendored
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
#
|
||||
# This workflow tests Keyman Core on ARM64/Windows; we cannot use our TeamCity
|
||||
# agents because we have no ARM64 Windows agents.
|
||||
#
|
||||
# It is triggered by a repository_dispatch event with the type
|
||||
# `core-arm64-windows-test:*`.
|
||||
#
|
||||
|
||||
name: "Keyman Core - ARM64/Windows test"
|
||||
run-name: "Keyman Core - ARM64/Windows test - ${{ github.event.client_payload.branch }} by @${{ github.event.client_payload.user }}"
|
||||
on:
|
||||
repository_dispatch:
|
||||
types: ['core-arm64-windows-test:*']
|
||||
|
||||
# Inputs:
|
||||
#
|
||||
# buildSha: The SHA of the commit to build, e.g. of the branch or
|
||||
# refs/pull/1234/head for PR
|
||||
# isTestBuild: true for PR and test builds, false for release builds
|
||||
# force: true to run this action on a fork of keymanapp/keyman
|
||||
#
|
||||
# Descriptive inputs:
|
||||
#
|
||||
# branch: Name of the branch to build, generally, `master`, `beta`,
|
||||
# `stable-x.y`, or for a PR `#1234`. Used only in the action
|
||||
# title
|
||||
# user: The user that triggered the build or created the PR. Used
|
||||
# only in the action title
|
||||
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
STATUS_CONTEXT: 'Keyman Core - ARM64 test'
|
||||
_builder_timings: false
|
||||
|
||||
jobs:
|
||||
core-arm64-windows-test:
|
||||
name: Keyman Core ARM64/Windows test
|
||||
if: github.repository == 'keymanapp/keyman' || github.event.client_payload.force
|
||||
runs-on: windows-11-arm
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
||||
with:
|
||||
ref: '${{ github.event.client_payload.buildSha }}'
|
||||
|
||||
- name: Set pending status on PR builds
|
||||
id: set_status
|
||||
if: github.event.client_payload.isTestBuild == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
gh api \
|
||||
--method POST \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
/repos/$GITHUB_REPOSITORY/statuses/${{ github.event.client_payload.buildSha }} \
|
||||
-f state='pending' \
|
||||
-f target_url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
|
||||
-f description='Keyman Core - ARM64 test started' \
|
||||
-f context="$STATUS_CONTEXT"
|
||||
|
||||
- name: Report initial npm/node versions
|
||||
run: |
|
||||
echo "Initial npm/node versions"
|
||||
npm -v
|
||||
node -v
|
||||
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.13'
|
||||
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
# This needs to be kept in sync with minimum-versions.sh
|
||||
node-version: '20.19'
|
||||
# As of Dec 2025, ngrok not yet supported on ARM Windows,
|
||||
# google-closure-compiler (and others?) does not support arm64 yet, so
|
||||
# use the x64 version of node. This is needed to avoid `npm ci` failure,
|
||||
# even though we don't use ngrok directly; google-closure-compiler is
|
||||
# used by emscripten
|
||||
architecture: x64
|
||||
|
||||
- name: Report on current environment
|
||||
shell: bash
|
||||
run: |
|
||||
echo "-- Environment --"
|
||||
echo "pythonLocation=$pythonLocation"
|
||||
echo "-- Current npm/node versions --"
|
||||
npm -v
|
||||
node -v
|
||||
|
||||
- name: Setup environment
|
||||
shell: bash
|
||||
run: |
|
||||
# As of Dec 2025, Emscripten does not support Win11 ARM natively
|
||||
echo "EMSDK_ARCH=x86_64" >> $GITHUB_ENV
|
||||
echo "EMSDK_KEEP_DOWNLOADS=1" >> $GITHUB_ENV
|
||||
echo "KEYMAN_USE_EMSDK=1" >> $GITHUB_ENV
|
||||
|
||||
echo "PATH=$PATH:$pythonLocation/Scripts" >> $GITHUB_ENV
|
||||
|
||||
echo "KEYMAN_CI_SKIP_NVM=1" >> $GITHUB_ENV
|
||||
|
||||
|
||||
- name: Install emscripten
|
||||
shell: bash
|
||||
run: |
|
||||
source resources/build/minimum-versions.inc.sh
|
||||
mkdir ../emsdk
|
||||
pushd ../emsdk
|
||||
git clone https://github.com/emscripten-core/emsdk.git
|
||||
cd emsdk
|
||||
./emsdk install "${KEYMAN_MIN_VERSION_EMSCRIPTEN}"
|
||||
./emsdk activate "${KEYMAN_MIN_VERSION_EMSCRIPTEN}"
|
||||
cd upstream/emscripten
|
||||
npm install
|
||||
echo "EMSCRIPTEN_BASE=$(pwd)" >> $GITHUB_ENV
|
||||
popd
|
||||
|
||||
- name: Install meson
|
||||
shell: bash
|
||||
run: |
|
||||
pip3 install --user meson
|
||||
|
||||
- name: Run test
|
||||
shell: bash
|
||||
run: |
|
||||
# Run the test
|
||||
./core/build.sh configure,build,test:arm64
|
||||
|
||||
set_status:
|
||||
name: Set result status on PR builds
|
||||
needs: [core-arm64-windows-test]
|
||||
runs-on: windows-arm64
|
||||
if: ${{ always() && github.event.client_payload.isTestBuild == 'true' }}
|
||||
steps:
|
||||
- name: Set success
|
||||
if: needs.core-arm64-windows-test.result == 'success'
|
||||
run: |
|
||||
echo "RESULT=success" >> $GITHUB_ENV
|
||||
echo "MSG=Keyman Core ARM64 test succeeded" >> $GITHUB_ENV
|
||||
|
||||
- name: Set cancelled
|
||||
if: needs.core-arm64-windows-test.result == 'cancelled'
|
||||
run: |
|
||||
echo "RESULT=error" >> $GITHUB_ENV
|
||||
echo "MSG=Keyman Core ARM64 test cancelled" >> $GITHUB_ENV
|
||||
|
||||
- name: Set failure
|
||||
if: needs.core-arm64-windows-test.result == 'failure'
|
||||
run: |
|
||||
echo "RESULT=failure" >> $GITHUB_ENV
|
||||
echo "MSG=Keyman Core ARM64 test failed" >> $GITHUB_ENV
|
||||
|
||||
- name: Set final status
|
||||
run: |
|
||||
gh api \
|
||||
--method POST \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
/repos/$GITHUB_REPOSITORY/statuses/${{ github.event.client_payload.buildSha }} \
|
||||
-f state="$RESULT" \
|
||||
-f target_url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
|
||||
-f description="$MSG" \
|
||||
-f context="$STATUS_CONTEXT"
|
||||
43
.github/workflows/deb-packaging.README.md
vendored
43
.github/workflows/deb-packaging.README.md
vendored
|
|
@ -1,43 +0,0 @@
|
|||
# Ubuntu Packaging GitHub Action
|
||||
|
||||
You can manually trigger a deb-packaging action on GitHub, e.g. to test changes:
|
||||
|
||||
- push the changes to your fork of keymanapp/keyman: git push myfork HEAD:master
|
||||
- make sure you have GHA enabled in the settings of your fork and created an
|
||||
access token on GitHub
|
||||
- trigger a build with:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"deb-pr-packaging: master\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/master)\", \
|
||||
\"branch\": \"master\", \
|
||||
\"baseBranch\": \"master\",
|
||||
\"baseRef\": \"$(git rev-parse refs/heads/master^)\",
|
||||
\"user\": \"${USER}\",
|
||||
\"isTestBuild\": \"true\",
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
|
||||
To trigger a build for PR #1234 in a branch `pr-1234` this would look similar
|
||||
to this:
|
||||
|
||||
```bash
|
||||
curl --write-out '\n' --request POST \
|
||||
--header "Accept: application/vnd.github+json" \
|
||||
--header "Authorization: token $GITHUB_TOKEN" \
|
||||
--data "{ \"event_type\": \"deb-pr-packaging: PR #1234\", \
|
||||
\"client_payload\": { \
|
||||
\"buildSha\": \"$(git rev-parse refs/heads/pr-1234)\", \
|
||||
\"branch\": \"pr-1234\", \
|
||||
\"baseBranch\": \"master\",
|
||||
\"baseRef\": \"$(git rev-parse refs/heads/master)\",
|
||||
\"user\": \"${USER}\",
|
||||
\"isTestBuild\": \"true\",
|
||||
\"force\": \"true\"}" \
|
||||
https://api.github.com/repos/<yourgithubname>/keyman/dispatches
|
||||
```
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -103,8 +103,8 @@
|
|||
/windows/src/engine/keyman32/*.cod
|
||||
/windows/src/engine/keyman32/*.pdb
|
||||
|
||||
# /engine/keymanx64/
|
||||
/windows/src/engine/keymanx64/x64
|
||||
# /engine/keymanhp/
|
||||
/windows/src/engine/keymanhp/x64
|
||||
|
||||
# /engine/kmcomapi/
|
||||
/windows/src/engine/kmcomapi/kmcomapi.tlb
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ if "%1"=="" goto help
|
|||
if "%1"=="all" goto all
|
||||
if "%1"=="x86" goto build
|
||||
if "%1"=="x64" goto build
|
||||
if "%1"=="arm64" goto build
|
||||
|
||||
echo "Invalid parameter."
|
||||
goto help
|
||||
|
|
@ -15,9 +16,9 @@ goto help
|
|||
rem ----------------------------------
|
||||
|
||||
:help
|
||||
echo Usage: %0 x86^|x64^|all debug^|release [configure] [build] [test] [additional params for meson/ninja]
|
||||
echo Usage: %0 x86^|x64^|arm64^|all debug^|release [configure] [build] [test] [additional params for meson/ninja]
|
||||
echo or
|
||||
echo Usage: %0 x86^|x64 -c
|
||||
echo Usage: %0 x86^|x64^|arm64^ -c
|
||||
echo -c will leave your environment configured for Visual Studio for selected platform.
|
||||
echo.
|
||||
echo Otherwise, %0 is intended to be used by build.sh, not directly.
|
||||
|
|
@ -35,17 +36,37 @@ cmd /c build.bat x86 %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
|||
cd %KEYMAN_ROOT%\core
|
||||
cmd /c build.bat x64 %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
|
||||
cd %KEYMAN_ROOT%\core
|
||||
cmd /c build.bat arm64 %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
|
||||
goto :eof
|
||||
|
||||
rem ----------------------------------
|
||||
|
||||
:build
|
||||
|
||||
set "HOST_ARCH=%PROCESSOR_ARCHITECTURE%"
|
||||
|
||||
rem Map Windows arch strings to VsDevCmd expected values
|
||||
if /I "%HOST_ARCH%"=="AMD64" set "HOST_ARCH=amd64"
|
||||
if /I "%HOST_ARCH%"=="x86" set "HOST_ARCH=x86"
|
||||
if /I "%HOST_ARCH%"=="ARM64" set "HOST_ARCH=arm64"
|
||||
|
||||
|
||||
set ARCH=%1
|
||||
shift
|
||||
|
||||
if "%1"=="-c" goto :setup
|
||||
|
||||
rem Initialize MESON_CROSS_FILE as empty
|
||||
set "MESON_CROSS_FILE="
|
||||
|
||||
rem Check if cross file exists (using %~dp0 for script directory)
|
||||
if exist "%~dp0cross-%ARCH%.build" (
|
||||
echo [DEBUG] Using cross file cross-%ARCH%.build
|
||||
set "MESON_CROSS_FILE=--cross-file cross-%ARCH%.build"
|
||||
)
|
||||
|
||||
echo === Locating Visual Studio ===
|
||||
|
||||
rem From https://github.com/microsoft/vswhere
|
||||
|
|
@ -65,8 +86,7 @@ if not exist "!VsDevCmd_Path!" (
|
|||
|
||||
echo === Configuring VC++ ===
|
||||
set VSCMD_SKIP_SENDTELEMETRY=1
|
||||
call "!VsDevCmd_Path!" -arch=!ARCH! -no_logo -startdir=none || exit !errorlevel!
|
||||
|
||||
call "!VsDevCmd_Path!" -arch=!ARCH! -host_arch=!HOST_ARCH! -no_logo -startdir=none || exit !errorlevel!
|
||||
cd %KEYMAN_ROOT%\core
|
||||
|
||||
set BUILDTYPE=%1
|
||||
|
|
@ -81,9 +101,9 @@ if "!COMMAND!" == "configure" (
|
|||
echo === Configuring Keyman Core for Windows !ARCH! !BUILDTYPE! ===
|
||||
if exist build\!ARCH!\!BUILDTYPE! rd /s/q build\!ARCH!\!BUILDTYPE!
|
||||
if "%1" == "--no-tests" (
|
||||
meson setup build\!ARCH!\!BUILDTYPE! !STATIC_LIBRARY! --buildtype !BUILDTYPE! -Dkeyman_core_tests=false --werror %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
meson setup !MESON_CROSS_FILE! build\!ARCH!\!BUILDTYPE! !STATIC_LIBRARY! --buildtype !BUILDTYPE! -Dkeyman_core_tests=false --werror %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
) else (
|
||||
meson setup build\!ARCH!\!BUILDTYPE! !STATIC_LIBRARY! --buildtype !BUILDTYPE! -Dkeyman_core_tests=true --werror %1 %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
meson setup !MESON_CROSS_FILE! build\!ARCH!\!BUILDTYPE! !STATIC_LIBRARY! --buildtype !BUILDTYPE! -Dkeyman_core_tests=true --werror %1 %2 %3 %4 %5 %6 %7 %8 %9 || exit !errorlevel!
|
||||
)
|
||||
shift
|
||||
)
|
||||
|
|
@ -103,7 +123,6 @@ if "!COMMAND!" == "test" (
|
|||
cd ..\..\..
|
||||
shift
|
||||
)
|
||||
|
||||
goto :eof
|
||||
|
||||
rem ----------------------------------
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ case $BUILDER_OS in
|
|||
":win Both x86 and x64"
|
||||
":x86 32-bit Windows (x86) build"
|
||||
":x64 64-bit Windows (x64) build"
|
||||
":arm64 64-bit Windows (arm64) build"
|
||||
)
|
||||
;;
|
||||
mac)
|
||||
|
|
@ -96,12 +97,14 @@ builder_describe_internal_dependency \
|
|||
build:mac build:mac-x86_64 \
|
||||
build:mac build:mac-arm64 \
|
||||
build:win build:x86 \
|
||||
build:win build:x64
|
||||
build:win build:x64 \
|
||||
build:win build:arm64 \
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:win /core/build/win/$BUILDER_CONFIGURATION/ \
|
||||
configure:x86 /core/build/x86/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:x64 /core/build/x64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:arm64 /core/build/arm64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:mac /core/build/mac/$BUILDER_CONFIGURATION/ \
|
||||
configure:mac-x86_64 /core/build/mac-x86_64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:mac-arm64 /core/build/mac-arm64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
|
|
@ -110,6 +113,7 @@ builder_describe_outputs \
|
|||
build:win /core/build/win/$BUILDER_CONFIGURATION/BUILT \
|
||||
build:x86 /core/build/x86/$BUILDER_CONFIGURATION/src/libkeymancore.a \
|
||||
build:x64 /core/build/x64/$BUILDER_CONFIGURATION/src/libkeymancore.a \
|
||||
build:arm64 /core/build/arm64/$BUILDER_CONFIGURATION/src/libkeymancore.a \
|
||||
build:mac /core/build/mac/$BUILDER_CONFIGURATION/libkeymancore.a \
|
||||
build:mac-x86_64 /core/build/mac-x86_64/$BUILDER_CONFIGURATION/src/libkeymancore.a \
|
||||
build:mac-arm64 /core/build/mac-arm64/$BUILDER_CONFIGURATION/src/libkeymancore.a \
|
||||
|
|
@ -130,7 +134,7 @@ fi
|
|||
# Iterate through all possible targets; note that targets that cannot be built
|
||||
# on the current platform have already been excluded through the archtargets
|
||||
# settings above
|
||||
targets=(wasm x86 x64 mac-x86_64 mac-arm64 arch)
|
||||
targets=(wasm x86 x64 arm64 mac-x86_64 mac-arm64 arch)
|
||||
|
||||
do_action() {
|
||||
local action_function=do_$1
|
||||
|
|
@ -191,6 +195,10 @@ if builder_start_action test:win; then
|
|||
meson test -C "$MESON_PATH" $testparams
|
||||
MESON_PATH="$KEYMAN_ROOT/core/build/x64/$BUILDER_CONFIGURATION"
|
||||
meson test -C "$MESON_PATH" $testparams
|
||||
# We do not yet have CI/build hardware support for arm64 Windows testing
|
||||
#MESON_PATH="$KEYMAN_ROOT/core/build/arm64/$BUILDER_CONFIGURATION"
|
||||
#meson test -C "$MESON_PATH" $testparams
|
||||
|
||||
builder_finish_action success test:win
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ do_configure() {
|
|||
STANDARD_MESON_ARGS="$STANDARD_MESON_ARGS --cross-file wasm.defs.build --cross-file wasm.build --default-library static"
|
||||
fi
|
||||
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
if [[ $target =~ ^(x86|x64|arm64)$ ]]; then
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION configure $BUILD_BAT_keyman_core_tests "${builder_extra_params[@]}"
|
||||
else
|
||||
pushd "$THIS_SCRIPT_PATH" > /dev/null
|
||||
|
|
@ -69,7 +69,7 @@ do_configure() {
|
|||
do_build() {
|
||||
local target=$1
|
||||
builder_start_action build:$target || return 0
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
if [[ $target =~ ^(x86|x64|arm64)$ ]]; then
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION build "${builder_extra_params[@]}"
|
||||
elif $MESON_LOW_VERSION; then
|
||||
pushd "$MESON_PATH" > /dev/null
|
||||
|
|
@ -88,7 +88,7 @@ do_build() {
|
|||
do_test() {
|
||||
local target=$1
|
||||
builder_start_action test:$target || return 0
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
if [[ $target =~ ^(x86|x64|arm64)$ ]]; then
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION test $testparams
|
||||
else
|
||||
if [[ $target == wasm ]] && builder_is_macos; then
|
||||
|
|
|
|||
13
core/cross-arm64.build
Normal file
13
core/cross-arm64.build
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = 'cl'
|
||||
cpp = 'cl'
|
||||
ar = 'lib'
|
||||
ld = 'link'
|
||||
strip = 'llvm-strip' # optional; MSVC doesn’t have a native strip
|
||||
pkgconfig = 'pkg-config' # optional; used only if you have pkg-config installed
|
||||
13
core/cross-x64.build
Normal file
13
core/cross-x64.build
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = 'cl'
|
||||
cpp = 'cl'
|
||||
ar = 'lib'
|
||||
ld = 'link'
|
||||
strip = 'llvm-strip'
|
||||
pkgconfig = 'pkg-config'
|
||||
|
|
@ -74,7 +74,7 @@ function do_publish() {
|
|||
-sice:ICE82 -sice:ICE80 \
|
||||
-dWixUILicenseRtf=License.rtf \
|
||||
-out firstvoices.msi \
|
||||
-ext WixUIExtension firstvoices.wixobj desktopui.wixobj
|
||||
-ext WixUIExtension -ext WixUtilExtension firstvoices.wixobj desktopui.wixobj
|
||||
|
||||
#
|
||||
# Sign the installation archive
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<Product UpgradeCode="f212edf7-0bef-43bb-8fc2-2625ae7bbfca" Manufacturer="SIL International"
|
||||
Id="*" Name="$(var.PRODUCTNAME) $(var.RELEASE)" Version="$(var.KEYMAN_VERSION)" Language="1033">
|
||||
<Package Keywords="Keyman,$(var.PRODUCTNAME),Keyboard,Engine"
|
||||
|
|
@ -37,6 +37,11 @@
|
|||
|
||||
<Property Id='OnlineProductID' Value='30' />
|
||||
|
||||
|
||||
<!-- CE38CB16_4448_4432_851B_B3FCE3AF464F is the GUID for the keyman engine merge
|
||||
module package; this makes the WIX_NATIVE_MACHINE property available to it -->
|
||||
<SetProperty Id="WIX_NATIVE_MACHINE.CE38CB16_4448_4432_851B_B3FCE3AF464F" Value="[WIX_NATIVE_MACHINE]" Before="LaunchConditions"/>
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir" DiskId="1">
|
||||
|
||||
<Merge Id="keymanengine" Language='1033' SourceFile='$(var.ROOT)\src\engine\inst\keymanengine.msm' />
|
||||
|
|
@ -179,6 +184,7 @@
|
|||
<Property Id="ALLUSERS">1</Property>
|
||||
|
||||
<UIRef Id="WixUI_FeatureTree"/>
|
||||
<PropertyRef Id="WIX_NATIVE_MACHINE" />
|
||||
|
||||
<Icon Id="appicon.ico" SourceFile="..\branding\appicon.ico" />
|
||||
<Icon Id="KMSHELL.ico" SourceFile="..\branding\cfgicon.ico" />
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ export const testBuildConfigurations = {
|
|||
'ios': ['Keyman_iOS_TestPullRequests', 'Keyman_iOS_TestSamplesAndTestProjects'],
|
||||
'linux': ['KeymanLinux_TestPullRequests', 'Keyman_Linux_Test_Integration', 'Keyman_Common_KPAPI_TestPullRequests_Linux', 'deb-pr-packaging_GitHub'],
|
||||
'mac': ['Keyman_KeymanMac_PullRequests', 'Keyman_Common_KPAPI_TestPullRequests_macOS'],
|
||||
'windows': ['KeymanDesktop_TestPullRequests', 'KeymanDesktop_TestPrRenderOnScreenKeyboards', 'Keyman_Common_KPAPI_TestPullRequests_Windows'],
|
||||
'windows': ['KeymanDesktop_TestPullRequests', 'KeymanDesktop_TestPrRenderOnScreenKeyboards', 'Keyman_Common_KPAPI_TestPullRequests_Windows', 'core-arm64-windows-test_GitHub'],
|
||||
'web': ['Keymanweb_TestPullRequests', 'Keyman_Common_KPAPI_TestPullRequests_WASM'],
|
||||
'developer': ['Keyman_Developer_Test', 'npm-publish_GitHub'],
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ bc_test_android=(KeymanAndroid_TestPullRequests KeymanAndroid_TestSamplesAndTest
|
|||
bc_test_ios=(Keyman_iOS_TestPullRequests Keyman_iOS_TestSamplesAndTestProjects)
|
||||
bc_test_linux=(KeymanLinux_TestPullRequests Keyman_Linux_Test_Integration Keyman_Common_KPAPI_TestPullRequests_Linux deb-pr-packaging_GitHub)
|
||||
bc_test_mac=(Keyman_KeymanMac_PullRequests Keyman_Common_KPAPI_TestPullRequests_macOS)
|
||||
bc_test_windows=(KeymanDesktop_TestPullRequests KeymanDesktop_TestPrRenderOnScreenKeyboards Keyman_Common_KPAPI_TestPullRequests_Windows)
|
||||
bc_test_windows=(KeymanDesktop_TestPullRequests KeymanDesktop_TestPrRenderOnScreenKeyboards Keyman_Common_KPAPI_TestPullRequests_Windows core-arm64-windows-test_GitHub)
|
||||
bc_test_web=(Keymanweb_TestPullRequests Keyman_Common_KPAPI_TestPullRequests_WASM)
|
||||
bc_test_developer=(Keyman_Developer_Test Keyman_Test_Developer_Mac Keyman_Test_Developer_Linux npm-publish_GitHub)
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ DELPHI_MSBUILD_FLAG_DEBUG="//p:Config=$TARGET_PATH"
|
|||
# Visual C++ x86, x64; Delphi x86
|
||||
WIN32_TARGET_PATH=bin/Win32/$TARGET_PATH
|
||||
X64_TARGET_PATH=bin/x64/$TARGET_PATH
|
||||
ARM64_TARGET_PATH=bin/arm64/$TARGET_PATH
|
||||
ARM64EC_TARGET_PATH=bin/ARM64EC/$TARGET_PATH
|
||||
|
||||
# Delphi x86, x64
|
||||
# WIN32_TARGET_PATH=...
|
||||
|
|
|
|||
6
windows/src/.gitignore
vendored
6
windows/src/.gitignore
vendored
|
|
@ -7,9 +7,13 @@
|
|||
**/obj/Win32/
|
||||
**/obj/Win64/
|
||||
**/obj/x64/
|
||||
**/obj/arm64/
|
||||
**/obj/ARM64EC/
|
||||
**/bin/Win32/
|
||||
**/bin/Win64/
|
||||
**/bin/x64/
|
||||
**/bin/arm64/
|
||||
**/bin/ARM64EC/
|
||||
|
||||
# Temporary build files for VC++
|
||||
**/*.FileListAbsolute.txt
|
||||
|
|
@ -17,7 +21,7 @@
|
|||
# These files are generated during build
|
||||
engine/keyman32/KEYMAN32.res
|
||||
engine/keyman32/Keyman64.res
|
||||
engine/keymanx64/keymanx64.res
|
||||
engine/keymanhp/keymanx64.res
|
||||
engine/mcompile/Release/
|
||||
tds_file.txt
|
||||
global/delphi/cust/MessageIdentifierConsts.pas
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
# Keyman for Windows
|
||||
|
||||
## Platforms
|
||||
|
||||
* x86 (most host processes)
|
||||
* x64
|
||||
* ARM
|
||||
|
||||
## Build Prerequisites
|
||||
|
||||
* See [Windows Build Environment Configuration](../../docs/build/windows.md).
|
||||
|
|
|
|||
BIN
windows/src/desktop/branding/keymandesktop90-arm.ico
Normal file
BIN
windows/src/desktop/branding/keymandesktop90-arm.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 281 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 281 KiB |
|
|
@ -74,7 +74,7 @@ function do_publish() {
|
|||
-nologo \
|
||||
-dWixUILicenseRtf=License.rtf \
|
||||
"$WIXLIGHTCOMPRESSION" \
|
||||
-out keymandesktop.msi -ext WixUIExtension \
|
||||
-out keymandesktop.msi -ext WixUIExtension -ext WixUtilExtension \
|
||||
keymandesktop.wixobj desktopui.wixobj cef.wixobj locale.wixobj
|
||||
|
||||
#
|
||||
|
|
@ -147,7 +147,7 @@ function do_candle() {
|
|||
function heat-cef() {
|
||||
builder_heading heat-cef
|
||||
|
||||
# We copy the files to a temp folder in order to exclude .git and README.md from harvesting
|
||||
# We copy the files to a temp folder in order to exclude .git from harvesting
|
||||
rm -rf "$KEYMAN_WIX_TEMP_CEF"
|
||||
mkdir -p "$KEYMAN_WIX_TEMP_CEF"
|
||||
cp -r "$KEYMAN_CEF4DELPHI_ROOT"/* "$KEYMAN_WIX_TEMP_CEF"
|
||||
|
|
@ -156,7 +156,6 @@ function heat-cef() {
|
|||
rm -rf "$KEYMAN_WIX_TEMP_CEF"
|
||||
}
|
||||
|
||||
|
||||
function create-setup-inf() {
|
||||
builder_heading create-setup-inf
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<Product UpgradeCode="c70af17c-8b9e-47a1-a099-b65aee3dc8b4" Manufacturer="SIL International"
|
||||
Id="*" Name="Keyman $(var.RELEASE)" Version="$(var.KEYMAN_VERSION)" Language="1033">
|
||||
<Package Keywords="Keyman,Keyman for Windows,Keyboard,Engine"
|
||||
|
|
@ -80,6 +80,11 @@
|
|||
|
||||
<Property Id='OnlineProductID' Value='30' />
|
||||
|
||||
|
||||
<!-- CE38CB16_4448_4432_851B_B3FCE3AF464F is the GUID for the keymaneengine merge
|
||||
module package; this makes the WIX_NATIVE_MACHINE property available to it -->
|
||||
<SetProperty Id="WIX_NATIVE_MACHINE.CE38CB16_4448_4432_851B_B3FCE3AF464F" Value="[WIX_NATIVE_MACHINE]" Before="LaunchConditions"/>
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir" DiskId="1">
|
||||
|
||||
<Merge Id="keymanengine" Language='1033' SourceFile='..\..\engine\inst\keymanengine.msm' />
|
||||
|
|
@ -326,6 +331,7 @@
|
|||
<Property Id="ALLUSERS">1</Property>
|
||||
|
||||
<UIRef Id="WixUI_FeatureTree"/>
|
||||
<PropertyRef Id="WIX_NATIVE_MACHINE" />
|
||||
|
||||
<Icon Id="appicon.ico" SourceFile="..\branding\appicon.ico" />
|
||||
<Icon Id="KMSHELL.ico" SourceFile="..\branding\cfgicon.ico" />
|
||||
|
|
|
|||
|
|
@ -11,17 +11,19 @@ The installation merge module database for the Keyman Engine.
|
|||
|
||||
Host application for the Keyman Engine. Shows the Keyman icon, Keyman menu, OSK, and handles language switching etc, as well as running the windows hooks to capture and translate keystrokes.
|
||||
|
||||
## keyman32 - keyman32.dll, keyman64.dll
|
||||
## keyman32 - keyman32.dll | keyman64.dll | keymanarm64.dll
|
||||
|
||||
Main keyboard processing library and hook library (x86, x64).
|
||||
Main keyboard processing library and hook library (x86, x64, arm64).
|
||||
|
||||
## keymanmc - keymanmc.dll
|
||||
|
||||
Message library for Windows events.
|
||||
|
||||
## keymanx64 - keymanx64.exe
|
||||
## keymanhp - keymanhp.x64.exe | keymanhp.arm64.exe
|
||||
|
||||
64-bit version of keyman.exe. All UI is in keyman.exe, so this is a thin wrapper around the keyman32 build.
|
||||
64-bit versions of keyman.exe. All UI is in keyman.exe, so this is a thin wrapper around the keyman32 build. One is for x64 CPU architecture and the other Arm64.
|
||||
|
||||
In v18.0 and earlier, this was called keymanx64.exe.
|
||||
|
||||
## kmcomapi - kmcomapi.dll | kmcomapi.x64.dll
|
||||
|
||||
|
|
@ -31,11 +33,15 @@ This is the public COM API library, used by keyman.exe, kmshell.exe, and various
|
|||
|
||||
A helper app to refresh Windows language settings, due to a bug in Windows; read ../kmrefresh/kmrefresh.cpp for details.
|
||||
|
||||
## kmtip - kmtip.dll | kmtip64.dll
|
||||
## kmtip - kmtip.dll | kmtip64.dll | kmtiparm64x.dll
|
||||
|
||||
Implementation of a Text Service for the Text Services Framework (TSF). This implementation is named Keyman TIP.
|
||||
Architecturally it sits between the TSF Manager and Keyman.exe
|
||||
|
||||
kmtiparm64x.dll is built as an Arm64X file. It supports both x64 and arm64 on a
|
||||
Windows on Arm machine. kmtip64.dll is therefore only used on Windows x64 Machines.
|
||||
See the [kmtip README](kmtip/README.md) for deeper description of kmtip*.dll.
|
||||
|
||||
## mcompile - mcompile.exe
|
||||
|
||||
A tool to recompile keyboard layouts after install to map to various European Latin script keyboard layouts
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ builder_describe \
|
|||
":keyman Main host process (32 bit)" \
|
||||
":keyman32 Keystroke processing engine (all archs)" \
|
||||
":keymanmc Message library" \
|
||||
":keymanx64 Host process (64 bit)" \
|
||||
":keymanhp Host process (64 bit)" \
|
||||
":kmcomapi COM API library" \
|
||||
":kmrefresh Helper app to refresh Windows language settings" \
|
||||
":kmtip Text Services Framework Text Input Processor" \
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.31313.79
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36623.8
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keyman32", "keyman32\Keyman32.vcxproj", "{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanx64", "keymanx64\keymanx64.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanhp", "keymanhp\keymanhp.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kmtip", "kmtip\kmtip.vcxproj", "{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}"
|
||||
EndProject
|
||||
|
|
@ -19,66 +19,122 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhost", "testhost\testho
|
|||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|ARM64EC = Debug|ARM64EC
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|ARM64EC = Release|ARM64EC
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|ARM64EC.ActiveCfg = Debug|x64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Debug|x64.Build.0 = Debug|x64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|ARM64EC.ActiveCfg = Release|x64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|Win32.Build.0 = Release|Win32
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|x64.ActiveCfg = Release|x64
|
||||
{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}.Release|x64.Build.0 = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|ARM64EC.ActiveCfg = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|Win32.ActiveCfg = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.Build.0 = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|ARM64EC.ActiveCfg = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|Win32.ActiveCfg = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.ActiveCfg = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.Build.0 = Release|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64EC.Build.0 = Debug|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|x64.Build.0 = Debug|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.Build.0 = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|Win32.Build.0 = Release|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|x64.ActiveCfg = Release|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|x64.Build.0 = Release|x64
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|ARM64.ActiveCfg = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|ARM64.Build.0 = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|ARM64EC.ActiveCfg = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|ARM64EC.Build.0 = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|ARM64.ActiveCfg = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|ARM64.Build.0 = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|ARM64EC.ActiveCfg = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|ARM64EC.Build.0 = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|Win32.Build.0 = Release|Win32
|
||||
{5C22DDDA-CEAD-45F1-96B0-1473111156AA}.Release|x64.ActiveCfg = Release|Win32
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|ARM64EC.ActiveCfg = Debug|x64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Debug|x64.Build.0 = Debug|x64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|ARM64EC.ActiveCfg = Release|x64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|Win32.Build.0 = Release|Win32
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|x64.ActiveCfg = Release|x64
|
||||
{A3B8F75F-E63E-434E-8A2A-034AD9B66571}.Release|x64.Build.0 = Release|x64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Debug|x64.Build.0 = Debug|x64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|Win32.Build.0 = Release|Win32
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|x64.ActiveCfg = Release|x64
|
||||
{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}.Release|x64.Build.0 = Release|x64
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Debug|ARM64.ActiveCfg = Debug|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Release|Win32.Build.0 = Release|Win32
|
||||
{A7069186-5AE7-4504-8926-861B7A34BA9E}.Release|x64.ActiveCfg = Release|Win32
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|ARM64EC.ActiveCfg = Debug|ARM64EC
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|ARM64EC.Build.0 = Debug|ARM64EC
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Debug|x64.Build.0 = Debug|x64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|ARM64EC.Build.0 = Release|ARM64EC
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|Win32.Build.0 = Release|Win32
|
||||
{12818DA3-0472-49A5-96FC-A4808A1A77FA}.Release|x64.ActiveCfg = Release|x64
|
||||
|
|
|
|||
|
|
@ -137,8 +137,20 @@
|
|||
<File Id="keyman64.dll" Name="keyman64.dll" KeyPath="yes" Source="..\..\..\bin\engine\keyman64.dll" />
|
||||
</Component>
|
||||
|
||||
<Component Guid="{1D136A8F-BC8C-432F-B82F-822EBBE986F2}">
|
||||
<File Id="keymanx64.exe" Name='keymanx64.exe' KeyPath="yes" Source="..\..\..\bin\engine\keymanx64.exe" />
|
||||
<Component Guid="{5D0A2A8F-5C34-4B28-A19E-62A40C7EDC12}">
|
||||
<!-- 0xAA64 = 43620 = ARM64 -->
|
||||
<Condition>WIX_NATIVE_MACHINE = 43620</Condition>
|
||||
<File Id="keymanarm64.dll" Name="keymanarm64.dll" KeyPath="yes" Source="..\..\..\bin\engine\keymanarm64.dll" />
|
||||
</Component>
|
||||
|
||||
<Component Guid="{6B6EF05E-E60A-4902-B5F5-EEB3F8AAB384}">
|
||||
<File Id="keymanhp.x64.exe" Name="keymanhp.x64.exe" KeyPath="yes" Source="..\..\..\bin\engine\keymanhp.x64.exe" />
|
||||
</Component>
|
||||
|
||||
<Component Guid="{65E99D02-6B68-4840-BEE2-0FADB0ED67A0}">
|
||||
<!-- 0xAA64 = 43620 = ARM64 -->
|
||||
<Condition>WIX_NATIVE_MACHINE = 43620</Condition>
|
||||
<File Id="keymanhp.arm64.exe" Name="keymanhp.arm64.exe" KeyPath="yes" Source="..\..\..\bin\engine\keymanhp.arm64.exe" />
|
||||
</Component>
|
||||
|
||||
<Component Guid="{FB88ED52-C8F9-44F8-91F2-D0E377504C0D}">
|
||||
|
|
@ -226,12 +238,21 @@
|
|||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
|
||||
<Component Id="kmtip64.dll" Guid="{7511B389-24C5-4C79-9050-934791014682}" SharedDllRefCount="yes" Win64="yes">
|
||||
<Condition>VersionNT64</Condition>
|
||||
<!-- 0x6664 = 34404 = AMD64 -->
|
||||
<Condition>WIX_NATIVE_MACHINE = 34404</Condition>
|
||||
<File Id="kmtip64.dll" Name="kmtip64.dll" KeyPath="yes" Source="..\..\..\bin\engine\kmtip64.dll">
|
||||
<Class Id="FE0420F1-38D1-4B4C-96BF-E7E20A74CFB7" Context="InprocServer32" ThreadingModel="apartment" Description="Keyman Engine Text Service x64" />
|
||||
</File>
|
||||
<!-- we will register post-install? -->
|
||||
</Component>
|
||||
|
||||
<Component Id="kmtiparm64x.dll" Guid="{BDF0DAFB-09F9-4121-9859-90E847EA75F8}" SharedDllRefCount="yes" Win64="yes">
|
||||
<!-- 0xAA64 = 43620 = ARM64 -->
|
||||
<Condition>WIX_NATIVE_MACHINE = 43620</Condition>
|
||||
<File Id="kmtiparm64x.dll" Name="kmtiparm64x.dll" KeyPath="yes" Source="..\..\..\bin\engine\kmtiparm64x.dll">
|
||||
<Class Id="FE0420F1-38D1-4B4C-96BF-E7E20A74CFB7" Context="InprocServer32" ThreadingModel="apartment" Description="Keyman Engine Text Service ARM64" />
|
||||
</File>
|
||||
</Component>
|
||||
|
||||
<Component Id="etw" Guid="{2AA8D519-C9B7-4995-9496-D87DD2EF2B7D}">
|
||||
|
|
@ -245,13 +266,13 @@
|
|||
|
||||
<ComponentGroup Id="KeymanEngineSentryComponents" Directory="dir_sentry_0.6.0" Source="..\..\..\bin\engine">
|
||||
<Component Guid="{95AB1B5C-2556-4282-B327-E2E417B26926}">
|
||||
<File Id="sentry.dll" KeyPath="yes" />
|
||||
<File Id="sentry.dll" Name="sentry.dll" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Guid="{3E5DACB3-055A-41EC-8890-15A30A40548B}">
|
||||
<File Id="sentry.x64.dll" KeyPath="yes" />
|
||||
<File Id="sentry.x64.dll" Name="sentry.x64.dll" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Guid="{AA5AF288-4D67-49F4-A10B-E5725A42599B}">
|
||||
<File Name="crashpad_handler.exe" KeyPath="yes" />
|
||||
<File Id="crashpad_handler.exe" Name="crashpad_handler.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ type
|
|||
//procedure SnapToolHelp;
|
||||
procedure RecreateTaskbarIcons;
|
||||
function StartKeymanEngine: Boolean;
|
||||
procedure StartKeymanX64;
|
||||
procedure StartKeymanHostProcess(ProcessName: string);
|
||||
procedure OpenTextEditor;
|
||||
//function GetCachedKeymanID(hkl: DWORD): DWORD;
|
||||
procedure ShowLanguageSwitchForm;
|
||||
|
|
@ -379,6 +379,10 @@ const
|
|||
skSelectHKLOnly = 3; // Select the requested Windows language and turn Keyman keyboard off
|
||||
skTSF = 4; // A TSF TIP
|
||||
|
||||
const
|
||||
KM_HP_X64 = 'keymanhp.x64.exe';
|
||||
KM_HP_ARM64 = 'keymanhp.arm64.exe';
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
|
|
@ -1350,7 +1354,8 @@ begin
|
|||
else
|
||||
kmint.KeymanEngineControl.RestartEngine; // I1486
|
||||
|
||||
StartKeymanX64;
|
||||
if IsWow64 then StartKeymanHostProcess(KM_HP_X64); // I4374
|
||||
if IsNativeMachineArm64 then StartKeymanHostProcess(KM_HP_ARM64);
|
||||
|
||||
end;
|
||||
|
||||
|
|
@ -1979,17 +1984,16 @@ begin
|
|||
FLangSwitchRefreshWatcher.Start;
|
||||
end;
|
||||
|
||||
procedure TfrmKeyman7Main.StartKeymanX64;
|
||||
procedure TfrmKeyman7Main.StartKeymanHostProcess(ProcessName: string);
|
||||
var
|
||||
cmd, dir, params: string;
|
||||
sei: TShellExecuteInfoW;
|
||||
begin
|
||||
if not IsWow64 then Exit; // I4374
|
||||
|
||||
try
|
||||
// TODO: use TKeymanPaths to find keymanx64?
|
||||
dir := ExtractFilePath(ParamStr(0));
|
||||
cmd := dir + 'keymanx64.exe';
|
||||
dir := TKeymanPaths.KeymanEngineInstallDir;
|
||||
cmd := TKeymanPaths.KeymanEngineInstallPath(ProcessName);
|
||||
|
||||
params := Format('%d %d', [GetCurrentProcessId, Application.Handle]);
|
||||
|
||||
if not FileExists(cmd) then
|
||||
|
|
@ -2013,7 +2017,7 @@ begin
|
|||
begin
|
||||
// We're going to handle any exceptions here but we'd like to know that
|
||||
// they happened
|
||||
TKeymanSentryClient.ReportHandledException(E, 'Error starting keymanx64', True);
|
||||
TKeymanSentryClient.ReportHandledException(E, 'Error starting ' + ProcessName, True);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,15 @@
|
|||
#include "pch.h"
|
||||
#include "keyman-debug-etw.h"
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEBUG_PLATFORM_STRING "x64"
|
||||
#define DEBUG_PLATFORM_STRINGW L"x64"
|
||||
#if defined(_M_ARM64)
|
||||
#define DEBUG_PLATFORM_STRING "arm64"
|
||||
#define DEBUG_PLATFORM_STRINGW L"arm64"
|
||||
#elif defined(_M_X64)
|
||||
#define DEBUG_PLATFORM_STRING "x64"
|
||||
#define DEBUG_PLATFORM_STRINGW L"x64"
|
||||
#else
|
||||
#define DEBUG_PLATFORM_STRING "x86"
|
||||
#define DEBUG_PLATFORM_STRINGW L"x86"
|
||||
#define DEBUG_PLATFORM_STRING "x86"
|
||||
#define DEBUG_PLATFORM_STRINGW L"x86"
|
||||
#endif
|
||||
|
||||
#define TAB L"\t"
|
||||
|
|
@ -113,10 +116,12 @@ extern "C" void _declspec(dllexport) WINAPI Keyman_WriteDebugEvent2W(PWCHAR file
|
|||
#define MAX_DESCRIPTORS 12
|
||||
EVENT_DATA_DESCRIPTOR Descriptors[MAX_DESCRIPTORS];
|
||||
|
||||
#ifdef _WIN64
|
||||
DWORD platform = 2;
|
||||
#if defined(_M_ARM64)
|
||||
DWORD platform = 3;
|
||||
#elif defined(_M_X64)
|
||||
DWORD platform = 2;
|
||||
#else
|
||||
DWORD platform = 1;
|
||||
DWORD platform = 1;
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ builder_describe "Keystroke processing engine" \
|
|||
@/common/include \
|
||||
@/core:win \
|
||||
clean configure build test publish install \
|
||||
:x86 :x64
|
||||
:x86 :x64 :arm64
|
||||
|
||||
builder_parse "$@"
|
||||
|
||||
|
|
@ -18,11 +18,13 @@ builder_parse "$@"
|
|||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
WIN32_TARGET="$WIN32_TARGET_PATH/keyman32.dll"
|
||||
X64_TARGET="$X64_TARGET_PATH/keyman64.dll"
|
||||
ARM64_TARGET="$ARM64_TARGET_PATH/keymanarm64.dll"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
build:x86 /windows/src/engine/keyman32/$WIN32_TARGET \
|
||||
build:x64 /windows/src/engine/keyman32/$X64_TARGET \
|
||||
build:arm64 /windows/src/engine/keyman32/$ARM64_TARGET \
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -36,6 +38,11 @@ function do_clean_x64() {
|
|||
clean_windows_project_files
|
||||
}
|
||||
|
||||
function do_clean_arm64() {
|
||||
vs_msbuild keyman32.vcxproj //t:Clean //p:Platform=arm64
|
||||
clean_windows_project_files
|
||||
}
|
||||
|
||||
function do_configure() {
|
||||
# Install NuGet packages for keyman32.test.vcxproj
|
||||
run_in_vs_env msbuild.exe tests/keyman32.tests.vcxproj -t:Restore "-clp:Verbosity=minimal" -nologo "-p:RestorePackagesConfig=true"
|
||||
|
|
@ -58,6 +65,14 @@ function do_build_x64() {
|
|||
builder_if_release_build_level cp "$X64_TARGET_PATH/keyman64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
}
|
||||
|
||||
function do_build_arm64() {
|
||||
create-windows-output-folders
|
||||
run_in_vs_env rc version64.rc
|
||||
vs_msbuild keyman32.vcxproj //t:Build "//p:Platform=arm64"
|
||||
cp "$ARM64_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$ARM64_TARGET_PATH/keymanarm64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
}
|
||||
|
||||
function do_publish_x86() {
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keyman32.dll"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keyman32.dll" //t keyman-engine-windows
|
||||
|
|
@ -70,6 +85,12 @@ function do_publish_x64() {
|
|||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/keyman64.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
function do_publish_arm64() {
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keymanarm64.dll"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keymanarm64.dll" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/keymanarm64.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
function do_install_x86() {
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/keyman32.dll" "$INSTALLPATH_KEYMANENGINE/keyman32.dll"
|
||||
echo "You may want to manually tweak keyman-debug-etw.man and fill in $INSTALLPATH_KEYMANENGINE/keyman32.dll"
|
||||
|
|
@ -80,6 +101,10 @@ function do_install_x64() {
|
|||
cp "$WINDOWS_PROGRAM_ENGINE/keyman64.dll" "$INSTALLPATH_KEYMANENGINE/keyman64.dll"
|
||||
}
|
||||
|
||||
function do_install_arm64() {
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/keymanarm64.dll" "$INSTALLPATH_KEYMANENGINE/keymanarm64.dll"
|
||||
}
|
||||
|
||||
# Parameters:
|
||||
# 1: Platform = Win32 | x64
|
||||
# Note Platform should not be 'x86' but rather 'Win32' for 32-bit
|
||||
|
|
@ -108,13 +133,24 @@ function do_test() {
|
|||
|
||||
builder_run_action clean:x86 do_clean_x86
|
||||
builder_run_action clean:x64 do_clean_x64
|
||||
builder_run_action clean:arm64 do_clean_arm64
|
||||
|
||||
builder_run_action configure do_configure
|
||||
|
||||
builder_run_action build:x86 do_build_x86
|
||||
builder_run_action build:x64 do_build_x64
|
||||
builder_run_action build:arm64 do_build_arm64
|
||||
|
||||
builder_run_action test:x86 do_test Win32
|
||||
builder_run_action test:x64 do_test x64
|
||||
# Next line is currently disabled until we do processor-level checks on the executable,
|
||||
# as we have no arm64 build agents yet (#15065)
|
||||
# builder_run_action test:arm64 do_test arm64
|
||||
|
||||
builder_run_action publish:x86 do_publish_x86
|
||||
builder_run_action publish:x64 do_publish_x64
|
||||
builder_run_action publish:arm64 do_publish_arm64
|
||||
|
||||
builder_run_action install:x86 do_install_x86
|
||||
builder_run_action install:x64 do_install_x64
|
||||
builder_run_action install:arm64 do_install_arm64
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ BOOL HKLIsIME(HKL hkl) // I1498 - fix keyboard switching for shadow keyboards o
|
|||
HKL ForceKeymanIDToHKL(DWORD KeymanID) // I3191 // I3526
|
||||
{
|
||||
#ifdef _WIN64
|
||||
return (HKL) (LONG_PTR) (INT64) (LONG) KeymanID; // Sign extension for x64
|
||||
return (HKL) (LONG_PTR) (INT64) (LONG) KeymanID; // Sign extension for 64-bit
|
||||
#else
|
||||
return (HKL) (DWORD_PTR) KeymanID;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -633,7 +633,7 @@ void HandleRefresh(int code, LONG tag)
|
|||
if (UpdateRefreshTag(tag)) {
|
||||
#ifdef _WIN64
|
||||
if (Globals::get_InitialisingThread() == GetCurrentThreadId()) {
|
||||
// If this is the keymanx64 thread, then we should
|
||||
// If this is the keyman.x64 or keymanarm64 thread, then we should
|
||||
// go ahead and process the refresh immediately so
|
||||
// that global settings are updated
|
||||
RefreshKeyboards(FALSE);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,274 +1,280 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2dc5904b-4033-47e6-88ac-ebe442c06c2e}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{27baf0f2-3926-4720-b5f9-045e47cd975c}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;fi;fd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{088a2b68-c9db-41f4-9f45-37fdf758931e}</UniqueIdentifier>
|
||||
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="appint\aiTIP.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appint\aiWin2000Unicode.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appint\appint.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="calldll.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="capsstate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="glossary.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hotkeys.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="K32_DBG.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_globals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="K32_LOAD.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keybd_shift.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keyboardoptions.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="KEYMAN32.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keynames.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keystate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_callwndproc.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_getmessage.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_keyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmprocess.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\registry.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="selectkeyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syskbd.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\unicode.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="versioninfo.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="VKScanCodes.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\xstring.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="preservedkeymap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_tsf.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hookutils.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_lowlevelkeyboardhook.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="security.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="serialkeyeventclient.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="serialkeyeventserver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SharedBuffers.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DebugEventTrace.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmprocessactions.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\global\cpp\kmtip_guids.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CoreEnvironment.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appcontext.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_visualkeyboardinterface.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="LowLevelHookWatchDog.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RightAltEmulationCheck.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="KEYMAN32.DEF">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\common\resources\bitmaps\arrow.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\common\resources\bitmaps\mask.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="keyman64.def">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="KEYMAN32.RC">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keyman-debug-etw.rc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keyman64.rc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="appint\aiTIP.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appint\aiWin2000Unicode.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appint\appint.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="calldll.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="capsstate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\legacy_kmx_file.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="globals.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="hotkeys.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="KBD.H">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyboardoptions.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyman64.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keymancontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keystate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\registry.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="syskbd.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\unicode.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="vkscancodes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="k32_tsf.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyman-debug-etw.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyeventsenderthread.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="security.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventclient.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventcommon.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SharedBuffers.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventserver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keymanengine.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="kmprocessactions.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\include\kmtip_guids.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appcontext.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="k32_visualkeyboardinterface.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="LowLevelHookWatchDog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="keyman-debug-etw.man" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2dc5904b-4033-47e6-88ac-ebe442c06c2e}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{27baf0f2-3926-4720-b5f9-045e47cd975c}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;fi;fd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{088a2b68-c9db-41f4-9f45-37fdf758931e}</UniqueIdentifier>
|
||||
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="appint\aiTIP.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appint\aiWin2000Unicode.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appint\appint.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="calldll.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="capsstate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="glossary.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hotkeys.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="K32_DBG.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_globals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="K32_LOAD.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keybd_shift.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keyboardoptions.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="KEYMAN32.CPP">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keynames.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keystate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_callwndproc.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_getmessage.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmhook_keyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmprocess.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\registry.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="selectkeyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="syskbd.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\unicode.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="versioninfo.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="VKScanCodes.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\xstring.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="preservedkeymap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_tsf.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="hookutils.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_lowlevelkeyboardhook.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="security.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="serialkeyeventclient.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="serialkeyeventserver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SharedBuffers.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DebugEventTrace.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="kmprocessactions.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\global\cpp\kmtip_guids.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CoreEnvironment.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appcontext.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="k32_visualkeyboardinterface.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="LowLevelHookWatchDog.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RightAltEmulationCheck.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="KEYMAN32.DEF">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\common\resources\bitmaps\arrow.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\..\..\common\resources\bitmaps\mask.bmp">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="keyman64.def">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="keymanarm64.def">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="KEYMAN32.RC">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keyman-debug-etw.rc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keyman64.rc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keymanarm64.rc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="appint\aiTIP.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appint\aiWin2000Unicode.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appint\appint.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="calldll.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="capsstate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\legacy_kmx_file.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="globals.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="hotkeys.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="KBD.H">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyboardoptions.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyman64.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keymancontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keystate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\registry.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="syskbd.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\unicode.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="vkscancodes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="k32_tsf.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyman-debug-etw.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keyeventsenderthread.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="security.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventclient.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventcommon.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SharedBuffers.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="serialkeyeventserver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keymanengine.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="kmprocessactions.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\include\kmtip_guids.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="appcontext.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="k32_visualkeyboardinterface.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="LowLevelHookWatchDog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="keyman-debug-etw.man" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -81,10 +81,12 @@
|
|||
#include "../../../../common/windows/cpp/include/xstring.h"
|
||||
#include "../../../../common/windows/cpp/include/legacy_kmx_memory.h"
|
||||
|
||||
#ifdef _WIN64
|
||||
#define LIBRARY_NAME "KEYMAN64"
|
||||
#if defined(_M_ARM64)
|
||||
#define LIBRARY_NAME "KEYMANARM64"
|
||||
#elif defined(_M_X64)
|
||||
#define LIBRARY_NAME "KEYMAN64"
|
||||
#else
|
||||
#define LIBRARY_NAME "KEYMAN32"
|
||||
#define LIBRARY_NAME "KEYMAN32"
|
||||
#endif
|
||||
|
||||
#define NOT_IMPLEMENTED assert(FALSE)
|
||||
|
|
|
|||
46
windows/src/engine/keyman32/keymanarm64.def
Normal file
46
windows/src/engine/keyman32/keymanarm64.def
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
LIBRARY KEYMANARM64
|
||||
|
||||
EXPORTS
|
||||
Keyman_GetInitialised
|
||||
Keyman_Initialise
|
||||
Keyman_Exit
|
||||
Keyman_GetLastActiveWindow
|
||||
Keyman_GetLastFocusWindow
|
||||
KMSetOutput
|
||||
KMGetContext
|
||||
KMQueueAction
|
||||
KMDisplayIM
|
||||
KMHideIM
|
||||
KMGetActiveKeyboard
|
||||
KMGetKeyboardPath
|
||||
|
||||
TIPActivateEx
|
||||
TIPActivateKeyboard
|
||||
TIPProcessKey
|
||||
TIPProcessKeyEx
|
||||
TIPIsKeymanRunning
|
||||
GetKeyboardPreservedKeys
|
||||
|
||||
GetActiveKeymanID
|
||||
Keyman_RegisterControllerWindow
|
||||
Keyman_UnregisterControllerWindow
|
||||
Keyman_RestartEngine
|
||||
|
||||
Keyman_SendMasterController
|
||||
Keyman_PostControllers
|
||||
Keyman_PostMasterController
|
||||
|
||||
Keyman_StartExit
|
||||
Keyman_ResetInitialisation
|
||||
|
||||
Keyman_WriteDebugEvent
|
||||
Keyman_WriteDebugEventW
|
||||
|
||||
Keyman_Diagnostic
|
||||
|
||||
Keyman_RegisterMasterController
|
||||
Keyman_UnregisterMasterController
|
||||
Keyman_RegisterControllerThread
|
||||
Keyman_UnregisterControllerThread
|
||||
|
||||
SetCustomPostKeyCallback
|
||||
1
windows/src/engine/keyman32/keymanarm64.rc
Normal file
1
windows/src/engine/keyman32/keymanarm64.rc
Normal file
|
|
@ -0,0 +1 @@
|
|||
#include "versionarm64.rc"
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
//
|
||||
// Server application functionality
|
||||
// This runs only in the host applications keyman.exe and keymanx64.exe
|
||||
// This runs only in the host applications keyman.exe, keymanhp.x64.exe and keymanhp.arm64.exe
|
||||
//
|
||||
|
||||
// TODO: refactor this into the SerialKeyEventServer class and provide getters for them
|
||||
|
|
|
|||
|
|
@ -1,165 +1,260 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{9e3a0b15-9312-4489-a42a-b4416f647d83}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Label="Shared" />
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman32.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman32.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="gtest_main.cpp" />
|
||||
<ClCompile Include="appint.tests.cpp" />
|
||||
<ClCompile Include="keyboardoptions.tests.cpp" />
|
||||
<ClCompile Include="kmprocessactions.tests.cpp" />
|
||||
<ClCompile Include="RightAltEmulationCheck.tests.cpp" />
|
||||
<ClCompile Include="..\..\..\global\cpp\kmtip_guids.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets" Condition="Exists('packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets')" />
|
||||
</ImportGroup>
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64EC">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64EC">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{46399ED7-79A1-4E7E-BD96-4B1AEEC838AE}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Label="Shared" />
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">
|
||||
<IncludePath>$(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\arm64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\arm64\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\arm64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\arm64\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<IncludePath>$(ProjectDir)..\;$(ProjectDir)..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\core\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>$(ProjectDir)..\lib\bin\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath)</LibraryPath>
|
||||
<Microsoft-GoogleTest-Disable-gtest_main>true</Microsoft-GoogleTest-Disable-gtest_main>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman32.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keymanarm64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman32.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keyman64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>version.lib;psapi.lib;imm32.lib;libkeymancore.a;keymanarm64.lib;libicuuc.a;libicuin.a;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="gtest_main.cpp" />
|
||||
<ClCompile Include="appint.tests.cpp" />
|
||||
<ClCompile Include="keyboardoptions.tests.cpp" />
|
||||
<ClCompile Include="kmprocessactions.tests.cpp" />
|
||||
<ClCompile Include="..\..\..\global\cpp\kmtip_guids.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets" Condition="Exists('packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets')" />
|
||||
</ImportGroup>
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.1.8.1.7\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
|||
32
windows/src/engine/keyman32/versionarm64.rc
Normal file
32
windows/src/engine/keyman32/versionarm64.rc
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include "../../../../common/windows/cpp/include/keymanversion.h"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION KV_FILEVERSION
|
||||
PRODUCTVERSION KV_PRODUCTVERSION
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEFLAGS 0x0L
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "0C0904E4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", KV_COMPANY_NAME
|
||||
VALUE "FileDescription", "Keyman Engine Processor Arm64\0"
|
||||
VALUE "FileVersion", KV_VERSION_STRING
|
||||
VALUE "InternalName", "KEYMANARM64\0"
|
||||
VALUE "LegalCopyright", KV_LEGAL_COPYRIGHT
|
||||
VALUE "LegalTrademarks", KV_LEGAL_TRADEMARKS
|
||||
VALUE "OriginalFilename", "KEYMANARM64.DLL\0"
|
||||
VALUE "ProductName", "Keyman Engine\0"
|
||||
VALUE "ProductVersion", KV_VERSION_STRING
|
||||
VALUE "Comments", "\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0xc09, 1252
|
||||
END
|
||||
END
|
||||
102
windows/src/engine/keymanhp/build.sh
Executable file
102
windows/src/engine/keymanhp/build.sh
Executable file
|
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env bash
|
||||
## START STANDARD BUILD SCRIPT INCLUDE
|
||||
# adjust relative paths as necessary
|
||||
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
. "${THIS_SCRIPT%/*}/../../../../resources/build/builder-full.inc.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
builder_describe "Keyman main host process (64-bit)" \
|
||||
@/common/include \
|
||||
clean configure build test publish install \
|
||||
:x64 :arm64
|
||||
|
||||
builder_parse "$@"
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
X64_TARGET="$X64_TARGET_PATH/keymanhp.x64.exe"
|
||||
ARM64_TARGET="$ARM64_TARGET_PATH/keymanhp.arm64.exe"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
build:x64 /windows/src/engine/keymanhp/$X64_TARGET \
|
||||
build:arm64 /windows/src/engine/keymanhp/$ARM64_TARGET
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function do_clean_x64() {
|
||||
vs_msbuild keymanhp.vcxproj //t:Clean //p:Platform=x64
|
||||
clean_windows_project_files
|
||||
}
|
||||
|
||||
function do_clean_arm64() {
|
||||
vs_msbuild keymanhp.vcxproj //t:Clean //p:Platform=arm64
|
||||
clean_windows_project_files
|
||||
}
|
||||
|
||||
function do_build_x64() {
|
||||
create-windows-output-folders
|
||||
run_in_vs_env rc versionx64.rc
|
||||
sed "s/Keyman Engine HP/Keyman Engine x64/g;
|
||||
s/arch64/amd64/g" manifesthp.in > manifest.in
|
||||
build_manifest.res
|
||||
vs_msbuild keymanhp.vcxproj //t:Build "//p:Platform=x64"
|
||||
cp "$X64_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$X64_TARGET_PATH/keymanhp.x64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
rm manifest.in
|
||||
}
|
||||
|
||||
function do_build_arm64() {
|
||||
create-windows-output-folders
|
||||
run_in_vs_env rc versionarm64.rc
|
||||
sed "s/Keyman Engine HP/Keyman Engine arm64/g;
|
||||
s/arch64/arm64/g" manifesthp.in > manifest.in
|
||||
build_manifest.res
|
||||
vs_msbuild keymanhp.vcxproj //t:Build "//p:Platform=arm64"
|
||||
cp "$ARM64_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$ARM64_TARGET_PATH/keymanhp.arm64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
rm manifest.in
|
||||
}
|
||||
|
||||
function do_publish_x64() {
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keymanhp.x64.exe" -validate_manifest
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keymanhp.x64.exe" -out:temp.manifest
|
||||
grep -q 'uiAccess="true"' temp.manifest || builder_die 'uiAccess must be set to true in manifest.xml'
|
||||
rm -f temp.manifest
|
||||
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keymanhp.x64.exe"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keymanhp.x64.exe" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/keymanhp.x64.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
function do_publish_arm64() {
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keymanhp.arm64.exe" -validate_manifest
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keymanhp.arm64.exe" -out:temp.manifest
|
||||
grep -q 'uiAccess="true"' temp.manifest || builder_die 'uiAccess must be set to true in manifest.xml'
|
||||
rm -f temp.manifest
|
||||
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keymanhp.arm64.exe"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keymanhp.arm64.exe" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/keymanhp.arm64.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
function do_install_x64() {
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/keymanhp.x64.exe" "$INSTALLPATH_KEYMANENGINE/keymanhp.x64.exe"
|
||||
}
|
||||
|
||||
function do_install_arm64() {
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/keymanhp.arm64.exe" "$INSTALLPATH_KEYMANENGINE/keymanhp.arm64.exe"
|
||||
}
|
||||
|
||||
|
||||
builder_run_action clean:x64 do_clean_x64
|
||||
builder_run_action clean:arm64 do_clean_arm64
|
||||
builder_run_action configure configure_windows_build_environment
|
||||
builder_run_action build:x64 do_build_x64
|
||||
builder_run_action build:arm64 do_build_arm64
|
||||
# builder_run_action test:project do_test
|
||||
builder_run_action publish:x64 do_publish_x64
|
||||
builder_run_action publish:arm64 do_publish_arm64
|
||||
builder_run_action install:x64 do_install_x64
|
||||
builder_run_action install:arm64 do_install_arm64
|
||||
6
windows/src/engine/keymanhp/keymanarm64.rc
Normal file
6
windows/src/engine/keymanhp/keymanarm64.rc
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "versionarm64.rc"
|
||||
#include "manifest.rc"
|
||||
1 ICON "..\\..\\desktop\\branding\\keymandesktop90-arm.ico"
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Name: keymanx64
|
||||
Name: keymanhp
|
||||
Copyright: Copyright (C) SIL International.
|
||||
Documentation:
|
||||
Description:
|
||||
|
|
@ -21,8 +21,10 @@
|
|||
17 Jan 2013 - mcdurdin - I3758 - V9.0 - keymanx64 can find incorrect window handle for keyman.exe
|
||||
25 Oct 2016 - mcdurdin - I5136 - Remove additional product references from Keyman Engine
|
||||
*/
|
||||
#include "keymanx64.h" // I5136
|
||||
#include "../../../../common/windows/cpp/include/keymansentry.h"
|
||||
#include "keymanhp.h" // I5136
|
||||
#if defined(_M_X64)
|
||||
#include "../../../../common/windows/cpp/include/keymansentry.h"
|
||||
#endif
|
||||
|
||||
// Forward declarations of functions included in this code module
|
||||
|
||||
|
|
@ -62,25 +64,36 @@ HANDLE hWatcherThreadTerminateEvent = NULL;
|
|||
BOOL KeymanStarted = FALSE;
|
||||
|
||||
// Global strings
|
||||
#if defined(_M_X64)
|
||||
#define WINDOW_TITLE L"Keymanhp-x64"
|
||||
#define EXECUTABLE_TITLE L"Keyman Engine x64"
|
||||
#define ARCH_LOG_FILE ".keymanhp-x64"
|
||||
#elif defined(_M_ARM64)
|
||||
#define WINDOW_TITLE L"Keymanhp-arm64"
|
||||
#define EXECUTABLE_TITLE L"Keyman Engine Arm64"
|
||||
#define ARCH_LOG_FILE ".keymanhp-arm64"
|
||||
#else
|
||||
#error Unknown architecture
|
||||
#endif
|
||||
|
||||
const PWSTR
|
||||
szWindowClass = L"Keymanx64", // Do not localize
|
||||
szWindowTitle = L"Keymanx64", // Do not localize
|
||||
szWindowClass = WINDOW_TITLE, // Do not localize
|
||||
szWindowTitle = WINDOW_TITLE, // Do not localize
|
||||
|
||||
szTitle = L"Keyman Engine x64",
|
||||
szError_Keymanx86NotFound = L"Keyman Engine x86 is not running. Do not run keymanx64.exe -- it must be started by Keyman Engine x86",
|
||||
szError_Keymanx86NotFound_Comms = L"Keyman Engine x86 has closed unexpectedly. Closing down Keyman Engine x64",
|
||||
szTitle = EXECUTABLE_TITLE,
|
||||
szError_Keymanx86NotFound = L"Keyman Engine x86 is not running. Do not run keymanhp.*.exe -- it must be started by Keyman Engine x86",
|
||||
szError_Keymanx86NotFound_Comms = L"Keyman Engine x86 has closed unexpectedly. Closing down Keyman Engine hp64",
|
||||
szError_FailedToRegisterController = L"Failed to register controller window",
|
||||
szError_FailedToInitialise = L"Failed to initialise Keyman Engine x64",
|
||||
szError_FailedToInitialise = L"Failed to initialise Keyman Engine hp",
|
||||
szError_FailedToFindParentProcess = L"Unable to open parent process; it may have disappeared",
|
||||
|
||||
szError_ChangeWindowMessageFilter = L"Failed to prepare message filters",
|
||||
|
||||
szError_CannotRunMultipleInstances = L"Only one instance of Keyman Engine x64 can run at a time",
|
||||
szError_CannotRunMultipleInstances = L"Only one instance of Keyman Engine hp can run at a time",
|
||||
szError_FailedToRegister = L"Failed to register window class",
|
||||
szError_FailedToInitInstance = L"Failed to initialise application",
|
||||
|
||||
szError_InvalidCommandline = L"Incorrect command line for Keyman Engine x64; should be passed handle of Keyman Engine x86",
|
||||
szError_InvalidCommandline = L"Incorrect command line for Keyman Engine hp; should be passed handle of Keyman Engine x86",
|
||||
szError_WatcherThreadFailed = L"Failed to create watcher thread",
|
||||
|
||||
szFail_UnknownError = L"Unknown error %d",
|
||||
|
|
@ -90,8 +103,7 @@ const PWSTR
|
|||
szWindowClass_x86_Wnd = L"TfrmKeyman7Main"; // Do not localize
|
||||
|
||||
//const char *szGPA_ChangeWindowMessageFilter = "ChangeWindowMessageFilter"; // Do not localize
|
||||
|
||||
#define KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE_KEYMANX64 KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE ".keymanx64"
|
||||
#define KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE_KEYMANHP KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE ARCH_LOG_FILE
|
||||
|
||||
//
|
||||
// FUNCTION: _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int
|
||||
|
|
@ -100,7 +112,8 @@ const PWSTR
|
|||
//
|
||||
// COMMENTS:
|
||||
//
|
||||
// A mutex is used to ensure only one instance of Keyman Engine x64
|
||||
// A mutex is used to ensure only one instance of Keyman Engine HP
|
||||
// for each architecture.
|
||||
//
|
||||
int APIENTRY _tWinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
|
|
@ -108,8 +121,8 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
|
|||
int nCmdShow)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||
|
||||
keyman_sentry_init(false, KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE_KEYMANX64);
|
||||
#if defined(_M_X64)
|
||||
keyman_sentry_init(false, KEYMAN_SENTRY_LOGGER_DESKTOP_ENGINE_KEYMANHP);
|
||||
keyman_sentry_setexceptionfilter();
|
||||
|
||||
// We used the 'Started' event when testing Sentry integration in 14.0 alpha
|
||||
|
|
@ -119,10 +132,12 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
|
|||
if (!wcscmp(lpCmdLine, L"-sentry-client-test-exception")) {
|
||||
keyman_sentry_test_crash();
|
||||
}
|
||||
#endif
|
||||
|
||||
BOOL result = Run(hInstance, lpCmdLine, nCmdShow);
|
||||
|
||||
#if defined(_M_X64)
|
||||
keyman_sentry_shutdown();
|
||||
#endif
|
||||
|
||||
return result ? 0 : 1;
|
||||
}
|
||||
|
|
@ -270,7 +285,9 @@ BOOL Fail(HWND hwnd, PWSTR msg)
|
|||
|
||||
if (WideCharToMultiByte(CP_UTF8, 0, outbuf, -1, buffer, (int) sz, NULL, NULL) != 0) {
|
||||
buffer[sz - 1] = 0;
|
||||
keyman_sentry_report_message(KEYMAN_SENTRY_LEVEL_ERROR, buffer, true);
|
||||
#if defined(_M_X64)
|
||||
keyman_sentry_report_message(KEYMAN_SENTRY_LEVEL_ERROR, buffer, true);
|
||||
#endif
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Name: keymanx64
|
||||
Name: keymanhp
|
||||
Copyright: Copyright (C) SIL International.
|
||||
Documentation:
|
||||
Description:
|
||||
28
windows/src/engine/keymanhp/keymanhp.sln
Normal file
28
windows/src/engine/keymanhp/keymanhp.sln
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36705.20 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanhp", "keymanhp.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.Build.0 = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.ActiveCfg = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
298
windows/src/engine/keymanhp/keymanhp.vcxproj
Normal file
298
windows/src/engine/keymanhp/keymanhp.vcxproj
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A34650EA-D6E8-4229-8091-6BF1443565B5}</ProjectGuid>
|
||||
<RootNamespace>keymanhp</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>keymanhp</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</LinkIncremental>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</GenerateManifest>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<TargetName>keymanhp.x64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetName>keymanhp.x64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<TargetName>keymanhp.arm64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<TargetName>keymanhp.arm64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<TargetName>keymanhp.x64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetName>keymanhp.x64</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.x64.lib;keyman64.lib;libcmtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
<OutputManifestFile>
|
||||
</OutputManifestFile>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<Midl />
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>keymanarm64.lib;libcmtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
<OutputManifestFile>
|
||||
</OutputManifestFile>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.x64.lib;keyman64.lib;libcmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACUIAccess>true</UACUIAccess>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<Midl />
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>keymanarm64.lib;libcmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<UACUIAccess>true</UACUIAccess>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keymansentry.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="keymanhp.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\keymansentry.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="keymanhp.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="keymanarm64.rc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keymanx64.rc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="keymanx64.cpp">
|
||||
<ClCompile Include="keymanhp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keymansentry.cpp">
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="keymanx64.h">
|
||||
<ClInclude Include="keymanhp.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="resource.h">
|
||||
|
|
@ -37,5 +37,8 @@
|
|||
<ResourceCompile Include="keymanx64.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="keymanarm64.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
6
windows/src/engine/keymanhp/keymanx64.rc
Normal file
6
windows/src/engine/keymanhp/keymanx64.rc
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "versionx64.rc"
|
||||
#include "manifest.rc"
|
||||
1 ICON "..\\..\\desktop\\branding\\keymandesktop90-x64.ico"
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity type="win32" name="com.keyman.windows.engine.keymanx64" version="$VersionWin" processorArchitecture="amd64"/>
|
||||
<description>Keyman Engine x64</description>
|
||||
<assemblyIdentity type="win32" name="com.keyman.windows.engine.keymanhp" version="$VersionWin" processorArchitecture="arch64"/>
|
||||
<description>Keyman Engine HP</description>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
32
windows/src/engine/keymanhp/versionarm64.rc
Normal file
32
windows/src/engine/keymanhp/versionarm64.rc
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include "../../../../common/windows/cpp/include/keymanversion.h"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION KV_FILEVERSION
|
||||
PRODUCTVERSION KV_PRODUCTVERSION
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEFLAGS 0x0L
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "0C0904E4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", KV_COMPANY_NAME
|
||||
VALUE "FileDescription", "Keyman Engine Arm64\0"
|
||||
VALUE "FileVersion", KV_VERSION_STRING
|
||||
VALUE "InternalName", "KEYMANHP.ARM64\0"
|
||||
VALUE "LegalCopyright", KV_LEGAL_COPYRIGHT
|
||||
VALUE "LegalTrademarks", KV_LEGAL_TRADEMARKS
|
||||
VALUE "OriginalFilename", "KEYMANHP.ARM64.EXE\0"
|
||||
VALUE "ProductName", "Keyman Engine\0"
|
||||
VALUE "ProductVersion", KV_VERSION_STRING
|
||||
VALUE "Comments", "\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0xc09, 1252
|
||||
END
|
||||
END
|
||||
|
|
@ -16,10 +16,10 @@
|
|||
VALUE "CompanyName", KV_COMPANY_NAME
|
||||
VALUE "FileDescription", "Keyman Engine x64\0"
|
||||
VALUE "FileVersion", KV_VERSION_STRING
|
||||
VALUE "InternalName", "KEYMANX64\0"
|
||||
VALUE "InternalName", "KEYMANHP.X64\0"
|
||||
VALUE "LegalCopyright", KV_LEGAL_COPYRIGHT
|
||||
VALUE "LegalTrademarks", KV_LEGAL_TRADEMARKS
|
||||
VALUE "OriginalFilename", "KEYMANX64.EXE\0"
|
||||
VALUE "OriginalFilename", "KEYMANHP.X64.EXE\0"
|
||||
VALUE "ProductName", "Keyman Engine\0"
|
||||
VALUE "ProductVersion", KV_VERSION_STRING
|
||||
VALUE "Comments", "\0"
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
## START STANDARD BUILD SCRIPT INCLUDE
|
||||
# adjust relative paths as necessary
|
||||
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
. "${THIS_SCRIPT%/*}/../../../../resources/build/builder-full.inc.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
builder_describe "Keyman main host process (64-bit)" \
|
||||
@/common/include \
|
||||
clean configure build test publish install
|
||||
|
||||
builder_parse "$@"
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
X64_TARGET="$X64_TARGET_PATH/keymanx64.exe"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:project /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
build:project /windows/src/engine/keymanx64/$X64_TARGET
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function do_clean() {
|
||||
vs_msbuild keymanx64.vcxproj //t:Clean
|
||||
clean_windows_project_files
|
||||
}
|
||||
|
||||
function do_build() {
|
||||
create-windows-output-folders
|
||||
build_version.res
|
||||
build_manifest.res
|
||||
vs_msbuild keymanx64.vcxproj //t:Build "//p:Platform=x64"
|
||||
cp "$X64_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$X64_TARGET_PATH/keymanx64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
}
|
||||
|
||||
function do_publish() {
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keyman.exe" -validate_manifest
|
||||
wrap-mt -nologo -inputresource:"$WINDOWS_PROGRAM_ENGINE/keyman.exe" -out:temp.manifest
|
||||
grep -q 'uiAccess="true"' temp.manifest || builder_die 'uiAccess must be set to true in manifest.xml'
|
||||
rm -f temp.manifest
|
||||
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/keymanx64.exe"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/keymanx64.exe" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/keymanx64.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
builder_run_action clean:project do_clean
|
||||
builder_run_action configure:project configure_windows_build_environment
|
||||
builder_run_action build:project do_build
|
||||
# builder_run_action test:project do_test
|
||||
builder_run_action publish:project do_publish
|
||||
builder_run_action install:project cp "$WINDOWS_PROGRAM_ENGINE/keymanx64.exe" "$INSTALLPATH_KEYMANENGINE/keymanx64.exe"
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "version.rc"
|
||||
#include "manifest.rc"
|
||||
1 ICON "..\\..\\desktop\\branding\\keymandesktop90-64.ico"
|
||||
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanx64", "keymanx64.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Debug|x64.Build.0 = Debug|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.ActiveCfg = Release|x64
|
||||
{A34650EA-D6E8-4229-8091-6BF1443565B5}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A34650EA-D6E8-4229-8091-6BF1443565B5}</ProjectGuid>
|
||||
<RootNamespace>keymanx64</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'">*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.x64.lib;keyman64.lib;libcmtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
<OutputManifestFile>
|
||||
</OutputManifestFile>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\global\inc;..\..\..\..\common\windows\delphi\ext\sentry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.x64.lib;keyman64.lib;libcmt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACUIAccess>true</UACUIAccess>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>
|
||||
</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
<ManifestResourceCompile>
|
||||
<ResourceOutputFileName>
|
||||
</ResourceOutputFileName>
|
||||
</ManifestResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keymansentry.cpp" />
|
||||
<ClCompile Include="keymanx64.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(KEYMAN_ROOT)\common\windows\cpp\include\keymansentry.h" />
|
||||
<ClInclude Include="keymanx64.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="keymanx64.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
@ -1,157 +1,222 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{A3B8F75F-E63E-434E-8A2A-034AD9B66571}</ProjectGuid>
|
||||
<RootNamespace>kmrefresh</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>$(ProjectName).x86</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>$(ProjectName).x86</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="kmrefresh.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="version.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{A3B8F75F-E63E-434E-8A2A-034AD9B66571}</ProjectGuid>
|
||||
<RootNamespace>kmrefresh</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>$(ProjectName).x86</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>$(ProjectName).x86</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(ProjectName).x64</TargetName>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="kmrefresh.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="version.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
|
|||
105
windows/src/engine/kmtip/README.md
Normal file
105
windows/src/engine/kmtip/README.md
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
|
||||
## Overview
|
||||
|
||||
`kmtip` is an implementation of a Text Service for the Text Services Framework
|
||||
(TSF). This implementation is named Keyman Text Input Processor (TIP). Architecturally
|
||||
it sits between the TSF Manager and Keyman.exe.
|
||||
|
||||
## Background
|
||||
|
||||
### 1. The "Mixed Architecture" Environment
|
||||
|
||||
Windows on both amd64(x86-64) and on Arm devices can run applications of differing architectures simultaneously:
|
||||
|
||||
On amd64 Devices:
|
||||
* **Native x64 apps:** (e.g., Windows Explorer, Notepad, Edge).
|
||||
* **x86 apps (WOW64):** (32-bit legacy apps).
|
||||
|
||||
On Arm Devices:
|
||||
* **Native Arm64 apps:** (e.g., Windows Explorer, Notepad, Edge).
|
||||
* **Emulated x64 apps:** (e.g., Older desktop applications).
|
||||
* **Emulated x86 apps:** (32-bit legacy apps).
|
||||
|
||||
A Text Input Processor (TIP) is a plugin that gets **loaded directly into the
|
||||
process space** of the application currently receiving text input. Therefore,
|
||||
the TIP DLL must match the architecture of the application it is running in.
|
||||
Setting all this up is different on Windows on Arm and Windows on amd64
|
||||
devices.
|
||||
|
||||
|
||||
## kmtip.dll and kmtip64.dll - On amd64 Devices
|
||||
|
||||
On 64-bit Windows, there is a single registry entry (COM CLSID) for a 64-bit
|
||||
TIP: **kmtip64.dll**.
|
||||
`HKLM\SOFTWARE\Classes\CLSID`
|
||||
|
||||
For 32-bit applications, there exists a WOW6432Node in the Windows registry
|
||||
that allows a different DLL to be registered for the same Class ID:
|
||||
**kmtip.dll**.
|
||||
`HKLM\SOFTWARE\WOW6432Node\Classes\CLSID`
|
||||
It is essentially two views of the registry depending on whether
|
||||
the application is 32-bit or 64-bit.
|
||||
|
||||
|
||||
## kmtiparm64x.dll - Arm64 Devices
|
||||
|
||||
### Single Registry Entry Problem for the two 64-bit architectures
|
||||
|
||||
On Windows on Arm there is a problem because there is only a single registry
|
||||
entry for the **64-bit** CLSID. This means it is not possible to register both an
|
||||
amd64 DLL and an Arm64 DLL, for example **kmtip64.dll** and
|
||||
**kmtiparm64.dll**. (For 32-bit apps there is still the WOW6432Node that
|
||||
registers `kmtip.dll`.)
|
||||
|
||||
* If we register a standard **Arm64** DLL, x64 apps will crash or fail to load
|
||||
it because they cannot load a pure Arm64 binary.
|
||||
* If we register a standard **x64** DLL, native Arm64 apps will fail to load
|
||||
it.
|
||||
|
||||
### The Solution: Arm64X
|
||||
|
||||
**Arm64X** is a PE (Portable Executable) binary format. It is a dual-architecture
|
||||
library capable of servicing both native Arm64 applications and emulated x64
|
||||
applications on Windows on Arm (WoA) devices.
|
||||
|
||||
`kmtiparm64x.dll` solves this problem by using the **Arm64X** format. It
|
||||
contains two complete sets of code within a single file:
|
||||
|
||||
1. **Arm64 Code:** Used when the DLL is loaded by a native Arm64 process.
|
||||
2. **Arm64EC (Emulation Compatible) Code:** Used when the DLL is loaded by an
|
||||
x64 process.
|
||||
* *Note: Arm64EC code runs at native speed but uses x64 data structures and
|
||||
calling conventions, allowing it to interoperate seamlessly with the x64
|
||||
host app.*
|
||||
|
||||
### Runtime Behavior
|
||||
|
||||
When an application loads `kmtiparm64x.dll`:
|
||||
|
||||
* The Windows loader automatically detects the process architecture.
|
||||
* **Automatic Selection:**
|
||||
* If the host process is **x64**, Windows exposes the **Arm64EC** section.
|
||||
The **Arm64EC** section is built against the **keyman64.dll** Keyman engine,
|
||||
causing it to be loaded dynamically.
|
||||
* If the host process is **Arm64**, Windows exposes the **Arm64** section. The
|
||||
**Arm64** section is built against the **keymanarm64.dll** Keyman engine,
|
||||
causing it to be loaded dynamically.
|
||||
|
||||
* **Transparency:** The host application is unaware that the binary contains
|
||||
code for other platforms; it sees only what it expects
|
||||
|
||||
### Build Composition
|
||||
|
||||
The `kmtiparm64x.dll` binary is the result of merging two distinct build
|
||||
targets from the source:
|
||||
|
||||
1. **kmtip (arm64)**: The pure native target.
|
||||
2. **kmtip (arm64EC)**: The hybrid target for x64 compatibility.
|
||||
|
||||
### Usage
|
||||
|
||||
* **Registration:** This DLL is registered against the single Keyman TIP CLSID
|
||||
for 64-bit contexts.
|
||||
* **x86 Support:** Note that 32-bit (x86) applications still require the
|
||||
separate `kmtip.dll` (32-bit x86 build), as they use a completely different
|
||||
registry hive (WOW6432Node).
|
||||
|
|
@ -17,10 +17,13 @@ builder_parse "$@"
|
|||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
WIN32_TARGET="$WIN32_TARGET_PATH/kmtip.dll"
|
||||
X64_TARGET="$X64_TARGET_PATH/kmtip64.dll"
|
||||
ARM64EC_TARGET="$ARM64EC_TARGET_PATH/kmtiparm64x.dll"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:project /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
build:project /windows/src/engine/kmtip/$X64_TARGET
|
||||
build:x86 /windows/src/engine/kmtip/$WIN32_TARGET \
|
||||
build:x64 /windows/src/engine/kmtip/$X64_TARGET \
|
||||
build:arm64ec /windows/src/engine/kmtip/$ARM64EC_TARGET \
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -34,24 +37,32 @@ function do_build() {
|
|||
build_version.res
|
||||
vs_msbuild kmtip.vcxproj //t:Build "//p:Platform=Win32"
|
||||
vs_msbuild kmtip.vcxproj //t:Build "//p:Platform=x64"
|
||||
vs_msbuild kmtip.vcxproj //t:Build "//p:Platform=arm64EC"
|
||||
cp "$WIN32_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$WIN32_TARGET_PATH/kmtip.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
cp "$X64_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$X64_TARGET_PATH/kmtip64.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
cp "$ARM64EC_TARGET" "$WINDOWS_PROGRAM_ENGINE"
|
||||
builder_if_release_build_level cp "$ARM64EC_TARGET_PATH/kmtiparm64x.pdb" "$WINDOWS_DEBUGPATH_ENGINE"
|
||||
|
||||
}
|
||||
|
||||
function do_publish() {
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/kmtip.dll"
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/kmtip64.dll"
|
||||
wrap-signcode //d "Keyman Engine for Windows" "$WINDOWS_PROGRAM_ENGINE/kmtiparm64x.dll"
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/kmtip.dll" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/kmtip.pdb" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/kmtip64.dll" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/kmtip64.pdb" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_PROGRAM_ENGINE/kmtiparm64x.dll" //t keyman-engine-windows
|
||||
wrap-symstore "$WINDOWS_DEBUGPATH_ENGINE/kmtiparm64x.pdb" //t keyman-engine-windows
|
||||
}
|
||||
|
||||
function do_install() {
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/kmtip.dll" "$INSTALLPATH_KEYMANENGINE/kmtip.dll"
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/kmtip64.dll" "$INSTALLPATH_KEYMANENGINE/kmtip64.dll"
|
||||
cp "$WINDOWS_PROGRAM_ENGINE/kmtiparm64x.dll" "$INSTALLPATH_KEYMANENGINE/kmtiparm64x.dll"
|
||||
}
|
||||
|
||||
builder_run_action clean:project do_clean
|
||||
|
|
|
|||
|
|
@ -49,10 +49,12 @@
|
|||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEBUG_PLATFORM_STRING "x64"
|
||||
#if defined(_M_ARM64)
|
||||
#define DEBUG_PLATFORM_STRING "arm64"
|
||||
#elif defined(_M_X64)
|
||||
#define DEBUG_PLATFORM_STRING "x64"
|
||||
#else
|
||||
#define DEBUG_PLATFORM_STRING "x86"
|
||||
#define DEBUG_PLATFORM_STRING "x86"
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,10 +11,18 @@ Global
|
|||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.Build.0 = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Debug|x64.Build.0 = Debug|x64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.ActiveCfg = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|ARM64EC.Build.0 = Release|ARM64EC
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|Win32.Build.0 = Release|Win32
|
||||
{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}.Release|x64.ActiveCfg = Release|x64
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -83,6 +83,12 @@
|
|||
<None Include="kmtip64.def">
|
||||
<Filter>Source Files\Framework</Filter>
|
||||
</None>
|
||||
<None Include="kmtiparm64.def">
|
||||
<Filter>Source Files\Framework</Filter>
|
||||
</None>
|
||||
<None Include="kmtiparm64x.def">
|
||||
<Filter>Source Files\Framework</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="kmtip.rc">
|
||||
|
|
@ -118,4 +124,4 @@
|
|||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
|||
7
windows/src/engine/kmtip/kmtiparm64.def
Normal file
7
windows/src/engine/kmtip/kmtiparm64.def
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
LIBRARY kmtiparm64.dll
|
||||
|
||||
EXPORTS
|
||||
DllGetClassObject PRIVATE
|
||||
DllCanUnloadNow PRIVATE
|
||||
DllRegisterServer PRIVATE
|
||||
DllUnregisterServer PRIVATE
|
||||
7
windows/src/engine/kmtip/kmtiparm64x.def
Normal file
7
windows/src/engine/kmtip/kmtiparm64x.def
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
LIBRARY kmtiparm64x.dll
|
||||
|
||||
EXPORTS
|
||||
DllGetClassObject PRIVATE
|
||||
DllCanUnloadNow PRIVATE
|
||||
DllRegisterServer PRIVATE
|
||||
DllUnregisterServer PRIVATE
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36705.20 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mcompile", "mcompile.vcxproj", "{5C22DDDA-CEAD-45F1-96B0-1473111156AA}"
|
||||
EndProject
|
||||
Global
|
||||
|
|
@ -17,4 +19,7 @@ Global
|
|||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {1C01096C-D29F-482E-BA98-C687726209A4}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
|||
|
|
@ -1,134 +1,135 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{5C22DDDA-CEAD-45F1-96B0-1473111156AA}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>mtop</RootNamespace>
|
||||
<ProjectName>mcompile</ProjectName>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<ExtensionsToDeleteOnClean>*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\common\windows\delphi\ext\sentry;..\..\global\inc</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\common\windows\delphi\ext\sentry;..\..\global\inc</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\..\engine\keyman32\KBD.H" />
|
||||
<ClInclude Include="mc_kmxfile.h" />
|
||||
<ClInclude Include="mcompile.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="mc_syskbd.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keymansentry.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\global\cpp\VKScanCodes.cpp" />
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\xstring.cpp" />
|
||||
<ClCompile Include="mc_import_rules.cpp" />
|
||||
<ClCompile Include="mc_kmxfile.cpp" />
|
||||
<ClCompile Include="mcompile.cpp" />
|
||||
<ClCompile Include="mc_savekeyboard.cpp" />
|
||||
<ClCompile Include="mc_unicode.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="mc_syskbd.cpp" />
|
||||
<ClCompile Include="mc_syskbdnt32.cpp" />
|
||||
<ClCompile Include="mc_syskbdnt64.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="mcompile.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{5C22DDDA-CEAD-45F1-96B0-1473111156AA}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>mtop</RootNamespace>
|
||||
<ProjectName>mcompile</ProjectName>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<ExtensionsToDeleteOnClean>*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\common\windows\delphi\ext\sentry;..\..\global\inc</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\common\windows\delphi\ext\sentry;..\..\global\inc</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>..\..\..\..\common\windows\delphi\ext\sentry\sentry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>sentry.dll</DelayLoadDLLs>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\..\engine\keyman32\KBD.H" />
|
||||
<ClInclude Include="mc_kmxfile.h" />
|
||||
<ClInclude Include="mcompile.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="mc_syskbd.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\keymansentry.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\global\cpp\VKScanCodes.cpp" />
|
||||
<ClCompile Include="$(KEYMAN_ROOT)\common\windows\cpp\src\xstring.cpp" />
|
||||
<ClCompile Include="mc_import_rules.cpp" />
|
||||
<ClCompile Include="mc_kmxfile.cpp" />
|
||||
<ClCompile Include="mcompile.cpp" />
|
||||
<ClCompile Include="mc_savekeyboard.cpp" />
|
||||
<ClCompile Include="mc_unicode.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="mc_syskbd.cpp" />
|
||||
<ClCompile Include="mc_syskbdnt32.cpp" />
|
||||
<ClCompile Include="mc_syskbdnt64.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="mcompile.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ builder_parse "$@"
|
|||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
WIN32_TARGET="$WIN32_TARGET_PATH/testhost.exe"
|
||||
X64_TARGET="$X64_TARGET_PATH/testhost.exe"
|
||||
ARM64_TARGET="$ARM64_TARGET_PATH/testhost.exe"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:project /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
|
|
@ -31,6 +32,7 @@ function do_build() {
|
|||
create-windows-output-folders
|
||||
vs_msbuild testhost.vcxproj //t:Build "//p:Platform=Win32"
|
||||
vs_msbuild testhost.vcxproj //t:Build "//p:Platform=x64"
|
||||
vs_msbuild testhost.vcxproj //t:Build "//p:Platform=arm64"
|
||||
# Note, we don't copy this to bin
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -306,14 +306,18 @@ Fail(PCWSTR message) {
|
|||
MessageBox(0, buf.c_str(), L"Error starting Keyman", MB_OK | MB_ICONERROR);
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
#define KEYMAN32 "keyman64.dll"
|
||||
#define KEYMAN32_DEBUG "keyman32" / "bin" / "x64" / "Debug" / "keyman64.dll"
|
||||
#define KEYMAN32_RELEASE "keyman32" / "bin" / "x64" / "Release" / "keyman64.dll"
|
||||
#if defined(_M_ARM64)
|
||||
#define KEYMAN32 "keymanarm64.dll"
|
||||
#define KEYMAN32_DEBUG "keyman32" / "bin" / "arm64" / "Debug" / "keymanarm64.dll"
|
||||
#define KEYMAN32_RELEASE "keyman32" / "bin" / "arm64" / "Release" / "keyman64.dll"
|
||||
#elif defined(_M_X64)
|
||||
#define KEYMAN32 "keyman64.dll"
|
||||
#define KEYMAN32_DEBUG "keyman32" / "bin" / "x64" / "Debug" / "keyman64.dll"
|
||||
#define KEYMAN32_RELEASE "keyman32" / "bin" / "x64" / "Release" / "keyman64.dll"
|
||||
#else
|
||||
#define KEYMAN32 "keyman32.dll"
|
||||
#define KEYMAN32_DEBUG "keyman32" / "bin" / "Win32" / "Debug" / "keyman32.dll"
|
||||
#define KEYMAN32_RELEASE "keyman32" / "bin" / "Win32" / "Release" / "keyman32.dll"
|
||||
#define KEYMAN32 "keyman32.dll"
|
||||
#define KEYMAN32_DEBUG "keyman32" / "bin" / "Win32" / "Debug" / "keyman32.dll"
|
||||
#define KEYMAN32_RELEASE "keyman32" / "bin" / "Win32" / "Release" / "keyman32.dll"
|
||||
#endif
|
||||
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -1,172 +1,306 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{12818da3-0472-49a5-96fc-a4808a1a77fa}</ProjectGuid>
|
||||
<RootNamespace>testhost</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
<ClInclude Include="testhost.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="testhost.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="testhost.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="small.ico" />
|
||||
<Image Include="testhost.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64EC">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64EC">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64EC</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{12818da3-0472-49a5-96fc-a4808a1a77fa}</ProjectGuid>
|
||||
<RootNamespace>testhost</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64EC'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
<ClInclude Include="testhost.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="testhost.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="testhost.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="small.ico" />
|
||||
<Image Include="testhost.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
@ -5,13 +5,22 @@ interface
|
|||
uses
|
||||
Winapi.Windows;
|
||||
|
||||
{$IFNDEF IMAGE_FILE_MACHINE_ARM64}
|
||||
const
|
||||
IMAGE_FILE_MACHINE_ARM64 = $AA64;
|
||||
{$ENDIF}
|
||||
|
||||
function IsWow64: Boolean;
|
||||
function IsNativeMachineArm64: Boolean;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.SysUtils;
|
||||
|
||||
type
|
||||
TIsWow64Process2 = function(hProcess: THandle; out pProcessMachine: USHORT; out pNativeMachine: USHORT): BOOL; stdcall;
|
||||
|
||||
function IsWow64: Boolean;
|
||||
var
|
||||
FIsWow64: BOOL;
|
||||
|
|
@ -21,4 +30,26 @@ begin
|
|||
Result := FIsWow64; // not on Wow64
|
||||
end;
|
||||
|
||||
(**
|
||||
Determines whether the current system's native architecture is ARM64.
|
||||
@returns: True if the native machine architecture is ARM64, False otherwise
|
||||
*)
|
||||
function IsNativeMachineArm64: Boolean;
|
||||
var
|
||||
processMachine: USHORT;
|
||||
nativeMachine: USHORT;
|
||||
IsWow64Process2 : TIsWow64Process2;
|
||||
begin
|
||||
Result := False;
|
||||
IsWow64Process2 := GetProcAddress(GetModuleHandle(kernel32), 'IsWow64Process2');
|
||||
if Assigned(IsWow64Process2) then
|
||||
begin
|
||||
if IsWow64Process2(GetCurrentProcess, processMachine, nativeMachine) then
|
||||
begin
|
||||
Result := (nativeMachine = IMAGE_FILE_MACHINE_ARM64);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ void PrintPlatform(int platform) {
|
|||
switch (platform) {
|
||||
case 1: fwprintf(fp, L"\tx86"); break;
|
||||
case 2: fwprintf(fp, L"\tx64"); break;
|
||||
case 3: fwprintf(fp, L"\tarm64"); break;
|
||||
default: fwprintf(fp, L"\t%d", platform); break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,14 @@ wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR
|
|||
UNREFERENCED_PARAMETER(lpCmdLine);
|
||||
|
||||
// Initialize global strings
|
||||
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
|
||||
#if defined(_M_ARM64)
|
||||
LoadStringW(hInstance, IDS_APP_TITLE_ARM64, szTitle, MAX_LOADSTRING);
|
||||
#elif defined(_M_X64)
|
||||
LoadStringW(hInstance, IDS_APP_TITLE_X64, szTitle, MAX_LOADSTRING);
|
||||
#else // x86
|
||||
LoadStringW(hInstance, IDS_APP_TITLE_X86, szTitle, MAX_LOADSTRING);
|
||||
#endif
|
||||
|
||||
LoadStringW(hInstance, IDC_EDITOR, szWindowClass, MAX_LOADSTRING);
|
||||
MyRegisterClass(hInstance);
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -7,16 +7,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Editor", "Editor.vcxproj",
|
|||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|x64.Build.0 = Debug|x64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Debug|x86.Build.0 = Debug|Win32
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Release|x64.ActiveCfg = Release|x64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Release|x64.Build.0 = Release|x64
|
||||
{6804767E-857F-48CC-B843-22BF357A668C}.Release|x86.ActiveCfg = Release|Win32
|
||||
|
|
|
|||
|
|
@ -1,175 +1,242 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{6804767e-857f-48cc-b843-22bf357a668c}</ProjectGuid>
|
||||
<RootNamespace>Editor</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)32</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)32</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)64</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Editor.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="FontSelect.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Editor.cpp" />
|
||||
<ClCompile Include="FontSelect.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Editor.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="Editor.ico" />
|
||||
<Image Include="small.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{6804767e-857f-48cc-b843-22bf357a668c}</ProjectGuid>
|
||||
<RootNamespace>Editor</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<OutDir>$(ProjectDir)bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(ProjectDir)obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)32</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)32</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<TargetName>$(ProjectName)arm64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)64</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)arm64</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Editor.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="FontSelect.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Editor.cpp" />
|
||||
<ClCompile Include="FontSelect.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Editor.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="Editor.ico" />
|
||||
<Image Include="small.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
// Microsoft Visual C++ generated include file.
|
||||
// Used by Editor.rc
|
||||
|
||||
#define IDS_APP_TITLE 103
|
||||
#define IDS_APP_TITLE_X86 103
|
||||
#define IDS_APP_TITLE_X64 104
|
||||
#define IDS_APP_TITLE_ARM64 105
|
||||
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDD_EDITOR_DIALOG 102
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ builder_parse "$@"
|
|||
source "$KEYMAN_ROOT/resources/build/win/environment.inc.sh"
|
||||
WIN32_TARGET="$WIN32_TARGET_PATH/editor32.exe"
|
||||
X64_TARGET="$X64_TARGET_PATH/editor64.exe"
|
||||
ARM64_TARGET="$ARM64_TARGET_PATH/editorarm64.exe"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:project /resources/build/win/delphi_environment_generated.inc.sh \
|
||||
|
|
@ -32,10 +33,13 @@ function do_build() {
|
|||
# build_version.res
|
||||
vs_msbuild Editor.vcxproj //t:Build "//p:Platform=Win32"
|
||||
vs_msbuild Editor.vcxproj //t:Build "//p:Platform=x64"
|
||||
vs_msbuild Editor.vcxproj //t:Build "//p:Platform=arm64"
|
||||
cp "$WIN32_TARGET" "$WINDOWS_PROGRAM_SUPPORT"
|
||||
cp "$X64_TARGET" "$WINDOWS_PROGRAM_SUPPORT"
|
||||
cp "$ARM64_TARGET" "$WINDOWS_PROGRAM_SUPPORT"
|
||||
builder_if_release_build_level cp "$WIN32_TARGET_PATH/editor32.pdb" "$WINDOWS_DEBUGPATH_SUPPORT"
|
||||
builder_if_release_build_level cp "$X64_TARGET_PATH/editor64.pdb" "$WINDOWS_DEBUGPATH_SUPPORT"
|
||||
builder_if_release_build_level cp "$ARM64_TARGET_PATH/editorarm64.pdb" "$WINDOWS_DEBUGPATH_SUPPORT"
|
||||
}
|
||||
|
||||
builder_run_action clean:project do_clean
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue