Project Maker

MiTeC Project Maker

Copyright (c) 2013-2020 by Michal Mutl. All Rights Reserved.

  • Introduction
  • Version History
  • System requirements
  • License
  • Getting started
Copyright © 2013-2023 by Michal Mutl. All Rights Reserved.


Introduction

Project Maker ››

MiTeC Project Maker

Copyright (c) 2013-2021 by Michal Mutl. All Rights Reserved.

What is Project Maker?

MiTeC Project Maker is tool for automated batch Delphi projects building. With Project Maker, you can set compiler and its configuration, define actions processed before and after building, patch version information of built binary, sign this binary with specified certificate, apply 3rd-party software protection and many more.

How does Project Maker work?

Project Maker offers clear powerful interface for project building task definition. Every project can contain unlimited number of tasks. Task represents Delphi project, defined in dpr or dproj file. In addition Project Maker features Profiles, where you can define common properties for project. The project can have unlimited number of profiles. Using profiles you can simply switch between variety of build configurations.

Who is Project Maker targeted on?

Project Maker is targeted on developers who need to make various build scenarios and make repeated actions automatic. Project Maker is simple but powerful and provides one-click building of very complex and dependent projects.


Version History

Project Maker ››

1.7.0 10.11.2023

+ New sounds on finish different for un/successful make

+ Optional disk space check

+ List filtering by title

* UI font changed from Tahoma,8 to Segoe UI,9

* High-Dpi issues fixed

+ Delphi 12 Athens support

1.6.0 7.7.2023

+ Bulk Edit - added Code Signing option and EXE Protection commandline

+ Profile - added Code Signing option

* Fixed compiler path variables

1.5.2 20.4.2023

+ Timestamp server URL - added more known and reliable server URLs to select from

* Internal stability fixes and optimizations

1.5.1 3.1.2023

* Bugs and High DPI issues fixes

1.5.0 24.10.2022

+ Version information details added to Bulk Set

* Bug fixes

* DPI fixes

1.4.9 8.8.2022

+ Added GIT executable presence check

+ Added sys files support to Sign Tool

1.4.8 8.6.2022

* Bug fixes and UI polishing

1.4.7 13.5.2022

* Fixed internal bugs causing that wrong target platform or compiler settings are used for building

* Fixed AV on Remove task when non-default sorting in task list is used

+ Compiler search path in compiler properties made more readable

1.4.6 12.5.2022

* Fixed error while saving new project

1.4.5 9.5.2022

+ Added two more global variables to Project properties

+ Variables can be used in task filename

+ UI changes (Win 11 compatibility)

+ Added new variable OUTPUTFILENAME containing compiled filename with path and extension

* Fixed make issue with output path defined in Delphi project options

* Fixed make issue with Environment variables defined in Delphi

1.4.4 10.9.2021

+ Embarcadero Delphi 11 Alexandria compatibility

1.4.3 28.6.2021

* Fixed user system overrides environment variables evaluation

1.4.2 27.4.2021

* Fixed Title sorting issue

1.4.1 21.4.2021

* Fixed profile management actions when no profile exists

+ Added new small About button to caption, big question mark button now displays Version history

1.4.0 20.4.2021

* Fixed check persistence for sorting different than default

+ Added total build elapsed time

+ Added project global variables

+ Added profile name display mode option

1.3.2 5.3.2021

+ Added Update Original filename option in version info patching

1.3.1 4.3.2021

* Fixed code signing bug when file is renamed after compilation

1.3.0 3.3.2021

+ Added compiled exe rename option

+ Checked tasks are persistent on save

* Fixed profile conditional defines compiler use when task compiler directives are off

1.2.0 21.1.2021

* Fixed CPU affinity adjusting for compiler process

+ Added Code signing properties to Bulk set

1.1.0 15.12.2020

+ Added VI patching, Code signing and EXE protection option to Bulk set

+ Added building process cancel shortcut (Esc)

1.0.0 18.10.2020

Initial release


System requirements

Project Maker ››

Compiler compatibility

Project Maker is compatible with following Delphi compilers:

  • Borland Delphi 5
  • Borland Delphi 6
  • Borland Delphi 7
  • Borland Delphi 8
  • Borland Developer Studio 2005
  • Borland Developer Studio 2006
  • CodeGear RAD Studio 2007
  • CodeGear RAD Studio 2009
  • Embarcadero RAD Studio 2010
  • Embarcadero RAD Studio XE
  • Embarcadero RAD Studio XE2
  • Embarcadero RAD Studio XE3
  • Embarcadero RAD Studio XE4
  • Embarcadero RAD Studio XE5
  • Embarcadero RAD Studio XE6
  • Embarcadero RAD Studio XE7
  • Embarcadero RAD Studio XE8
  • Embarcadero RAD Studio 10 Seattle
  • Embarcadero RAD Studio 10.1 Berlin
  • Embarcadero RAD Studio 10.2 Tokyo
  • Embarcadero RAD Studio 10.3 Rio
  • Embarcadero RAD Studio 10.4 Sydney
  • Embarcadero RAD Studio 11 Alexandria
  • Embarcadero RAD Studio 12 Athens

Project Maker was tested with Win32, Win64 and Android platforms. Linux and OSX are supported but not tested.

Project Maker is compatible with Microsoft (R) Build Engine 2.x and newer.

OS compatibility

Project Maker can be run on Microsoft (R) Windows XP/Windows Server 2003 (TM) and newer.

Note: Project Maker can be used without any compiler installed for project definition but for project building at least one supported Delphi compiler must be properly installed.


License

Project Maker ››

Please Read the License Agreement for Project Maker before using this software.

Project Maker End User License Agreement
Copyright © 2013-2020, Michal Mutl (MiTeC)
All Rights Reserved.

End User License Agreement

This software end user license agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Michal Mutl (MiTeC). Read this document carefully before completing the installation process and using the Software. It provides a license to use the Software and contains warranty information and liability disclaimers. By installing, copying, or otherwise using the Software, you are confirming your acceptance of this EULA and agreeing to become bound by the terms and conditions of this license agreement. If you do not agree with the terms of this EULA, do not install or use the Software.

1. Copyright and Ownership

This Software is owned by Michal Mutl (MiTeC) and is protected by copyright laws and international copyright treaties. Therefore, you must treat the Software like any other copyrighted material except that you may make one copy of the Software solely for backup or archival purposes.

2. Definitions

Site - all of the licensing organization's locations within a 10km (6 mile) radius.

3. Grant of License

The licenses granted in this section are subject to the terms and conditions set forth in this EULA. Upon acceptance of this Agreement, Michal Mutl (MiTeC) grants you a non-exclusive, non-transferable, limited license to install and use the Software. You may install and use the Software as permitted by the license type purchased as described below in License Types. The license type purchased is specified in the payment receipt and is also displayed in the About dialog in the Software.

4. License Types

4.1 Named User/Build Machine License: Under the terms of a Named User/Build Machine License, either one Named User or one Build Machine is permitted to use the Software.

A Named User is a specific individual designated by you to use the Software. The individual may install the software on a desktop development machine and notebook computer; however, they are the only entity, human or machine, permitted to use the software. If more than one entity is required to use the software, then a site license is required.

A Build Machine is a non-human operated device that utilizes the Software, for example, a computer running triggered or scheduled builds. The build machine is the only entity the software may be installed on; however, a single user can remotely login to the machine to use the software. If more than one user is required to log into the machine then a site license is required.

A Named User/Build Machine License may not be used concurrently on different computers or by different entities.

4.2 Team License: Under the terms of a Team License, you may distribute and install 3 (three) copies of the Software within once specified Site in your organization. 3 (three) users may access the Software simultaneously within the specified Site.

4.3 Site License: Under the terms of a Team License, you may distribute and install an unlimited number of copies of the Software within once specified Site in your organization. An unlimited number of users may access the Software simultaneously within the specified Site.

