chore(windows): symbol server support, initial steps

This commit is contained in:
Marc Durdin 2020-11-06 17:44:31 +11:00
parent 3d1601ffe5
commit 00a9744253
32 changed files with 172 additions and 16 deletions

View file

@ -273,3 +273,21 @@ MKVER_V=$(MKVER_APP) $(MKVER_COMMON_PARAMS) -v $(MKVER_VERSION_TXT) version.in v
MKVER_M=$(MKVER_APP) $(MKVER_COMMON_PARAMS) -m manifest.in manifest.xml
# Token replacement for all other file types; pattern: $(MKVER_U) <f.in> <f.out>
MKVER_U=$(MKVER_APP) $(MKVER_COMMON_PARAMS) -u
#
# Symstore
#
# KEYMAN_SYMSTOREPATH defaults to sibling folder "symbols". If it is not present,
# then we won't attempt to write symbols to the store.
!IFNDEF KEYMAN_SYMSTOREPATH
KEYMAN_SYMSTOREPATH=$(KEYMAN_ROOT)\..\symbols
!ENDIF
# This command depends on VERSION_WIN and VERSION_TIER being defined, through
# `make symbols` (i.e. don't call `make wrap-symbols`)
SYMSTORE="C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symstore.exe" add \
/s "$(KEYMAN_SYMSTOREPATH)" \
/v "$(VERSION_WIN)" \
/c "Version: $(VERSION_WIN)-$(VERSION_TIER)" \
/compress /f

View file

@ -17,7 +17,8 @@ ROOT=c:\keyman\windows
!include $(ROOT)\src\Defines.mak
#
# These three targets are the standard targets for all
# The targets build, signcode, symbols, backup are standard
# targets for all projects
#
build: $(BUILDPREREQ)
@ -27,12 +28,18 @@ build: $(BUILDPREREQ)
signcode:
$(MAKE) -DTARGET=signcode $(TARGETS)
symbols:
$(MAKE) -DTARGET=symbols $(TARGETS)
backup:
$(MAKE) -DTARGET=backup $(TARGETS)
!ELSE
signcode:
rem no signcode required
symbols:
rem no symbols required
backup:
rem no backup required
!ENDIF

View file

@ -66,3 +66,13 @@ dirs:
vcvars32:
vcvars32.bat
# This command injects the current version and tier into the VERSION_WIN and VERSION_TIER defines and then
# calls "make wrap-symbols", but it only runs if the symbols folder exists
symbols:
if exist $(KEYMAN_SYMSTOREPATH) \
cmd /C \
for /f %v in ($(KEYMAN_ROOT)\VERSION.md) do \
for /f %t in ($(KEYMAN_ROOT)\TIER.md) do \
$(MAKE) -DVERSION_TIER=%t -DVERSION_WIN=%v wrap-symbols

View file

@ -15,6 +15,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Developer Tools" $(PROGRAM)\buildtools\importkeyboard.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\buildtools\importkeyboard.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\buildtools\importkeyboard.pdb /t keyman-developer
backup:
$(WZZIP) $(BUILD)\buildtools\importkeyboard.zip $(BACKUPDEFAULTS) importkeyboard.exe

View file

@ -20,6 +20,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Desktop Install Helper" $(ROOT)\bin\desktop\insthelp.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\desktop\insthelp.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\desktop\insthelp.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\desktop\insthelp.zip $(BACKUPDEFAULTS) insthelp.exe

View file

@ -23,6 +23,10 @@ signcode:
install:
$(COPY) $(PROGRAM)\desktop\kmbrowserhost.exe "$(INSTALLPATH_KEYMANDESKTOP)"
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\desktop\kmbrowserhost.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\desktop\kmbrowserhost.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\desktop\kmbrowserhost.zip $(BACKUPDEFAULTS) $(WIN32_TARGET_PATH)\kmbrowserhost.exe $(WIN32_TARGET_PATH)\kmbrowserhost.dbg

View file

@ -19,6 +19,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman for Windows" $(PROGRAM)\desktop\kmconfig.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\desktop\kmconfig.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\desktop\kmconfig.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\desktop\kmconfig.zip $(BACKUPDEFAULTS) kmconfig.exe

View file

@ -34,6 +34,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Desktop" $(PROGRAM)\desktop\kmshell.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\desktop\kmshell.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\desktop\kmshell.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\desktop\kmshell.zip $(BACKUPDEFAULTS) kmshell.exe

View file

