diff --git a/doc/Manual.html b/doc/Manual.html index c7db5be2..22d125e2 100644 --- a/doc/Manual.html +++ b/doc/Manual.html @@ -91,7 +91,10 @@ document.write(''+e+'<\
  • 8 Developer Center
  • 9 F.A.Q. (Frequently Asked Questions) -

    8.3 Qt as Static Libraries

    +

    8.3 Directory Layout

    +

    In order to build LameXP using the provided project/solution files or the provided deployment script, please make sure you have the following directory layout, where <sources_root> is a new/empty directory:

    + +

    The Qt libraries need to be located at the following location, where the <toolset_version> identifies your compiler version (e.g. v140_xp for VS2015) and the <build_type> identifies the build configuration (Shared, Static or Debug):

    + +

    8.4 Environment variables

    +

    In order to build LameXP using the provided project/solution files or the provided deployment script, make sure the following environment variables are configured on your system:

    + +

    8.5 Using the deployment script

    +

    In order to create LameXP release packages, using the included deployment scripts, copy the configuration template file buildenv.template.txt, located at <sources_root>\LameXP_Qt\etc\Deployment, to the file buildenv.txt in the same directory. Now edit your buildenv.txt and adjust all the path variables as needed. All paths must be set up correctly, otherwise the build process is going to fail! Once everything has been set up, you can run release.bat or release_static.bat in order to create a new release package.

    +

    8.6 Qt as Static Libraries

    In order to create a "fully static" build of LameXP, i.e. a build that does not depend on any "external" DLL files (except for the obligatory operating system DLL's that you cannot get around), you'll need to compile Qt as "static" libraries. The official Qt web-site does provide pre-compiled Qt libraries. However, they only provide DLL versions, they do not provide "static" libraries. Consequently, you need to build the required "static" Qt libraries yourself. The following simple instructions should make it easy to build Qt from the sources and as "static" libraries:

    1. Make sure Visual Studio 2015 with Update-1 (or later) is installed

    2. Make sure Strawberry Perl for Windows and Python 2.7 are installed

    3. Download and extract the Qt 4.8.x source code package (e.g. to C:\QtSources\4.8.x)

    4. -
    5. Edit the file mkspecs\win32-msvc2010\qmake.conf from your Qt Sources directory as follows:

      +
    6. Edit the qmake configuration file (e.g. mkspecs\win32-msvc2015\qmake.conf) from your Qt Sources directory as follows:

      • Edit #1:
          @@ -526,8 +548,8 @@ Exit all running instances of LameXP as quickly as possible, even if that incurs
        • plugins\imageformats\qsvg.lib
        • plugins\imageformats\qtga.lib
      • -
      • Put all the static *.lib files into the Prerequisites\qt4_static\lib directory

      • -
      • ImageFormat plugins go to Prerequisites\qt4_static\plugins\imageformats

      • +
      • Put all the static *.lib files into the <sources_root>\Prerequisites\Qt4\<toolset_version>\Static\lib directory

      • +
      • ImageFormat plugins go to <sources_root>\Prerequisites\Qt4\<toolset_version>\plugins\imageformats

      • Congratulations, you should now be prepared to build the Release_Static configuration of LameXP 😊

    Note: Static libraries only work with the exactly same compiler (version) they were built with!

    diff --git a/doc/Manual.md b/doc/Manual.md index 37897a26..7b933bce 100644 --- a/doc/Manual.md +++ b/doc/Manual.md @@ -606,10 +606,12 @@ The source code of the **MUtilities** library is managed using the [*Git*](http: LameXP is currently being developed and built using the following development tools and libraries: -* [Visual Studio 2015 Update-1](https://www.visualstudio.com/), running on Windows 7 with Service Pack 1 +* [Visual Studio 2015 Update-1](https://www.visualstudio.com/), running on Windows 10 x64 (v1511) * [Qt libraries 4.8.7](http://download.qt.io/archive/qt/4.8/) for Windows (our *pre-compiled* Qt libraries for Visual Studio 2015 can be found [**here**](http://sourceforge.net/projects/lamexp/files/Miscellaneous/Qt%20Libraries/)) +* [Visual Leak Detector](https://vld.codeplex.com/), open-source memory leak detection system for Visual C++ + * Windows Platform SDK v7.1A, included with Visual Studio 2015 or Visual Studio 2013 * The minimum supported *build* platform is Windows 7 (x86 and x64) @@ -632,6 +634,31 @@ In order to create LameXP release packages, using the included deployment script * [GnuPG](https://www.gpg4win.de/) – the GNU Privacy Guard (Gpg4win) +## Directory Layout + +In order to build LameXP using the provided project/solution files or the provided deployment script, please make sure you have the following directory layout, where `` is a new/empty directory: + +* `\LameXP_Qt` – the *LameXP* "main" project +* `\Prerequisites` – prerequisites to build LameXP +* `\MUtilities` – the *MUtilities* library + +The *Qt* libraries need to be located at the following location, where the `` identifies your compiler version (e.g. `v140_xp` for VS2015) and the `` identifies the build configuration (`Shared`, `Static` or `Debug`): + +* `\Prerequisites\Qt4\\` + + +## Environment variables + +In order to build LameXP using the provided project/solution files or the provided deployment script, make sure the following environment variables are configured on your system: + +* `QTDIR` – points to your Qt installation directory, such that `%QTDIR%\bin\moc.exe` and friends exist + + +## Using the deployment script + +In order to create LameXP release packages, using the included deployment scripts, **copy** the *configuration* template file `buildenv.template.txt`, located at `\LameXP_Qt\etc\Deployment`, to the file `buildenv.txt` in the *same* directory. Now edit *your* `buildenv.txt` and adjust all the path variables as needed. All paths must be set up correctly, otherwise the build process is going to fail! Once everything has been set up, you can run `release.bat` or `release_static.bat` in order to create a new release package. + + ## Qt as Static Libraries ## In order to create a "fully static" build of LameXP, i.e. a build that does *not* depend on any "external" DLL files (except for the obligatory operating system DLL's that you cannot get around), you'll need to compile Qt as "static" libraries. The official Qt web-site *does* provide pre-compiled Qt libraries. However, they only provide DLL versions, they do *not* provide "static" libraries. Consequently, you need to build the required "static" Qt libraries yourself. The following simple instructions should make it easy to build Qt from the sources and as "static" libraries: @@ -642,7 +669,7 @@ In order to create a "fully static" build of LameXP, i.e. a build that does *not 3. Download and extract the *Qt 4.8.x* source code package (e.g. to ``C:\QtSources\4.8.x``) - 4. Edit the file ``mkspecs\win32-msvc2010\qmake.conf`` from your Qt Sources directory as follows: + 4. Edit the *qmake* configuration file (e.g. ``mkspecs\win32-msvc2015\qmake.conf``) from your Qt Sources directory as follows: * Edit #1: + ⇐ ``QMAKE_CFLAGS_RELEASE = -O2 -MD`` @@ -676,9 +703,9 @@ In order to create a "fully static" build of LameXP, i.e. a build that does *not + ``plugins\imageformats\qsvg.lib`` + ``plugins\imageformats\qtga.lib`` -13. Put all the static *.lib files into the ``Prerequisites\qt4_static\lib`` directory +13. Put all the static *.lib files into the `\Prerequisites\Qt4\\Static\lib` directory -14. ImageFormat plugins go to ``Prerequisites\qt4_static\plugins\imageformats`` +14. ImageFormat plugins go to `\Prerequisites\Qt4\\plugins\imageformats` 15. Congratulations, you should now be prepared to build the ``Release_Static`` configuration of LameXP 😊 diff --git a/etc/Deployment/_deploy.bat b/etc/Deployment/_deploy.bat index ec45a5e3..eaf4334d 100644 --- a/etc/Deployment/_deploy.bat +++ b/etc/Deployment/_deploy.bat @@ -205,7 +205,7 @@ attrib +R "%OUT_FILE%.exe" "%~dp0\..\Utilities\CEcho.exe" cyan "Signing output file..." "%~dp0\..\Utilities\CEcho.exe" cyan "===========================================================================\n" -"%PATH_GNUPG1%\gpg.exe" --detach-sign "%OUT_FILE%.exe" +"%PATH_GPGWIN%\gpg.exe" --detach-sign "%OUT_FILE%.exe" attrib +R "%OUT_FILE%.exe.sig" :: --------------------------------------------------------------------------- diff --git a/etc/Deployment/_paths.bat b/etc/Deployment/_paths.bat index 48bdcdb1..ad72a94b 100644 --- a/etc/Deployment/_paths.bat +++ b/etc/Deployment/_paths.bat @@ -17,7 +17,7 @@ set "PATH_MKNSIS=" set "PATH_MSCDIR=" set "PATH_WINSDK=" set "PATH_QTMSVC=" -set "PATH_GNUPG1=" +set "PATH_GPGWIN=" set "PATH_PANDOC=" set "PATH_VCTOOL=" set "PATH_VCPROJ=" @@ -46,7 +46,7 @@ for /f "tokens=2,*" %%s in (%BUILDENV_TXT%) do ( if "%%s"=="PATH_MSCDIR" set "PATH_MSCDIR=%%~t" if "%%s"=="PATH_WINSDK" set "PATH_WINSDK=%%~t" if "%%s"=="PATH_QTMSVC" set "PATH_QTMSVC=%%~t" - if "%%s"=="PATH_GNUPG1" set "PATH_GNUPG1=%%~t" + if "%%s"=="PATH_GPGWIN" set "PATH_GPGWIN=%%~t" if "%%s"=="PATH_PANDOC" set "PATH_PANDOC=%%~t" if "%%s"=="PATH_VCTOOL" set "PATH_VCTOOL=%%~t" if "%%s"=="PATH_VCPROJ" set "PATH_VCPROJ=%%~t" @@ -64,7 +64,7 @@ set "BUILDENV_TXT=" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_MSCDIR = \"%PATH_MSCDIR:\=\\%\"" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_WINSDK = \"%PATH_WINSDK:\=\\%\"" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_QTMSVC = \"%PATH_QTMSVC:\=\\%\"" -"%~dp0\..\Utilities\CEcho.exe" yellow "PATH_GNUPG1 = \"%PATH_GNUPG1:\=\\%\"" +"%~dp0\..\Utilities\CEcho.exe" yellow "PATH_GPGWIN = \"%PATH_GPGWIN:\=\\%\"" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_PANDOC = \"%PATH_PANDOC:\=\\%\"" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_VCTOOL = \"%PATH_VCTOOL:\=\\%\"" "%~dp0\..\Utilities\CEcho.exe" yellow "PATH_VCPROJ = \"%PATH_VCPROJ:\=\\%\"" @@ -82,7 +82,8 @@ call:validate_path PATH_WINSDK "%PATH_WINSDK%\Redist\ucrt\DLLs\x86\ucrtbase.dll" call:validate_path PATH_QTMSVC "%PATH_QTMSVC%\bin\uic.exe" call:validate_path PATH_QTMSVC "%PATH_QTMSVC%\bin\moc.exe" call:validate_path PATH_QTMSVC "%PATH_QTMSVC%\bin\rcc.exe" -call:validate_path PATH_GNUPG1 "%PATH_GNUPG1%\gpg.exe" +call:validate_path PATH_GPGWIN "%PATH_GPGWIN%\gpg.exe" +call:validate_path PATH_GPGWIN "%PATH_GPGWIN%\gpgv.exe" call:validate_path PATH_PANDOC "%PATH_PANDOC%\pandoc.exe" call:validate_path PATH_VCTOOL "%PATH_MSCDIR%\VC\redist\x86\Microsoft.VC%PATH_VCTOOL%.CRT\msvcp%PATH_VCTOOL%.dll" call:validate_path PATH_VCPROJ "%~dp0\..\..\%PATH_VCPROJ%" diff --git a/etc/Deployment/buildenv.template.txt b/etc/Deployment/buildenv.template.txt index a1ffde80..63123a87 100644 --- a/etc/Deployment/buildenv.template.txt +++ b/etc/Deployment/buildenv.template.txt @@ -3,7 +3,7 @@ #define PATH_MSCDIR "C:\Program Files (x86)\Microsoft Visual Studio 14.0" #define PATH_WINSDK "C:\Program Files (x86)\Windows Kits\10" #define PATH_QTMSVC "C:\QtSDK\Desktop\Qt\4.8.7" -#define PATH_GNUPG1 "C:\Program Files\GNU\GnuPG\pub" +#define PATH_GPGWIN "C:\Program Files\GNU\GnuPG\pub" #define PATH_PANDOC "C:\Program Files\Pandoc" #define PATH_VCTOOL "140" #define PATH_VCPROJ "LameXP_VS2015.sln" diff --git a/src/Config.h b/src/Config.h index 257f1d60..fd47c601 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 1 -#define VER_LAMEXP_BUILD 1855 +#define VER_LAMEXP_BUILD 1856 #define VER_LAMEXP_CONFG 1818 ///////////////////////////////////////////////////////////////////////////////