4.4 Trial License: Under the terms of a Trial License you may use the Software for Evaluation purposes only. You may use the Software to test whether it meets your requirements. The Software is equipped with a mechanism that prevents the usage of the Software after a certain period of time has elapsed. You agree that you will delete the Software from all computers systems to which you have installed it when this date has been reached, or purchase a license to allow you to continue using the Software.

5. License Restrictions

The following license restrictions apply, except to the extent where contrary to applicable law.

5.1 The Software product is licensed, not sold. You are not obtaining title to the Software or any copyrights. You may not sub-license, rent, lease, convey, modify, translate, convert to another programming language, decompile, reverse engineer, or disassemble the Software for any purpose.

5.2 The Software is licensed as a single product. The Software may not be separated for use on more than one computer.

5.3 You may not transfer your rights or license to another person or entity without written permission from Michal Mutl (MiTeC).

5.4 Michal Mutl (MiTeC) may terminate this EULA if you fail to comply with the terms and conditions of this EULA and you must destroy all copies of the Software.

5.5 The Software License key file may not be distributed, modified or decrypted.

6. Software Updates

6.1 The Software may utilize your Internet connection for the purposes of determining if a new version of the Software is available. No personal details or license information is transmitted during this process.

7. Disclaimer of Warranty

THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE APPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. YOU ASSUME THE ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THE SOFTWARE AND ALL OTHER RISK ARISING OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE AND DOCUMENTATION. MICHAL MUTL (MITEC) DOES NOT WARRANT THAT THE SOFTWARE IS ERROR-FREE OR WILL OPERATE WITHOUT INTERRUPTION. THE SOFTWARE IS NOT DESIGNED, INTENDED OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE CONTROLS, INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. MICHAL MUTL (MITEC) SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSE.

8. Limitation of Liability

MICHAL MUTL (MITEC) SHALL NOT BE LIABLE FOR ANY DAMAGES WHATSOEVER ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF MICHAL MUTL (MITEC) HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICHAL MUTL (MITEC) BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO DAMAGES OR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS, EVEN IF MICHAL MUTL (MITEC) HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY. MICHAL MUTL (MITEC)’S TOTAL LIABILITY TO YOU FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER WILL BE LIMITED TO THE AMOUNT PAID BY YOU FOR THE SOFTWARE THAT CAUSED SUCH DAMAGE.

9. Marketing

You agree to be identified as a customer of Michal Mutl (MiTeC) and agree that Michal Mutl (MiTeC) may refer to you by name, trade name and trademark, if applicable, and may briefly describe your business in Michal Mutl (MiTeC)'s marketing materials and web site. You hereby grant Michal Mutl (MiTeC) a license to use your name and any of your trade names and trademarks solely in connection with the rights granted to Michal Mutl (MiTeC) pursuant to this marketing section.

If this clause breaches your company policy or you do not wish to be bound by this clause, Michal Mutl (MiTeC) is happy to remove it upon request.

10. General

This Agreement is governed by the laws of the Czech Republic. If any provision of this Agreement is invalid or unenforceable, that provision shall be enforced to the maximum extent permissible, to give effect to the parties' intention, and the other provisions shall continue in full force and effect. You acknowledge that this license constitutes the entire agreement between the parties, and supersedes any proposal, representation or prior agreement, oral or written, and any other communications. If this Software was acquired outside Czech Republic, then local laws may apply.


Getting started

Project Maker ››
  1. Create new project (Click on hamburger icon [image] or press F10 and from displayed menu select File and then New, or press New icon [image] in the toolbar ribbon).
  2. Enter project name (anything you want) and press OK button.
  3. Add new task (press plus icon [image] Add Task... or select Menu|Task|Add Task...)
  4. Enter task name (anything you want) or leave it blank.
  5. Enter Delphi project filename (either *.dpr or *.dproj) or press right file browse icon [image] and select desired file from file dialog. If task name edit box is empty, now project name is used as task name.
  6. Select compiler you want to use for project building.
  7. Check Use MSBuild for compilers newer than Delphi 2007 (recommended)
  8. Select or enter Configuration name for building (e.g. Debug)
  9. Choose target platform (e.g. Win32)
  10. Check Use compiler search path
  11. Close task dialog with OK button
  12. Press Make button [image] or select Menu|Project|Make
  13. If there are any errors (red lines in black log window) double-click at this red line to see details.