@ -25,6 +25,10 @@ clean: def-clean
signcode:
rem SIGNCODE /d "Keyman Desktop Setup" $(PROGRAM)\desktop\setup.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\desktop\setup.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\desktop\setup.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\desktop\setup.zip $(BACKUPDEFAULTS) setup.exe

View file

@ -72,6 +72,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Developer" $(PROGRAM)\developer\tike.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\tike.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\tike.dbg /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\tike.zip $(BACKUPDEFAULTS) tike.exe

View file

@ -15,13 +15,17 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Developer Keyboard Analyzer" $(PROGRAM)\developer\kmanalyze.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\kmanalyze.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmanalyze.pdb /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\kmanalyze.exe $(BACKUPDEFAULTS) kmanalyze.exe
test-manifest:
@rem
@rem
#install:
# $(COPY) $(PROGRAM)\developer\kmanalyze.exe "$(INSTALLPATH_KEYMANDEVELOPER)\kmanalyze.exe"
!include ..\..\Target.mak

View file

@ -16,14 +16,14 @@ build: version.res dirs
$(COPY) $(WIN32_TARGET_PATH)\kmcmpdll.dll ..\tike\kmcmpdll.dll
-mkdir ..\kmcomp\$(WIN32_TARGET_PATH)
$(COPY) $(WIN32_TARGET_PATH)\kmcmpdll.dll ..\kmcomp\$(WIN32_TARGET_PATH)\kmcmpdll.dll
$(MSBUILD) kmcmpdll.sln $(MSBUILD_BUILD) /p:Platform=x64
$(COPY) $(X64_TARGET_PATH)\kmcmpdll.x64.dll $(PROGRAM)\developer\kmcmpdll.x64.dll
$(COPY) $(X64_TARGET_PATH)\kmcmpdll.x64.lib $(OUTLIB)\kmcmpdll.x64.lib
$(COPY) $(X64_TARGET_PATH)\kmcmpdll.x64.pdb $(DEBUGPATH)\developer\kmcmpdll.x64.pdb
-mkdir ..\kmcomp\$(WIN64_TARGET_PATH)
$(COPY) $(X64_TARGET_PATH)\kmcmpdll.x64.dll ..\kmcomp\$(WIN64_TARGET_PATH)\kmcmpdll.x64.dll
clean: def-clean
$(MSBUILD) kmcmpdll.sln $(MSBUILD_CLEAN)
@ -32,14 +32,20 @@ signcode:
$(SIGNCODE) /d "Keyman Developer Compiler" $(PROGRAM)\developer\kmcmpdll.dll
$(SIGNCODE) /d "Keyman Developer Compiler" $(PROGRAM)\developer\kmcmpdll.x64.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\kmcmpdll.dll /t keyman-developer
$(SYMSTORE) $(PROGRAM)\developer\kmcmpdll.x64.dll /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmcmpdll.pdb /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmcmpdll.x64.pdb /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\kmcmpdll.zip $(BACKUPDEFAULTS) $(PROGRAM)\developer\kmcmpdll.dll $(PROGRAM)\developer\kmcmpdll.x64.dll
test-manifest:
@rem This target needed as dependency for TIKE and KMCMPDLL
install:
$(COPY) $(PROGRAM)\developer\kmcmpdll.dll "$(INSTALLPATH_KEYMANDEVELOPER)\kmcmpdll.dll"
$(COPY) $(PROGRAM)\developer\kmcmpdll.x64.dll "$(INSTALLPATH_KEYMANDEVELOPER)\kmcmpdll.x64.dll"
!include ..\..\Target.mak

View file

@ -39,6 +39,12 @@ signcode:
$(SIGNCODE) /d "Keyman Developer Command-Line Compiler" $(PROGRAM)\developer\kmcomp.exe
$(SIGNCODE) /d "Keyman Developer Command-Line Compiler" $(PROGRAM)\developer\kmcomp.x64.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\kmcomp.exe /t keyman-developer
$(SYMSTORE) $(PROGRAM)\developer\kmcomp.x64.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmcomp.dbg /t keyman-developer
#TODO: $(SYMSTORE) $(DEBUGPATH)\developer\kmcomp.x64.dbg /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\kmcomp.zip $(BACKUPDEFAULTS) $(PROGRAM)\developer\kmcomp.exe $(PROGRAM)\developer\kmcomp.x64.exe

View file

@ -21,6 +21,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Developer Conversion Utility" $(PROGRAM)\developer\kmconvert.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\kmconvert.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmconvert.dbg /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\kmconvert.zip $(BACKUPDEFAULTS) kmconvert.exe

View file

