diff --git a/windows/src/Defines.mak b/windows/src/Defines.mak index 0c3cdfee13..057797e93b 100644 --- a/windows/src/Defines.mak +++ b/windows/src/Defines.mak @@ -32,10 +32,6 @@ INSTALLPATH_KEYMANENGINE=%CommonProgramFiles(X86)%\Keyman\Keyman Engine $(KEYMAN DELPHI_MSBUILD_FLAG_DEBUG=/p:Config=Release !ENDIF -!IFDEF DELPHI_STARTER - MAKEFLAG_DELPHI_STARTER=-DDELPHI_STARTER -!ENDIF - !IFDEF USERDEFINES MAKEFLAG_USERDEFINES=-DUSERDEFINES !ENDIF @@ -68,7 +64,7 @@ INSTALLPATH_KEYMANENGINE=%CommonProgramFiles(X86)%\Keyman\Keyman Engine $(KEYMAN !ENDIF !ENDIF -MAKE=$(MAKE) -l $(MAKEFLAG_USERDEFINES) $(MAKEFLAG_DEBUG) $(MAKEFLAG_BUILDHELP) $(MAKEFLAG_BUILDRTF) $(MAKEFLAG_SC_TIMESTAMP) $(MAKEFLAG_LINT) $(MAKEFLAG_QUIET) $(MAKEFLAG_DELPHI_STARTER) +MAKE=$(MAKE) -l $(MAKEFLAG_USERDEFINES) $(MAKEFLAG_DEBUG) $(MAKEFLAG_BUILDHELP) $(MAKEFLAG_BUILDRTF) $(MAKEFLAG_SC_TIMESTAMP) $(MAKEFLAG_LINT) $(MAKEFLAG_QUIET) # # Delphi build commands @@ -87,10 +83,6 @@ DELPHIDPRPARAMS=-Q -B -GD -H -VT -$C+ -$D+ -$L+ -$O+ -$Q- -$R- -$W+ -$Y+ -E. $(D DELPHIDPRPARAMS64=-Q -B -GD -H -VT -$C+ -$D+ -$L+ -$O+ -$Q- -$R- -$W+ -$Y+ -E. $(DELPHIWARNINGS) -I$(DELPHIINCLUDES) -U$(DELPHIINCLUDES) -R$(DELPHIINCLUDES) -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win DELPHIDPKPARAMS=-Q -B -GD -VT -$C+ -$D+ -$L+ -$O+ -$Q- -$R- -$W+ -$Y+ -E. $(DELPHIWARNINGS) -I$(DELPHIINCLUDES) -U$(DELPHIINCLUDES) -R$(DELPHIINCLUDES) -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win -LE$(OUTLIB) -LN$(OUTLIB) -NSData -!IFDEF DELPHI_STARTER -DCC32=@$(DEVTOOLS) -dccx -DCC32DPK=@$(DEVTOOLS) -dccx -!ELSE !IFDEF NOUI DCC32=dcc32.exe $(DELPHIDPRPARAMS) DCC32DPK=dcc32.exe $(DELPHIDPKPARAMS) @@ -103,7 +95,6 @@ DCC32=@$(DEVTOOLS) -dcc $(DELPHIDPRPARAMS) DCC32DPK=@$(DEVTOOLS) -dcc $(DELPHIDPKPARAMS) !ENDIF !ENDIF -!ENDIF DCC64=dcc64.exe $(DELPHIDPRPARAMS64) -N0x64\ -Ex64\ @@ -111,20 +102,12 @@ DCC64=dcc64.exe $(DELPHIDPRPARAMS64) -N0x64\ -Ex64\ # Delphi MSBuild related commands and macros # -!IFDEF DELPHI_STARTER -DELPHI_MSBUILD=@$(DEVTOOLS) -dccx -!ELSE DELPHI_MSBUILD=$(ROOT)\src\buildtools\msbuild-wrapper.bat $(DELPHI_MSBUILD_FLAG_DEBUG) -!ENDIF !IFDEF DEBUG TARGET_PATH=Debug !ELSE -! IFDEF DELPHI_STARTER -TARGET_PATH=Debug -! ELSE TARGET_PATH=Release -! ENDIF !ENDIF WIN32_TARGET_PATH=Win32\$(TARGET_PATH) @@ -166,16 +149,7 @@ XSLTPROC=$(ROOT)\src\ext\libxslt\xsltproc.exe # TDSPACK=error! $(ROOT)\src\buildtools\tdspack\tdspack -e # TDSPACKCOMPRESS=error! $(ROOT)\src\buildtools\tdspack\tdspack -o -!IFDEF DELPHI_STARTER -# -# The Delphi Starter build does not generate .tds files for projects -# by default so we just ignore this. We don't really need to have -# the .dbg files for most developers anyway, just for release builds -# -TDS2DBG=rem -!ELSE TDS2DBG=$(ROOT)\bin\buildtools\tds2dbg -!ENDIF MAKEJCLDBG=$(ROOT)\bin\buildtools\makejcldbg.exe -E diff --git a/windows/src/README.md b/windows/src/README.md index 2c82a13820..9b67a541ba 100644 --- a/windows/src/README.md +++ b/windows/src/README.md @@ -8,7 +8,7 @@ 4. Follow steps in /web/README.md to install prerequisites for building KeymanWeb (included in Keyman Developer) 5. Add the Keyman root folder to antivirus exclusions for performance and file lock reasons (optional - but highly recommended). 6. Start Delphi 10.2 IDE once after installation to create default environment files and ensure registration is complete. -7. Set environment variables per [notes below](#environment-variables): `KEYMAN_ROOT`, `DELPHI_STARTER`, `USERDEFINES`, +7. Set environment variables per [notes below](#environment-variables): `KEYMAN_ROOT`, `USERDEFINES`, `GIT_BASH_FOR_KEYMAN`. 8. Add the **windows/lib** folder in the Keyman repository to your `PATH` environment variable (required for packages in Delphi). 9. In order to run Keyman Developer in the development build, you need to specify where the @@ -93,13 +93,12 @@ Configure Visual Studio to use two-space tab stops: ### Delphi setup requirements -Delphi Starter Edition is free and can be downloaded [here](https://www.embarcadero.com/products/delphi/starter). -Some features of Keyman are [limited](#delphi_starter---building-with-delphi-starter-edition) when built using -the Starter Edition. You must set the `DELPHI_STARTER` environment variable when using the Starter Edition. +Delphi Community Edition is free and can be downloaded [here](https://www.embarcadero.com/products/delphi/????). Install Delphi using the following options: -* Windows 32 and 64 bit (note: Delphi Starter only has 32 bit) -* No 3rd party components required +* Windows 32 and 64 bit +* DUnit components +* No other 3rd party components required * No Interbase components required ## Environment Variables @@ -129,28 +128,6 @@ SET GIT_BASH_FOR_KEYMAN="C:\Program Files\Git\bin\bash.exe" --init-file "c:\Prog You should verify the install location of Git on your computer as it may vary. -### DELPHI_STARTER - Building with Delphi Starter Edition - -Keyman can be built from the command line with Delphi Starter Edition. You will need -to set the environment variable `DELPHI_STARTER` to enable a command line build with -Delphi Starter Edition. - -However, there are three limitations: - -1. As the command line compiler is not included in Delphi Starter Edition, the build - launches an instance of the IDE to run the build. This means that while you are doing - a build, the Delphi IDE will be continually starting and stopping; it is also - significantly slower than the command line compiler. After you complete an initial - full build from the command line, you should be able to build individual projects - within the IDE. - -2. Delphi Starter Edition does not include the x64 compiler, impacting tsysinfo and - kmcomapi. tsysinfox64 will be copied from a binary already in the repository. - The x64 version of kmcomapi.dll will not be skipped. - -3. You cannot make a release build with Delphi Starter due to the missing x64 - components. - ### USERDEFINES - User Defines You can specify defines that will not be added to the git repository and will be used in diff --git a/windows/src/buildtools/delphiprojectmanager/Makefile b/windows/src/buildtools/delphiprojectmanager/Makefile index e00d529c14..398e279f9c 100644 --- a/windows/src/buildtools/delphiprojectmanager/Makefile +++ b/windows/src/buildtools/delphiprojectmanager/Makefile @@ -6,13 +6,8 @@ build: dirs # build with DCC32 as $DCC32 command uses devtools.exe, and devtools uses this package... -!ifdef DELPHI_STARTER - # Don't build this automatically for Delphi Starter. The IDE sometimes thinks a file has - # changed and then throws up a save confirmation dialog. -!else $(MAKEDIR)\dcc32 -B -E. -I$(DELPHIINCLUDES) -U$(DELPHIINCLUDES) -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win -LE$(OUTLIB) -LN$(OUTLIB) delphiprojectmanager.dpk $(DEVTOOLS) -ip $(OUTLIB)\delphiprojectmanager.bpl -!endif clean: def-clean diff --git a/windows/src/buildtools/devtools/Makefile b/windows/src/buildtools/devtools/Makefile index 70d94bc908..ac4503750c 100644 --- a/windows/src/buildtools/devtools/Makefile +++ b/windows/src/buildtools/devtools/Makefile @@ -17,17 +17,7 @@ EXCLUDEPATHDEFINES=1 build: dirs # build with DCC32 as $DCC32 command uses devtools.exe... # $(DCC32) devtools.dpr -!IFDEF DELPHI_STARTER - # We have a catch-22. We use devtools to do a build of devtools - # because otherwise Delphi IDE can stall with a spurious 'changed - # files' confirmation. So first use a static copy of devtools to - # kick things off, then replace it with a new copy once done. - # What a silly world we live in :) - copy devtools.bin $(PROGRAM)\buildtools\devtools.exe - $(DCC32) devtools.dpr -!ELSE $(MAKEDIR)\dcc32 -Q -B -E. -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win devtools.dpr -!ENDIF $(COPY) devtools.exe $(PROGRAM)\buildtools test-releasebuildcheck: build diff --git a/windows/src/buildtools/devtools/devtools.bin b/windows/src/buildtools/devtools/devtools.bin deleted file mode 100644 index 1631aee182..0000000000 Binary files a/windows/src/buildtools/devtools/devtools.bin and /dev/null differ diff --git a/windows/src/engine/kmcomapi/Makefile b/windows/src/engine/kmcomapi/Makefile index 3a90f40ed1..065ee725a4 100644 --- a/windows/src/engine/kmcomapi/Makefile +++ b/windows/src/engine/kmcomapi/Makefile @@ -13,7 +13,6 @@ build: version.res manifest.res kbd_noicon.res dirs $(COPY) $(WIN32_TARGET_PATH)\kmcomapi.dll $(PROGRAM)\engine if exist $(WIN32_TARGET_PATH)\kmcomapi.dbg $(COPY) $(WIN32_TARGET_PATH)\kmcomapi.dbg $(DEBUGPATH)\engine -!IFNDEF DELPHI_STARTER $(DELPHI_MSBUILD) kmcomapi.dproj /p:Platform=Win64 if exist $(WIN64_TARGET_PATH)\kmcomapi.x64.dll del $(WIN64_TARGET_PATH)\kmcomapi.x64.dll @@ -22,7 +21,6 @@ build: version.res manifest.res kbd_noicon.res dirs ren $(WIN64_TARGET_PATH)\kmcomapi.dll kmcomapi.x64.dll $(COPY) $(WIN64_TARGET_PATH)\kmcomapi.x64.dll $(PROGRAM)\engine\kmcomapi.x64.dll if exist $(WIN64_TARGET_PATH)\kmcomapi.dbg $(COPY) $(WIN64_TARGET_PATH)\kmcomapi.dbg $(DEBUGPATH)\engine\kmcomapi.x64.dbg -!ENDIF kbd_noicon.res: kbd_noicon.rc rc $? @@ -35,20 +33,16 @@ clean: def-clean signcode: $(SIGNCODE) /d "Keyman Engine" $(PROGRAM)\engine\kmcomapi.dll -!IFNDEF DELPHI_STARTER $(SIGNCODE) /d "Keyman Engine" $(PROGRAM)\engine\kmcomapi.x64.dll -!ENDIF install: cmd /c regsvr32 /s /u "$(INSTALLPATH_KEYMANENGINE)\kmcomapi.dll" $(COPY) $(PROGRAM)\engine\kmcomapi.dll "$(INSTALLPATH_KEYMANENGINE)" cmd /c regsvr32 /s "$(INSTALLPATH_KEYMANENGINE)\kmcomapi.dll" -!IFNDEF DELPHI_STARTER cmd /c regsvr32 /s /u "$(INSTALLPATH_KEYMANENGINE)\kmcomapi.x64.dll" $(COPY) $(PROGRAM)\engine\kmcomapi.x64.dll "$(INSTALLPATH_KEYMANENGINE)" cmd /c regsvr32 /s "$(INSTALLPATH_KEYMANENGINE)\kmcomapi.x64.dll" -!ENDIF backup: $(WZZIP) $(BUILD)\engine\kmcomapi.zip $(BACKUPDEFAULTS) $(WIN32_TARGET_PATH)\kmcomapi.dll $(WIN64_TARGET_PATH)\kmcomapi.x64.dll $(WIN32_TARGET_PATH)\kmcomapi.dbg diff --git a/windows/src/engine/tsysinfox64/Makefile b/windows/src/engine/tsysinfox64/Makefile index fd0cac760a..cb5b03eb85 100644 --- a/windows/src/engine/tsysinfox64/Makefile +++ b/windows/src/engine/tsysinfox64/Makefile @@ -4,18 +4,10 @@ !include ..\..\Defines.mak -!ifdef DELPHI_STARTER -build: dirs - # Delphi Starter does not support x64 compilation - # so we will just copy a version we have prepared - # earlier. - $(COPY) tsysinfox64.bin $(PROGRAM)\engine\tsysinfox64.exe -!else build: version.res manifest.res dirs -md x64 $(DCC64) tsysinfox64.dpr $(COPY) x64\tsysinfox64.exe $(PROGRAM)\engine -!endif clean: def-clean diff --git a/windows/src/engine/tsysinfox64/tsysinfox64.bin b/windows/src/engine/tsysinfox64/tsysinfox64.bin deleted file mode 100644 index 33bb368e33..0000000000 Binary files a/windows/src/engine/tsysinfox64/tsysinfox64.bin and /dev/null differ diff --git a/windows/src/ext/jedi/Makefile b/windows/src/ext/jedi/Makefile index 68988b5b85..4344023755 100644 --- a/windows/src/ext/jedi/Makefile +++ b/windows/src/ext/jedi/Makefile @@ -21,16 +21,11 @@ build-jcldbg: # It also needs to be called after make install cd $(EXT)\jedi\jcl\jcl\examples\windows\debug\tools -!IFDEF DELPHI_STARTER - $(DCC32) makejcldbg.dpr - $(COPY) ..\..\..\..\bin\makejcldbg.exe $(PROGRAM)\buildtools -!ELSE # We use a direct build to ignore platform warnings # as we don't control the source of this code $(MAKEDIR)\dcc32.exe $(DELPHIDPRPARAMS) makejcldbg.dpr $(COPY) makejcldbg.exe $(PROGRAM)\buildtools -!ENDIF build-jvcl-docking: cd $(EXT)\jedi\packages diff --git a/windows/src/test/integration-tests/keymanapi/Makefile b/windows/src/test/integration-tests/keymanapi/Makefile index 1af2dd5383..61f0946a95 100644 --- a/windows/src/test/integration-tests/keymanapi/Makefile +++ b/windows/src/test/integration-tests/keymanapi/Makefile @@ -10,15 +10,11 @@ TEST_MODE=--exclude:Elevated test: build $(WIN32_TARGET_PATH)\keymanapi_test.exe -b -exit:continue $(TEST_MODE) -!ifndef DELPHI_STARTER $(WIN64_TARGET_PATH)\keymanapi_test.exe -b -exit:continue $(TEST_MODE) -!endif build: $(DELPHI_MSBUILD) /p:Platform=Win32 keymanapi_test.dproj -!ifndef DELPHI_STARTER $(DELPHI_MSBUILD) /p:Platform=Win64 keymanapi_test.dproj -!endif clean: def-clean -rd /s/q Win32