Overview

MiTeC Project Maker

Copyright (c) 2013-2020 by Michal Mutl. All Rights Reserved.

Project Maker stores build project definitions in Build Project File (*.bpf).

Every project can contain unlimited number of tasks. Task is represented by Delphi project, defined in dpr or dproj file and its definitions as actions, compiler configuration etc. In addition Project Maker features Profiles, where you can define common properties for project. The project can have unlimited number of profiles. Using profiles you can simply switch between variety of build configurations.

Task definitions override profile definitions.

  • Main Window
  • Options Window
  • Project Properties Window
  • Profile Properties Window
  • Task Properties Window
  • Bulk Set Window
  • Compiler Directives Window
  • Compiler Properties Window
  • Variables
  • Make process flow
  • Vault file


Main Window

Overview ››

Main Window

Application Main Window features comprehensive and brief overview of all defined tasks in opened build project.

Clicking on Project Maker icon (top-left corner) or pressing Alt+Space invokes system menu display.

Clicking on adjacent icon (hamburger lines) or pressing F10 invokes application menu display.

Clicking on seal icon displays Registration Wizard.

Clicking on T-shirt icon displays theme pop-up menu.

For quick start look at Getting started.

Subset of most used commands is displayed in tool bar.

Area chart on the right side of tool bar displays CPU usage and process with highest CPU usage.

Circle chart displays free space of repository disk. Repository disk is identified either from Source root specified in Project Properties Window or from the filename of the first task in project.

Information bar displays Project name and number of containing and selected tasks and contains Profile selection combo box and adjacent profile management buttons.

Current GIT repository active branch (if applicable) is displayed on the right side of information bar.

List of defined tasks displays the most important information about tasks.

Status icons

Task is being built

Task has been built successfully

Task has been built with errors

VIP (Version Information Patch)

Blue tag icon [image] is displayed if version information patching is enabled for given task.

PP (Protector/Packer)

Green shield icon [image] is displayed when any executable protector or packer is defined and enabled. Silver shield icon [image] is displayed if executable protector or packer is defined but not enabled.

CS (Code Signing)

Red seal icon [image] is displayed if code signing is enabled for given task and certificate file is specified. Silver seal icon [image] is displayed if code signing is enabled but no certificate file is specified.

Build progress and cancellation

When Make command is invoked and build process is started, progress animation [image] is displayed above the disk space circle chart.

If you want to stop running build process simply press Escape key or click on this animation and answer Yes on displayed question. 'Cancellation scheduled' message is displayed in front of this animation and when current running process is finished build process is interrupted.

Black Journal Window

Project build progress is displayed in black journal window at the bottom of the Main Window.

Every record can be double-clicked to display details about reported operation.

Journal can be save automatically or manually from context pop-up menu.

File Drag and Drop

If any file is dropped on Main Window, Project Maker resolves its extension and according to it either opens Build Project File (*.bpf) or creates new task for dropped Delphi Project (*.drp, *.dproj).


Options Window

This dialog allows to set Project Maker's behavior and various preferences.

Code Signing

In this section you can specify path to Microsoft SignTool and URL for timestamp server used by SignTool.

This section should be correctly filled for successful code signing.

GIT

Path to git.exe can be specified here. Project Maker tries to find installed GIT automatically on initial startup.

GIT executable path is used either for getting current project GIT branch (if project is versioned and GIT repository or Project source root is specified) or as variable %GIT% .

Detected GIT branch is saved in variable %GITBRANCH% and displayed in Main window interface .

Environment

Unit namespaces value is injected to compiler configuration for all projects.

Save Log manages journal automatic saving. Log filename is constructed from project file name and time stamp as PROJECTFILENAME_YYYYMMDDHHNNSS.log.