@ -16,13 +16,17 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Developer Decompiler" $(PROGRAM)\developer\kmdecomp.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\kmdecomp.exe /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\kmdecomp.pdb /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\kmdecomp.zip $(BACKUPDEFAULTS) $(PROGRAM)\developer\kmdecomp.exe
$(WZZIP) $(BUILD)\developer\kmdecomp.zip $(BACKUPDEFAULTS) $(PROGRAM)\developer\kmdecomp.exe
test-manifest:
@rem This target needed as dependency for KMDECOMP
install:
$(COPY) $(PROGRAM)\developer\kmdecomp.exe "$(INSTALLPATH_KEYMANDEVELOPER)\kmdecomp.exe"
!include ..\..\Target.mak

View file

@ -9,10 +9,15 @@ VERSION_TXT_PATH=..\..
build: dirs version.res
$(MSBUILD) imsample.sln $(MSBUILD_BUILD)
$(COPY) imsample.dll $(PROGRAM)\developer
$(COPY) imsample.pdb $(PROGRAM)\developer
signcode:
$(SIGNCODE) /d "Keyman IMX Sample" $(PROGRAM)\developer\imsample.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\developer\imsample.dll /t keyman-developer
$(SYMSTORE) $(DEBUGPATH)\developer\imsample.pdb /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\imsample.zip $(BACKUPDEFAULTS) imsample.dll

View file

@ -25,6 +25,13 @@ clean: def-clean
signcode:
rem SIGNCODE /d "Keyman Developer Setup" $(PROGRAM)\developer\setup.exe
wrap-symbols:
# This is slightly non-standard due to renamed devsetup.dbg above
# we should be able to clean this up in the future when we remove the
# zipped debug symbols
$(SYMSTORE) $(PROGRAM)\developer\setup.exe /t keyman-developer
$(SYMSTORE) $(ROOT)\src\developer\setup\setup.dbg /t keyman-developer
backup:
$(WZZIP) $(BUILD)\developer\devsetup.zip $(BACKUPDEFAULTS) setup.exe

View file

@ -19,6 +19,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine Install Helper" $(PROGRAM)\inst\insthelper.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\inst\insthelper.dll /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\inst\insthelper.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\inst\insthelper.zip $(BACKUPDEFAULTS) insthelper.dll

View file

@ -17,6 +17,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine" $(PROGRAM)\engine\keyman.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\keyman.dll /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\keyman.dbg /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\keyman.zip $(BACKUPDEFAULTS) keyman.exe

View file

@ -21,6 +21,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine" $(PROGRAM)\engine\keyman32.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\keyman32.dll /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\keyman32.pdb /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\keyman32.zip $(BACKUPDEFAULTS) keyman32.dll

View file

@ -21,6 +21,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine x64" $(PROGRAM)\engine\keyman64.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\keyman64.dll /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\keyman64.pdb /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\keyman64.zip $(BACKUPDEFAULTS) keyman64.dll

View file

@ -4,7 +4,7 @@
!include ..\..\Defines.mak
build:
build:
mc -U keymanmc.mc
rc keymanmc.rc
link -dll -noentry keymanmc.res
@ -20,6 +20,9 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine" $(PROGRAM)\engine\keymanmc.dll
wrap-symbols:
rem no symbols
backup:
$(WZZIP) $(BUILD)\engine\keymanmc.zip $(BACKUPDEFAULTS) keymanmc.dll

View file

@ -22,6 +22,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine x64" $(PROGRAM)\engine\keymanx64.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\keymanx64.exe /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\keymanx64.pdb /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\keymanx64.exe $(BACKUPDEFAULTS) keymanx64.exe

View file

@ -44,6 +44,12 @@ install:
$(COPY) $(PROGRAM)\engine\kmcomapi.x64.dll "$(INSTALLPATH_KEYMANENGINE)"
cmd /c regsvr32 /s "$(INSTALLPATH_KEYMANENGINE)\kmcomapi.x64.dll"
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\kmcomapi.dll /t keyman-engine-windows
$(SYMSTORE) $(PROGRAM)\engine\kmcomapi.x64.dll /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\kmcomapi.dbg /t keyman-engine-windows
#TODO: $(SYMSTORE) $(PROGRAM)\engine\kmcomapi.x64.dbg /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\kmcomapi.zip $(BACKUPDEFAULTS) $(WIN32_TARGET_PATH)\kmcomapi.dll $(WIN64_TARGET_PATH)\kmcomapi.x64.dll $(WIN32_TARGET_PATH)\kmcomapi.dbg

View file

