[Developer] Remove old DELPHI_STARTER build path now that Delphi Community is available

This commit is contained in:
Marc Durdin 2018-08-14 12:51:55 +10:00
parent 124d5d49c1
commit 69dcb03ac1
10 changed files with 6 additions and 93 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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