If Display Release name in Profile selector is checked then displayed profile name is constructed form its Name and Release Name .

If Display file version is checked then built file version information is read and Product name and File version is displayed after task name in task list.

If Beep on finish is checked then acoustic signal is played when Make process is finished.

If Check for update on startup is checked then Project Maker does update check (internet connection is required) when it starts.

System

When checked Project Makes is set as default application for Build Project Files (*bpf) opening.


Project Properties Window

Global project settings can be specified in this window. They are saved in project file together with profile and task definitions.

Project name is used for easier project identification and description. It can be different from its filename.

Environment

Default source root is root path for project. It can be used in task file path specification (or other valid settings) via variable %SOURCEROOT% .

Source root variable is (operating) system variable name where Default source root is read from. It overrides specified Default source root if it is successfully read.

GIT

You can specify GIT repository for project. It can be used in other valid settings via variable %GITREPO% .

Variables

Project global user-defined variables can be specified in this section.

%GVAR1%

%GVAR2%

%GVAR3%

For variable using see Variables topic .

Actions

There you can specify two actions in this section. First one is run before Make process, second one is run when Make process is finished.

If you want to specify actions but not use them, simply leave adjacent check box unchecked.

Note: You can see variable using example in screenshot in Run before make action definition. This action pulls git repository from server to ensure all sources used for building are latest and fresh.

Variables

See Variables topic


Profile Properties Window

Profile properties define individual profile used for building. This is very powerful concept which allows quick switching before various building scenarios.

Profile set contains task properties subset which is used if appropriate task property is not specified. It means that any specified task property value overrides profile property value.

This is displayed after every task property in Task properties dialog . Valued inherited from profile (which will be applied if given task property is not specified) is displayed in brackets after property edit / check box.

Profile name is displayed in profile selector in Main window interface . It is also used in journal in task header after task name (underlined bold aqua text).

Variables

Some user-defined variables can be specified in this section.

%OUTPUTFOLDER%

%SEARCHFOLDER%

%CONDDEFS%

%RELEASE% (%RELEASENAME%)

%RELEASEFOLDER%

%VAR1%

%VAR2%

%VAR3%

For variable using see Variables topic .

Compiler

Compiler selector allows to choose what compiler shall be used for building. If not selected, task definition is taken instead.

If Use MSBUild is left grayed, task definition is used. This option tells Project Makes whether Microsoft (R) Build Engine or (if unchecked) direct call of Delphi compiler shall be used for building.

Configuration name selector allows to choose what configuration shall be used for building. If not selected, task definition is taken instead.

Target platform selector allows to choose what configuration shall be used for building. If not selected, task definition is taken instead.

Compiler directives check box specifies whether specified task compiler directives shall be injected to compiler.

Use compiler search path check box forces compiler to use search path specified in Delphi IDE configuration dialog.

Version Information

This section is used for version info patching if appropriate task properties are not set. For more information see Task Version Infomation settings .

EXE Protection

Sets EXE protection action to be applied. It is used when appropriate task property is not set. For more information see Task EXE Protection settings .

Code Signing

Sets Code Signing action to be applied. It is used when appropriate task property is not set. For more information see Task EXE Protection settings .


Task Properties Window

Task properties define individual task represented by Delphi project (*.dpr, *.dproj).

If any property is set it overrides eponymous Profile property.

Valued inherited from profile (which will be applied if given task property is not specified) is displayed in brackets after property edit / check box.

Compiler

Compiler selector allows to choose what compiler shall be used for building.

This option tells Project Makes whether Microsoft (R) Build Engine or direct call of Delphi compiler shall be used for building. If nothing is selected then Delphi compiler direct call is used.

Configuration name selector allows to choose what configuration shall be used for building. If nothing is specified, Release is used by default.

Target platform selector allows to choose what configuration shall be used for building. If nothing is specified, Win32 is used by default.

Compiler directives check box specifies whether specified compiler directives shall be injected to compiler. Standard Delphi compiler switches and options can be used. User can modify them by pressing gear icon [image] to display Compiler Directives dialog .

