QPM (QAC based Project Manager) is the Open Source continuation of the QAC application developed by CarozoDeQuilmes (inspired on the MPM utility designed by Roberto López, the creator of Harbour MiniGUI library).
QPM is a project manager for software applications based on Harbour and xHarbour languages and its contributions, specialy the graphic support libraries for Windows: Harbour MiniGUI, Harbour MiniGUI Extend and Object Oriented Harbour GUI (OOHG), and Borland, Pelles and MinGW C/C++ compilers.
It assists programmers in the processes of program writing, compilation, debugging and linking by offering interactive and batch tools to:
- Access external utilities to edit fonts, forms, headers and DBF files.
- Keep and recover previous versions of modified files (hot recovery function).
- View and search source files, forms, headers, and DBF files.
- Incrementally compile GUI, console, and mixed-type programs.
- View error files resulting from compilation and execution.
- View .PPO files (preprocessor output).
- Execute post-build processes.
- Create CHM and HTML help files.
- Create static libraries and DLL access interfaces.
- Show the names of the functions included in static and dynamic libraries.
- Compress EXE files with the UPX utility.
See https://github.com/teamQPM/qpm/issues/new/choose
- Fork this repository.
- Create a branch:
git checkout -b <branch_name>
. - Make your changes and commit them:
git commit -m '<commit_message>'
- Push to the original branch:
git push origin <project_name>/<location>
- Create a pull request.
- See "Developers Section".
Folder | Content |
---|---|
QPM | Contain all the various make files, the ChangeLog, the main source files and the utilities. |
doc | Documentation and white-papers. |
FuentesComunes | Miscelaneous functions. |
FuentesComunes\Recursos | Miscelaneous images used by QPM. |
HelpQPM | Miscelaneous images and other files used for building QPM's help. |
htmlhelp | Folder used for building QPM's help. |
OldDistros | Installers for older versions. |
Resource | Miscelaneous images used by QPM. |
RTFtoHTML | VB project to convert encoded Rich Text to HTML format. |
Samples | Miscelaneous samples. |
Samples\Agenda | How to build a GUI application. |
Samples\ConsoleMode | How to build a CUI application. |
Samples\Contactos | How to build a GUI application. |
Samples\MakeLIB | How to build a library. |
Samples\MergeConsoleModeWithWindowsMode | How to build a mixed CUI/GUI application. |
Samples\SHG_SimpleHelpGenerator | How to build and use a CHM help file. |
Samples\TsBrowse_(Extended_1_5_b54) | How to build an application based on TSBrowse class from MiniGUI Extended. |
users-list | Messages from the old user group on Yahoo. |
-
HM30: Harbour 3.0 + MinGW 4.5.2 - 32 bits
Project Configuration
Compilers = Harbour + MinGW GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_HM30 OOHG Libs Folder = C:\OOHG_HM30\lib Lib name = liboohg.a MinGW Folder = C:\OOHG_HM30\hb30\comp\mingw MinGW Libs Folder = C:\OOHG_HM30\hb30\comp\mingw\lib Harbour Folder = C:\OOHG_HM30\hb30 Harbour Libs Folder = C:\OOHG_HM30\hb30\lib\win\mingw GTGUI name = libgtgui.a
-
HM32: Harbour 3.2 + MinGW 8.1.0 - 32 bits
Project Configuration
Compilers = Harbour + Harbour 3.1 or later + MinGW GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_HM32 OOHG Libs Folder = C:\OOHG_HM32\lib\hb\mingw Lib name = liboohg.a MinGW Folder = C:\OOHG_HM32\hb32\comp\mingw MinGW Libs Folder = C:\OOHG_HM32\hb32\comp\mingw\i686-w64-mingw32\lib Harbour Folder = C:\OOHG_HM32\hb32 Harbour Libs Folder = C:\OOHG_HM32\hb32\lib\win\mingw GTGUI name = libgtgui.a
-
HM3264: Harbour 3.2 + MinGW 9.3.0 - 64 bits
Project Configuration
Compilers = Harbour + Harbour 3.1 or later + MinGW + 64 bits GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_HM3264 OOHG Libs Folder = C:\OOHG_HM3264\lib\hb\mingw64 Lib name = liboohg.a MinGW Folder = C:\OOHG_HM3264\hb3264\comp\mingw MinGW Libs Folder = C:\OOHG_HM3264\hb3264\comp\mingw\x86_64-w64-mingw32\lib Harbour Folder = C:\OOHG_HM3264\hb3264 Harbour Libs Folder = C:\OOHG_HM3264\hb3264\lib\win\mingw64 GTGUI name = libgtgui.a
-
HM34 = Harbour 3.4 + cLang/LLVM 5.0.0 - 32 bits
Project Configuration
Compilers = Harbour + Harbour 3.1 or later + MinGW GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_HM34 OOHG Libs Folder = C:\OOHG_HM34\lib\hb34\mingw Lib name = liboohg.a MinGW Folder = C:\OOHG_HM34\hb34\comp\mingw MinGW Libs Folder = C:\OOHG_HM34\hb34\comp\mingw\i686-w64-mingw32\lib Harbour Folder = C:\OOHG_HM34\hb34 Harbour Libs Folder = C:\OOHG_HM34\hb34\lib\win\clang GTGUI name = libgtgui.a
-
XM: XHarbour 1.2.3 build 20181212 + MinGW 7.3.0 - 32 bits
Project Configuration
Compilers = xHarbour + MinGW GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_XM OOHG Libs Folder = C:\OOHG_XM\lib\xhb\mingw Lib name = liboohg.a MinGW Folder = C:\OOHG_XM\xhmingw\comp\mingw MinGW Libs Folder = C:\OOHG_XM\xhmingw\comp\mingw\i686-w64-mingw32\lib xHarbour Folder = C:\OOHG_XM\xhmingw xHarbour Libs Folder = C:\OOHG_XM\xhmingw\lib GTGUI name = libgtgui.a
-
XB: XHarbour 1.2.3 build 20181212 + BCC 5.5.1 - 32 bits
Project Configuration
Compilers = xHarbour + BCC32 GUI = OOHG + MT Mode FMG Editor = OOHG IDE+
Global Configuration
OOHG Folder = C:\OOHG_XB OOHG Libs Folder = C:\OOHG_XB\lib\xhb\bcc Lib name = oohg.lib BCC Folder = C:\Borland\BCC55 BCC Libs Folder = C:\Borland\BCC55\lib xHarbour Folder = C:\OOHG_XB\xhbcc xHarbour Libs Folder = C:\OOHG_XB\xhbcc\lib GTGUI name = gtgui.lib
-
Harbour 3.2 + MinGW 8.1 - 32-bits
Project Configuration
Compilers = Harbour + MinGW GUI = HMG Extended FMG Editor = HMGS-IDE
Global Configuration
Extended Folder = C:\minigui Extended Libs Folder = C:\minigui\lib Lib name = libminigui.a MinGW Folder = C:\minigui\mingw32 MinGW Libs Folder = C:\minigui\mingw32\i686-w64-mingw32\lib Harbour Folder = C:\minigui\harbour Harbour Libs Folder = C:\minigui\harbour\lib\win\mingw GTGUI name = libgtgui.a
-
Harbour 3.2 + MinGW 8.2 - 64-bits
Project Configuration
Compilers = Harbour + MinGW GUI = HMG Extended FMG Editor = HMGS-IDE
Global Configuration
Extended Folder = C:\minigui Extended Libs Folder = C:\minigui\lib Lib name = libminigui.a MinGW Folder = C:\minigui\mingw64 MinGW Libs Folder = C:\minigui\mingw64\x86_64-w64-mingw32\lib Harbour Folder = C:\minigui\harbour Harbour Libs Folder = C:\minigui\harbour\lib\win\mingw64 GTGUI name = libgtgui.a
-
Harbour 3.2 + BCC 5.5.1 - 32 bits
Project Configuration
Compilers = Harbour + BCC32 GUI = HMG Extended FMG Editor = HMGS-IDE
Global Configuration
Extended Folder = C:\minigui Extended Libs Folder = C:\minigui\Lib Lib name = minigui.lib BCC32 Folder = C:\Herramientas\Borland\BCC55 BCC32 Libs Folder = C:\Herramientas\Borland\BCC55\Lib Harbour Folder = C:\minigui\Harbour Harbour Libs Folder = C:\minigui\Harbour\lib GTGUI name = gtgui.lib
- Download the last QPM installer from https://github.com/teamQPM/qpm/releases and install to folder C:\QPMdev.
- Install GitHub Desktop or another Git client and checkout the QPM repository.
- An alternative is to download a zip with all the files from the aforementioned site using the green button labeled "Code".
- Install Harbour MiniGUI Extended Edition from https://github.com/teamQPM/hmgext or, if you want to try a newer version, from https://sourceforge.net/projects/hmgs-minigui/
- Install Borland C++ Compiler version 5.8.2 from:
- Start QPM, go to Settings/Global Options menu, select the tab labeled "Extended 1.x with Borland C", and configure all its fields.
- If you didn´t installed at folder C:\QPMdev, you must modify, build and execute ./HelpQPM/SHG_Change.prg to change the path to the files used by QPM to build QPM.CHM help file. The building tools do not support relative paths so a full default path must be specified (C:\QPMdev). If you fail to do this, QPM will complain that it can't found the images and zips files.
- Launch CompileAll.bat to build all the binaries.
-
In QPM_version.ch set the values of this defines:
#define QPM_VERSION_NUMBER_MAYOR '05' #define QPM_VERSION_NUMBER_MINOR '05' #define QPM_VERSION_NUMBER_BUILD '00'
-
Open your working version of QPM and load ./QPM_AutoProject.qpm
-
If AUTOINC option is set to ON then change version, release and build to one less than the release to build. E.G. if you want to build 5.01.10, set QPM to 5.01.09 if you want to build 5.01.00, set QPM to 5.00.9999 If AUTOINC option is set to OFF then change version, release and build to the desired values.
-
Build the project.
-
Install INNO Setup Compiler from http://www.jrsoftware.org/
-
Open QPM.ISS and
- Check if all the required files are included (look for 'vExeList' at QPM_Functions.prg).
- Check if all the samples are incluided (look into Samples folder).
- Set "AppVerName" and "OutputBaseFilename" variables to reflect the new version number.
- Set "AppPublisher" variable to your name.
- Update "AppCopyright" to the current year.
- Hit "compile" button.
-
Upload the installer to GitHub's release page.
- QPM's Internet Help site is located at https://qpm.sourceforge.io/ and can be accessed from "Browse help file" link at https://teamqpm.github.io/
- If you don't have one, download and install a FTP client. FileZilla is a fine choice: https://filezilla-project.org/
- Open QPM_AutoProjectOnlyHelp.qpm and:
- Select SHG tab page and make all the necessary changes.
- Check "Add HTML Output" option.
- Click "Generate" button.
- If prompted save all unsaved topics.
- When prompted select folder "htmlhelp" (this folder will hold all the files generated by the build process).
- Wait until the process ends and close the project.
- Note that the html files are generated from rtf text by us_r2h.exe utility.
- Open you FTP client and
- Set folder "htmlhelp" as your local site.
- Set "web.sourceforge.net" as the server.
- Set "sftp" as transfer protocol, set port to 22.
- Set "normal" as access mode.
- Use your SourceForge's username and password to connect.
- List "/home/project-web/qpm/htdocs" directory.
- Select "htdocs" folder.
- Upload "index.htm" from "QPM" local folder to "htdocs" folder.
- Select "QPM" folder.
- Upload files from "htmlhelp" local folder to "QPM" server folder.
- Note that changes to "index.htm" page must be done by hand!
- Always add new entries to the top of the file.
- Add an entry header using this format:
- YYYY-MM-DD HH:MM UTC[-|+]hhmm Your Full Name <your_email_address>
- Add an entry listing all the files changed, deleted or added.
- Mention the name of the changed function or macro.
- Describe the changes, the reasons, and other useful comments or explanations.
- If some related work has to be done, make a clear note about it and reference the corresponding issue.
- Group the related changes into logical sections and use the following marks to highlight them. Example:
* folder/file1.txt
+ folder/file2.prg
- folder/file3.ch
* Changed: ...
! Fixed: ...
% Optimized: ...
+ Added: ...
- Removed: ...
; Note
Please try to follow the coding standards of "The Harbour Project": https://github.com/harbour/core/blob/master/doc/codestyl.txt