Manuelle Buildskripte für kbdneo hinzugefügt: erfordert kein WDK mehr zum Kompilieren

This commit is contained in:
qwertfisch 2020-06-08 02:03:43 +02:00
parent 551bcbba6c
commit d3a8e148d8
6 changed files with 134 additions and 22 deletions

66
windows/kbdneo2/README.md Normal file
View File

@ -0,0 +1,66 @@
# Build-Anleitung für kbdneo / kbdbone / kbdqwertz
Für die weitergehende Entwicklung und Kompilierung der Treiberlayout-DLLs unter Windows 10 wurde eine Solution in Visual Studio 2019 erstellt, die die verschiedenen Varianten (Neo, Bone, Qwertz) zusammenfasst. Die Treiber-DLLs können somit auf zwei Arten gebaut werden:
1. Über Visual Studio
2. Über ein manuelles Buildskript
Die erste Variante ist einfacher und dient auch der Entwicklung. Die zweite Variante benötigt kein Visual Studio und kein Windows Driver Kit.
## Regulärer Build mit Visual Studio
### Voraussetzungen
Zum Bauen notwendig sind folgende Programme:
* Visual Studio (2017 oder neuer)
* Desktop-Entwicklung mit C++ installiert
* Windows 10 SDK (10.0.18362 oder neuer)
* Windows Driver Kit (Version 2004 oder neuer)
* siehe Anleitung: https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
### Build
1. `kbd.sln` aus `source` in Visual Studio öffnen
1. Release-Build einstellen und Konfiguration x64 auswählen
1. Build solution
1. Konfiguration x86 auswählen
1. Build solution
Für jedes der enthaltenen Tastaturlayouts sind nun je zwei .dll-Dateien (Name = Projektname) gebaut worden. Diese müssen mit einem 64-Bit-fähigen Dateimanager (z.B. Windows Explorer) in die entsprechenden Verzeichnisse kopiert werden:
* x64\release\kbd*.dll → C:\Windows\System32
* release\kbd*.dll → C:\Windows\SysWOW64
## Manueller Build
### Voraussetzungen
* Visual Studio Build Tools: Auf https://visualstudio.microsoft.com/de/downloads/ nach unten scrollen, unter „Alle Downloads“ den Reiter „Tools für Visual Studio 2019“ aufklappen und „Buildtools für Visual Studio 2019“ auswählen.
* Im Installer unter „Workloads“ die C++-Buildtools auswählen oder alternativ unter „Einzelne Komponenten“ die aktuellen x64/x86-Buildtools sowie das aktuelle Windows 10 SDK auswählen.
### Build
Nach der Installation stehen im Startmenü im Ordner Visual Studio 2019 verschiedene Command Prompts zur Verfügung. Das Vorgehen ist wie folgt:
* x86_x64 Cross Tools Command Prompt for VS 2019 starten
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
* `build_x64` ausführen
Dies baut die x64-Varianten der DLLs. Für die x86-Varianten (für SysWOW64) lautet es:
* x86 Native Tools Command Prompt for VS 2019 starten
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
* `build_x86` ausführen
Die erzeugten DLLs sind anschließend in den Unterverzeichnissen `x64` und x86` der jeweiligen Layoutvarianten zu finden.
## kbdqwertz mit „ß“ unten
Von kbdqwertz (aus historischen Gründen in kbdgr2 platziert) gibt es zwei Varianten, einmal mit dem regulären QWERTZ-Layout mit ß oben und dem Bindestrich unten. Die zweite Variante tauscht beides, sodass der Bindestrich gemeinsam mit anderen Strichen auf weiteren Ebenen auf der Strichtaste landet. Das „ß“ verschiebt sich dafür ins Hauptfeld.
Um kbdqwertz mit „ß“ unten zu kompilieren, muss in `kbdgr2.h` folgende Zeile einkommentiert werden:
```
// #define LOW_ESZETT
```
Anschließend kann nach obiger Anleitung weiter verfahren werden.

View File

@ -0,0 +1,12 @@
@echo off
if "%1"=="" (
ECHO Dieses Skript ist nur zur internen Verwendung von build_x64 gedacht.
EXIT /B
)
CL /c /Ix64\ /I..\..\inc /Zi /nologo /W4 /WX /diagnostics:column /O2 /D _WIN64 /D _AMD64_ /D AMD64 /D WIN32_LEAN_AND_MEAN=1 /D _WIN32_WINNT=0x0A00 /D WINVER=0x0A00 /D WINNT=1 /D NTDDI_VERSION=0x0A000007 /D _WINDLL /Gm- /MD /GS /guard:cf /fp:precise /Zc:wchar_t- /Zc:forScope /Zc:inline /Fo"x64\\" /Fd"x64\vc142.pdb" /Gz /TC /FC /errorReport:prompt kbd%1%.c
RC /D _WIN64 /D _AMD64_=1 /D AMD64 /D WIN32_LEAN_AND_MEAN=1 /D _WIN32_WINNT=0x0A00 /D WINVER=0x0A00 /D WINNT=1 /D NTDDI_VERSION=0x0A000007 /l"0x0409" /Ix64 /I..\..\inc /nologo /fo"x64\kbd%1.res" kbd%1.rc
LINK /ERRORREPORT:PROMPT /OUT:"x64\kbd%1.dll" /INCREMENTAL:NO /NOLOGO /WX kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /DEF:"kbd%1.def" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"x64\kbd%1.pdb" /TLBID:1 /NOENTRY /DYNAMICBASE /NXCOMPAT /IMPLIB:"x64\kbd%1.lib" /MACHINE:X64 /guard:cf /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221,4108,4088,4218,4218,4235 -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re /ignore:4254 /DLL x64\kbd%1.res x64\kbd%1.obj

View File

@ -0,0 +1,12 @@
@echo off
if "%1"=="" (
ECHO Dieses Skript ist nur zur internen Verwendung von build_x86 gedacht.
EXIT /B
)
CL /c /IRelease\ /I..\..\inc /Zi /nologo /W4 /WX /diagnostics:column /O2 /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D WIN32_LEAN_AND_MEAN=1 /D _WIN32_WINNT=0x0A00 /D WINVER=0x0A00 /D WINNT=1 /D NTDDI_VERSION=0x0A000007 /D _WINDLL /Gm- /MD /GS /guard:cf /fp:precise /Zc:wchar_t- /Zc:forScope /Zc:inline /Fo"x86\\" /Fd"x86\vc142.pdb" /Gz /TC /analyze- /FC /errorReport:prompt kbd%1.c
RC /D _X86_=1 /D i386=1 /D STD_CALL /D WIN32_LEAN_AND_MEAN=1 /D _WIN32_WINNT=0x0A00 /D WINVER=0x0A00 /D WINNT=1 /D NTDDI_VERSION=0x0A000007 /l"0x0409" /Ix86\ /I..\..\inc /nologo /fo"x86\kbd%1.res" kbd%1.rc
LINK /ERRORREPORT:PROMPT /OUT:"x86\kbd%1.dll" /INCREMENTAL:NO /NOLOGO /WX kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /DEF:"kbd%1.def" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"x86\kbd%1.pdb" /TLBID:1 /NOENTRY /DYNAMICBASE /NXCOMPAT /IMPLIB:"x86\kbd%1.lib" /MACHINE:X86 /SAFESEH /guard:cf /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re /ignore:4254 /DLL x86\kbd%1.res x86\kbd%1.obj

View File

@ -0,0 +1,22 @@
@echo off
pushd ..\source
REM Build Bone, Neo, Qwertz
cd kbdbone
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x64 mkdir x64
call ..\..\build\build_variant_x64.cmd gr2
cd ..
popd

View File

@ -0,0 +1,22 @@
@echo off
pushd ..\source
REM Build Bone, Neo, Qwertz
cd kbdbone
IF NOT EXIST x86 mkdir x86
call ..\..\build\build_variant_x86.cmd bone
cd ..
cd kbdneo2
IF NOT EXIST x86 mkdir x86
call ..\..\build\build_variant_x86.cmd neo2
cd ..
cd kbdgr2
IF NOT EXIST x86 mkdir x86
call ..\..\build\build_variant_x86.cmd gr2
cd ..
popd

View File

@ -1,22 +0,0 @@
# Build-Anleitung für kbdneo / kbdbone / kbdqwertz
## Voraussetzungen
Aktuell notwendig zum Bauen sind folgende Programme:
* Visual Studio (2017 oder neuer)
* Desktop-Entwicklung mit C++ installiert
* Windows 10 SDK (10.0.19041 oder neuer)
* Windows Driver Kit (Version 2004 oder neuer)
* siehe Anleitung: https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
## Build
* kbd.sln in Visual Studio öffnen
* Release-Build einstellen und Konfiguration x64 auswählen
* Build solution
* Konfiguration x86 auswählen
* Build solution
Für jedes der enthaltenen Tastaturlayouts sind nun je zwei .dll-Dateien (Name = Projektname) gebaut worden. Diese müssen mit einem 64-Bit-fähigen Dateimanager (z.B. Windows Explorer) in die entsprechenden Verzeichnisse kopiert werden:
* x64\release\kbd*.dll → C:\Windows\System32
* release\kbd*.dll → C:\Windows\SysWOW64