Use compiler search path check box forces compiler to use search path specified in Delphi IDE configuration dialog. If nothing is selected then compiler search path is used by default.

Process CPU affinity manages Delphi compiler process CPU affinity (specifies what logical CPUs can be utilized by this process). Gear icons [image] opens extended dialog for CPU selection.

Process priority defines Delphi compiler process run priority.

Actions

Delete before compile - here you can specify file masks separated by semicolon (e.g. *.dcu;*.map). Project Maker evaluates output directory for given task and deletes all files matching specified masks there before compilation is started.

Run before compile - up to three actions can be specified which will be executed before task Delphi project compilation one by one. Keep on mind that working directory is set to specified Delphi Project path by Project Maker before and after action is processed.

Run after compile - up to three actions can be specified which will be executed when task Delphi project compilation and version info patching is finished. Keep on mind that working directory is set to specified Delphi Project path by Project Maker before and after action is processed.

Delete after compile - here you can specify file masks separated by semicolon (e.g. *.dcu;*.map). Project Maker evaluates output directory for given task and deletes all files matching specified masks there after compilation, version info patching is finished and Run after compile actions are run.

Rename after compile - specify here file name (without path and extension) of compiled binary file. Original file will be renamed to this new name (preserving path and extension) and %FILENAME% variable will be updated to this new name too.

Run after finished - action which is run after all task operations and actions are finished.

See Make process flow for more information about action run order.

Version Information

Version information values can be defined in this section. Negative value in numeric boxes means 'don't use this value' - the same as unchecked check box before other non-numeric boxes.

[Patch version info] check box enables version patching.

If [Patch only build timestamp and Original filename] check box is set then only build time stamp (if [Add build timestamp] check box is checked) and Original filename (if [Update Original filename] checkbox is checked) are written to version information and all other settings are ignored regardless of their state.

File major version ... Pre-release - standard version information fields. Some fields are saved to variables and can be referenced in other definition boxes.

Add build timestamp - adds BuildTimestamp field to version information and sets its value to YYYY-MM-DD HH:NN:SS value according to current time.

Update Original filename - updates Original filename with compiled binary filename.

Version Information MUST be enabled in appropriate Delphi project! It means compiled executable must have Version Information block present to be successfully patched.

Code Signing

In this section certificate for code signing and vault file can be specified. If certificate is not specified then SignTool selects the best signing certificate automatically from the certificate store. If certificate file is specified and vault file is not, then Project Maker asks for certificate password on code signing.

More information URL and Program name fields are used for code signing for eponymous digital certificate properties.

File to sign - built binary file name and path is used by default as source file for code signing. If you want to sign file with different name or in different folder, you can specify it here.

You can use variables here to specify folders or filenames (look at screen shot at the top of this page).

EXE Protection

This is special action definition for software protection tools or executable packers as ASProtect, Obsidium or UPX which shall be applied to built binary file.

You can use variables here to specify folders or filenames (look at screen shot at the top of this page).

Variables

See Variables topic


Bulk Set Window

This tool serves for multiple task properties batch setting.

Specify set range (All tasks or Checked tasks) and choose what properties have to be changed to what value.


Compiler Directives Window

This dialog allows to set most used Delphi compiler directives, switches and definitions.

For more information about individual settings see Delphi documentation.


Compiler Properties Window

This window displays selected Delphi compiler information and configuration for selected platform.


Variables

Variables

Variables can be used in valid property definitions and are evaluated according to its meaning during task make process.

Variable box (see picture on the right) is displayed in windows where variables can be used. According to window type only sensible variables that can be used in window context are displayed.

Variable can be placed in edit box either from clipboard, where is saved when user double-clicks on it, or by dragging desired variable to a desired box.