@ -20,6 +20,12 @@ signcode:
$(SIGNCODE) /d "Keyman Engine Text Service" $(PROGRAM)\engine\kmtip.dll
$(SIGNCODE) /d "Keyman Engine Text Service" $(PROGRAM)\engine\kmtip64.dll
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\kmtip.dll /t keyman-engine-windows
$(SYMSTORE) $(PROGRAM)\engine\kmtip64.dll /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\kmtip.pdb /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\kmtip64.pdb /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\kmtip.zip x86\kmtip.pdb $(BACKUPDEFAULTS) x86\kmtip.dll
$(WZZIP) $(BUILD)\engine\kmtip64.zip x64\kmtip64.pdb $(BACKUPDEFAULTS) x64\kmtip64.dll

View file

@ -18,6 +18,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine Mnemonic Keyboard Recompiler" $(PROGRAM)\engine\mcompile.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\mcompile.exe /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\mcompile.pdb /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\mcompile.exe $(BACKUPDEFAULTS) mcompile.exe

View file

@ -28,6 +28,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine Diagnostics" $(PROGRAM)\engine\tsysinfo.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\tsysinfo.exe /t keyman-engine-windows
$(SYMSTORE) $(DEBUGPATH)\engine\tsysinfo.dbg /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\tsysinfo.zip $(BACKUPDEFAULTS) tsysinfo.exe

View file

@ -14,6 +14,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine x64 Diagnostics" $(PROGRAM)\engine\tsysinfox64.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\engine\tsysinfox64.exe /t keyman-engine-windows
#$(SYMSTORE) $(DEBUGPATH)\engine\tsysinfox64.dbg /t keyman-engine-windows
backup:
$(WZZIP) $(BUILD)\engine\tsysinfox64.zip $(BACKUPDEFAULTS) $(WIN64_TARGET_PATH)\*.map $(WIN64_TARGET_PATH)\tsysinfox64.exe

View file

@ -13,7 +13,11 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Character Identifier" $(PROGRAM)\support\charident.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\support\charident.exe /t keyman-windows
#TODO: $(SYMSTORE) $(DEBUGPATH)\support\charident.dbg /t keyman-windows
backup:
$(WZZIP) $(BUILD)\online\charident.zip $(BACKUPDEFAULTS) charident.exe
$(WZZIP) $(BUILD)\support\charident.zip $(BACKUPDEFAULTS) charident.exe
!include ..\..\Target.mak

View file

@ -15,6 +15,10 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Keyman Engine Tools" $(PROGRAM)\support\etl2log.exe
wrap-symbols:
$(SYMSTORE) $(PROGRAM)\support\etl2log.exe /t keyman-windows
$(SYMSTORE) $(DEBUGPATH)\support\etl2log.pdb /t keyman-windows
backup:
$(WZZIP) $(BUILD)\support\etl2log.zip $(BACKUPDEFAULTS) etl2log.exe

View file

@ -1,5 +1,5 @@
#
# KMShell Makefile
# TODO: remove this project
#
!include ..\..\Defines.mak
@ -7,7 +7,7 @@
build: # version.res
$(DCC32) km_yim.dpr
rem $(TDSPACK) $(PROGRAM)\desktop\km_yim.exe km_yim.tds
rem $(TDS2DBG) $(PROGRAM)\desktop\km_yim.exe
rem $(TDS2DBG) $(PROGRAM)\desktop\km_yim.exe
$(WZZIP) inst_km_yim.zip km_yim.exe
# $(WZSE) inst_km_yim -setup -t inst_km_yim.dialog.txt -st "Tavultesoft Keyman Desktop Yahoo Messenger Addin" -c km_yim.exe
@ -17,6 +17,8 @@ clean: def-clean
signcode:
$(SIGNCODE) /d "Tavultesoft Keyman Desktop Yahoo Messenger Addin" inst_km_yim.exe
wrap-symbols:
rem
backup:
$(WZZIP) $(BUILD)\desktop\km_yim.zip $(BACKUPDEFAULTS) km_yim.exe

View file

@ -1,13 +1,13 @@
#
# KMKB0045 Makefile
# TODO: remove this project
#
!include ..\..\Defines.mak
build: version.res manifest.res
$(DCC32) kmkb0045.dpr
$(TDS2DBG) kmkb0045.exe
$(SENTRYTOOL_DELPHIPREP) kmkb0045.exe -dpr kmkb0045.dpr
$(TDS2DBG) kmkb0045.exe
$(COPY) kmkb0045.exe $(PROGRAM)\support
clean: def-clean