mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-29 11:47:39 +00:00
[Developer] Remove old DELPHI_STARTER build path now that Delphi Community is available
This commit is contained in:
parent
124d5d49c1
commit
69dcb03ac1
10 changed files with 6 additions and 93 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue