diff --git a/.gitignore b/.gitignore index 1cc283c..0a71ab3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ -Bin/ -Exe/ -Release/ +Build/ +__history/ Src/GUI/PasHiGUI.cfg Src/PasHi.cfg +*.local +*.identcache +*.todo diff --git a/Build.html b/Build.html index 5557911..f3c8889 100644 --- a/Build.html +++ b/Build.html @@ -6,7 +6,7 @@ * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/ * - * Copyright (C) 2009-2012, Peter Johnson (www.delphidabbler.com). + * Copyright (C) 2009-2016, Peter Johnson (www.delphidabbler.com). * * Instructions for building PasHi and PasHiGUI. --> @@ -80,42 +80,20 @@
- The programs are written in Object Pascal and are targetted at Delphi 2010. + The programs are written in Object Pascal and are targeted at Delphi XE.
The Delphi IDE can be used to modify the source and to perform test builds. - Final builds should be built using the provided makefiles, but you can get - away with using the IDE if you don't change any resources. + Final builds should be built using the provided makefiles.
Note: - These instructions do not apply to the following versions of the program: -
- -Build.html
in the
- tags/version-1.1.0
branch of the repository.
- ReadMe-Src.txt
files that are to be found in the
- Docs
or root directories of the relevant source code trees.
- - † PasH - and PasHGUI are the old names for PasHi and - PasHiGUI. + These instructions do not apply to versions of the program before release + v2.0.0.
- No libraries are required to build PasHi + No libraries are required to build PasHi
- No libraries are required to build PasHiGUI
+ PasHiGUI requires PJWdwState.pas
from the DelphiDabbler
+ Window State Components, v5.6.1 or later. A copy of the required file is
+ included in the Src\GUI\Imported
directory. There is no need to
+ install the components into the DelphiIDE.
- A copy of Delphi is required to build the object Pascal code. Delphi 2010 - is the preferred compiler. + A copy of Delphi is required to build the object Pascal code. Delphi XE is the + preferred compiler.
@@ -186,39 +167,65 @@
DCC32
+ The Delphi command line compiler. +
+RC
+ + The Microsoft resource compiler. Used to compile the main resource file. +
BRCC32
.rc
) files.
+ + The Borland resource compiler. Used to compile version information + resources from temporary resource files emitted by VIEd (see below). +
RC
fails to
+ compile resource files emitted by the Version Information Editor while
+ BRCC32
can fail to compile .manifest
files
+ correctly.
+The following environment variables are associated with these tools:
DELPHIROOT
- required unless DELPHI2010
is
- set.
+ DELPHIROOT
- required unless DELPHIXE
is set.
DCC32
and BRCC32
are expected to be in
- the Bin
sub-directory of DELPHIROOT
.
+
+ Should be set to the install directory of the version of Delphi being
+ used. DCC32
, BRCC32
and RC
are
+ expected to be in the Bin
sub-directory of
+ DELPHIROOT
.
+
DELPHI2010
- optional
+ DELPHIXE
- optional
DELPHI2010
is specified
- DELPHIROOT
will ignore its own value and use the value of
- DELPHI2010
instead.
+
+ If you are using Delphi XE this environment variable may be set to its
+ install directory. When DELPHIXE
is specified
+ DELPHIROOT
will be ignored and DELPHIXE
will be
+ used instead.
+
.rc
) files. Version 2.11.2
or later is required. Version Information Editor can be obtained from
http://www.delphidabbler.com/software/vied.
+ href="http://delphidabbler.com/software/vied"
+ >http://delphidabbler.com/software/vied.
@@ -254,7 +261,7 @@
- The Unicode version on the Inno setup command line compiler is needed to
+ The Unicode version of the Inno setup command line compiler is needed to
create CodeSnip's install program. v5.4.0 (u) or later is required as
is a compatible version of the ISPP pre-processor. You can get Inno Setup with
ISPP at
The first step is to configure the required
@@ -316,65 +323,29 @@
- If you don't already have it, download or checkout the PasHi source
- code, which should include the source for PasHiGUI. There are
- several options:
+ If you don't already have it, you need to get the PasHi source code,
+ (which includes the source for PasHiGUI).
+ The source code is maintained in the delphidabbler/pashi Git repository on GitHub. Either clone or fork the
+ repo into a directory on your computer.
+
+ Source code for PasHi's latest release can be found in the
+ master branch while development code is maintained in the
+ develop branch. New features are developed in branches whose name
+ begins with feature. You can also download the code of one of the
+ releases by selecting the relevant tag.
+
- If you modify the code and want to submit it for inclusion in the repository
- please raise a new issue in the issue tracker, select a type (defect, enhancement etc.) and attach a
- zip file or tarball containing your enhancment, preferably including a patch
- file.
+ If you want to submit any modifications to the source code, please create a
+ new feature branch off the develop branch, commit your modifications
+ to it and then submit a pull request on GitHub.
- After checking out or downloading and extracting the source code you should
- have the following directory structure:
+ After obtaining the source code you should have the following directory
+ structure:
- If, by chance, you also have
Before you can get hacking, you need to prepare the source code tree. Open a
- command console and navigate into the
You may need to replace
or
depending on which environment variable you have set.
@@ -444,31 +412,32 @@
Once
@@ -489,49 +458,48 @@
- This runs a separate makefile in the GUI directory and further configures
- the source tree to enable PasHiGUI to be compiled. The source tree
- should have been changed slightly to look like this:
+ This runs a separate makefile in the
- If you are intending to use the Delphi IDE to compile code, you should also
- do:
+ If you are intending to use the Delphi IDE to compile PasHi, you
+ should also do:
So, to build PasHi and PasHiGUI and place
-
- Release zip files are always placed in the
- Once again this command deep operates on both the
+ A test file, named
+
If you are planning to re-use or modify any of the code, please see the
-
+ DELPHIROOT
or
- DELPHI2010
environment variables.
+ DELPHIXE
environment variables.
-
+
-
- > svn checkout http://pas-hi.googlecode.com/svn/trunk/ PATH
- PATH
is the directory where you want to
- place the working copy. You will not be able to commit
- changes unless you join the project as a contributor.
- > svn export http://pas-hi.googlecode.com/svn/trunk/ PATH
- PATH
is the directory where you wish to
- store the code.
- trunk
- with tags/XXXX
where XXX
specifies the
- version.
-
@@ -382,8 +353,8 @@
./
@@ -392,34 +363,30 @@
|
+-- Docs - documentation
|
- +-- Masters - documents used to generate some project files
- |
+-- Src - source code for PasHi
| |
- | +-- 3rdParty - any third party source code required by PasHi
- | |
| +-- Assets - assets required to build PasHi's resources
| |
| +-- GUI - source code of the GUI application, PasHiGUI
| | |
- | | +-- Resources - assets required to build PasHiGUI's resources
+ | | +-- Assets - assets required to build PasHiGUI's resources
+ | | |
+ | | +-- Imported - 3rd party source code used for GUI application
| |
| +-- Install - install program scripts
|
+-- Test - contains test file
Bin
, Exe
and
- Release
directories don't worry - all will become clear.
- Subversion users may also see the usual .svn
"hidden"
- directories or directory. If you have done some editing you may also have
- occasional "hidden" __history
folders.
+ Don't worry if you also have a Build
directory and
+ sub-directories - all will become clear.
Src
sub-folder. Run any
- script you have created to set the required environment variables then do:
+ command console and run any script you have created to set the required
+ environment variables. Then navigate into the Src
sub-folder and
+ do:
Src> Make config
@@ -427,16 +394,17 @@
Make
with the full path to
Make
if it isn't on the path, or if the Make
that
- runs isn't the Borland / CodeGear version. If this is the case try:
+ runs isn't the Borland / CodeGear / Embarcadero version. If this is the case
+ try:
Src> %DELPHIROOT%\Bin\Make config
+Src> "%DELPHIROOT%\Bin\Make" config
Src> %DELPHI2010%\Bin\Make config
+Src> "%DELPHIXE%\Bin\Make" config
Make config
has completed, your folder structure should
- have acquired the following new folders:
+ have acquired a Build
folder and sub-folders and now look like
+ this:
./
- +-- Bin - receives object files and .res files for PasHi
+ +-- Build - receives all files created by the build process
+ | |
+ | +-- Bin - receives object files and .res files for PasHi
+ | |
+ | +-- Exe - receives executable code
+ | |
+ | +-- Release - receives release files
|
+-- Config - config files to be installed with PasHi
|
+-- Docs - documentation
- |
- +-- Exe - receives executable code
- |
- +-- Masters - documents used to generate some project files
- |
- +-- Release - receives release files
- |
+ |
+-- Src - source code for PasHi
| |
- | +-- 3rdParty - any third party source code required by PasHi
- | |
| +-- Assets - assets required to build PasHi's resources
| |
| +-- GUI - source code of the GUI application, PasHiGUI
| | |
- | | +-- Resources - assets required to build PasHiGUI's resources
+ | | +-- Assets - assets required to build PasHiGUI's resources
+ | | |
+ | | +-- Imported - 3rd party source code used for GUI application
| |
| +-- Install - install program scripts
|
@@ -477,7 +446,7 @@
Make
will have created a .cfg
file from the template
in the Src
folder. .cfg
files are needed for DCC32
- to run correctly. This new file will be ignored by Subversion.
+ to run correctly. This new file will be ignored by Git.
Src\GUI> cd ..
Src\GUI
sub-directory and
+ further configures the source tree to enable PasHiGUI to be compiled.
+ The source tree should have been changed slightly to look like this:
./
- +-- Bin - receives object files and .res files for PasHi
- | |
- | +-- GUI - receives object files and .res files for PasHiGUI
- |
+ +-- Build - receives all files created by the build process
+ | |
+ | +-- Bin - receives object files and .res files for PasHi
+ | | |
+ | | +-- GUI - receives object files and .res files for PasHiGUI
+ | |
+ | +-- Exe - receives executable code
+ | |
+ | +-- Release - receives release files
+ |
+-- Config - config files to be installed with PasHi
|
+-- Docs - documentation
|
- +-- Exe - receives executable code
- |
- +-- Masters - documents used to generate some project files
- |
- +-- Release - receives release files
- |
+-- Src - source code for PasHi
| |
- | +-- 3rdParty - any third party source code required by PasHi
- | |
| +-- Assets - assets required to build PasHi's resources
| |
| +-- GUI - source code of the GUI application, PasHiGUI
| | |
- | | +-- Resources - assets required to build PasHiGUI's resources
+ | | +-- Assets - assets required to build PasHiGUI's resources
+ | | |
+ | | +-- Imported - 3rd party source code used for GUI application
| |
| +-- Install - install program scripts
|
+-- Test - contains test file
-
Make
will also have created the required .cfg
file
in the Src\GUI
directory.
Src> Make resources
@@ -607,8 +575,8 @@
PasHi.exe
and PasHiGUI.exe
in the Exe
- folder do this:
+ PasHi.exe
and PasHiGUI.exe
in the
+ Build\Exe
folder do this:
Src> Make
@@ -658,8 +626,8 @@
Src> Make -DRELEASEFILENAME=MyRelease release
Release
- directory. The directory is created if it doesn't exist.
+ Release zip files are always placed in the Build\Release
+ directory.
@@ -712,18 +680,38 @@
Src> Make deepclean
Src
and
+ Once again this command operates on both the Src
and
Src\GUI
directories.
- Copyright
+ Testing
+
+
+Test.pas
, is provided in the Test
+ directory. This file can be used to test the output of PasHi. It
+ contains some unusual but valid constructs that push the program to its
+ limits.
+Test.pas
was not designed to compile, so do not add it to the
+ project.
+
+ License & Copyright
SourceCodeLicenses.txt
file in the Docs
directory
- for an overview of the open source licenses that apply to the source code.
+ LICENSE
file for an overview of the open source licenses that
+ apply to the source code.
+LICENSE
also provides copyright information.