Variable | Description
%%ANYNAME%% | User-defined variable. Any literal enclosed in %% (e.g. %%PARAM1%%). If such variable is found for the first time, dialog is displayed and user can enter value. Entered value is then used in all other occurrences.
%CONDDEFS% | Conditional defines from selected profile
%CONFIG% | Configuration name from selected profile or selected task
%FILEMAJ% | Major file version from selected profile or selected task
%FILEMIN% | Minor file version from selected profile or selected task
%FILENAME% | Task Delphi project filename without extension
%OUTPUTFILENAME% | Task compiled filename with extension and path
%PROFNAME% | Selected profile name
%NAMESPACES% | Unit namespaces from Options
%OUTPUTFOLDER% | Output folder from selected profile
%PLATFORM% | Target platform from selected profile or selected task
%PRODMAJ% | Product major version from selected profile or selected task
%PRODMIN% | Product minor version from selected profile or selected task
%PROJPATH% | Task Delphi project file path
%RELEASE% | Release from selected profile
%RELEASEFOLDER% | Release folder from selected profile
%RELEASENAME% | Release name from selected profile
%SEARCHFOLDER% | Search folder from selected profile
%VAR1% | Custom variable 1 from selected profile
%VAR2% | Custom variable 2 from selected profile
%VAR3% | Custom variable 3 from selected profile
%GVAR1% | Project global custom variable 1
%GVAR2% | Project global custom variable 2
%GVAR3% | Project global custom variable 3
%GVAR4% | Project global custom variable 4
%GVAR5% | Project global custom variable 5
%SOURCEROOT% | Source root folder of current project
%BDS% | Selected Delphi compiler installation folder
%BDSBIN% | Selected Delphi compiler binary folder
%BDSCOMMONDIR% | Selected Delphi compiler common folder
%BDSINCLUDE% | Selected Delphi compiler include folder
%BDSLIB% | Selected Delphi compiler library folder
%BDSUSERDIR% | Selected Delphi compiler user folder
%COMPUTER% | Computer name
%COMPPATH% | Selected Delphi compiler path
%DAY% | Current day number
%DELPHI% | Selected Delphi compiler installation folder
%COMPILER% | Compiler short name from selected profile or selected task (e.g. D7, BDS4, RAD21)
%GIT% | git.exe filename from Options Window
%GITBRANCH% | Checked out branch of project GIT repository
%GITREPO% | Project GIT repository path
%MONTH% | Current month number
%NEXTDAY% | Next day number
%NEXTMONTH% | Next month number
%NEXTYEAR% | Next year number
%PMPATH% | Project Maker path
%SYS% | Windows system folder
%TEMP% | Windows temporary folder
%USERNAME% | Logged user name
%WIN% | Windows folder
%YEAR% | Current year
%YY% | Last two digits of the current year


Make process flow

Task make process flow

  1. Delete before run action
  2. Run before compilation actions
  3. Compilation
  4. Version information patching
  5. Run after compile actions
  6. Delete after compilation action
  7. Rename after compilation action
  8. EXE protection
  9. Code signing
  10. Run after finished action

Project make process flow

  1. Run before make action
  2. Task make process
  3. Run after make action


Vault file

Vault file

This is special encrypted file containing password for certificate used for code signing. It can be created from Main menu with Create vault item.

You will be prompted for file name and location and certificate password. The vault file is created then.

It prevents user to retype certificate password again and again in task definitions and make it safe for future use.

You should specify this file in Code Signing section of Task properties. It can be also used in Project Maker's Sign Tool . When code signing is applied then Project Maker decrypts this file and dig the saved password out. This password is then used in code signing process.


Tools

MiTeC Project Maker

Copyright (c) 2013-2020 by Michal Mutl. All Rights Reserved.

  • Form Cleaner
  • Sign Tool
  • VI Patcher


Form Cleaner

Tools ››

Form Cleaner

This tool removes specified unwanted properties from Delphi form files.


Sign Tool

Tools ››

Sign Tool

This tool uses SignTool defined in Options Window for specified Portable executable files signing.

If certificate is not specified then SignTool selects the best signing certificate automatically from the certificate store. In this case either password or vault file may not be specified.


VI Patcher

Tools ››

VI Patcher

This tool patches Version Information for specified Portable executable files. Version Information block must be present in EXE file.