Building-Qt-Creator-Packages: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:


# It is recommended to build in a shadow build directory
# It is recommended to build in a shadow build directory
# <code>qmake $SOURCES/qtcreator.pro CONFIG+=release" "DEFINES+=IDE_REVISION=$GIT_COMMIT" "QTC_PREFIX=/qt-creator-x.y.z"</code> where <code>$GIT_COMMIT</code> should be the sha1 of the commit that you build, and where the <code>QTC_PREFIX</code> is the directory prefix used for the 7zips that are created by the bindist target (see below).
# <code>qmake $SOURCES/qtcreator.pro CONFIG+=release" "DEFINES+=IDE_REVISION=$GIT_COMMIT" "QTC_PREFIX=/qt-creator-x.y.z"</code> where <code>$GIT_COMMIT</code> should be the sha1 of the commit that you build, and where the <code>QTC_PREFIX</code> is the directory prefix used for the 7zips that are created by the bindist target (see below).
# set the following environment variables:
# set the following environment variables:
## &lt;code&amp;gt;INSTALL_ROOT&amp;lt;/code&amp;gt;: changes the location for the install dir when doing &lt;code&amp;gt;make install&amp;lt;/code&amp;gt;, e.g. &lt;code&amp;gt;$BUILDDIR/install/qtcreator&amp;lt;/code&amp;gt; (not used on Mac)
## <code>INSTALL_ROOT</code>: changes the location for the install dir when doing <code>make install</code>, e.g. <code>$BUILDDIR/install/qtcreator</code> (not used on Mac)
## &lt;code&amp;gt;INSTALL_EDITION&amp;lt;/code&amp;gt;: can be set to e.g. &lt;code&amp;gt;&amp;#45;opensource&amp;lt;/code&amp;gt;, used for 7z and dmg file names, &lt;code&amp;gt;$${PLATFORM}$(INSTALL_EDITION)<s>$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)&lt;/code&amp;gt;<br />## &lt;code&amp;gt;INSTALL_POSTFIX&amp;lt;/code&amp;gt;: used for 7z and dmg file names, &lt;code&amp;gt;$${PLATFORM}$(INSTALL_EDITION)</s>$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)&lt;/code&amp;gt;
## <code>INSTALL_EDITION</code>: can be set to e.g. <code>&amp;#45;opensource</code>, used for 7z and dmg file names, <code>$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)</code>
# &lt;code&amp;gt;make&amp;lt;/code&amp;gt;
## <code>INSTALL_POSTFIX</code>: used for 7z and dmg file names, <code>$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)</code>
# &lt;code&amp;gt;make docs&amp;lt;/code&amp;gt;
# <code>make</code>
# &lt;code&amp;gt;make install&amp;lt;/code&amp;gt; (don't use on Mac)
# <code>make docs</code>
# &lt;code&amp;gt;make install_docs&amp;lt;/code&amp;gt; (don't use on Mac)
# <code>make install</code> (don't use on Mac)
# &lt;code&amp;gt;make deployqt&amp;lt;/code&amp;gt;
# <code>make install_docs</code> (don't use on Mac)
# <code>make deployqt</code>


After these calls the &lt;code&amp;gt;INSTALL_ROOT&amp;lt;/code&amp;gt; (Windows/Linux) or &lt;code&amp;gt;$BUILDDIR/bin/Qt Creator.app&amp;lt;/code&amp;gt; (Mac) contains a distributable binary build.
After these calls the <code>INSTALL_ROOT</code> (Windows/Linux) or <code>$BUILDDIR/bin/Qt Creator.app</code> (Mac) contains a distributable binary build.


To add &quot;external&amp;quot; executables (jom, qtcreatorcdbext64) that we deploy for Windows builds to your install, call<br /># &lt;code&amp;gt;make deployartifacts&amp;lt;/code&amp;gt;
To add "external" executables (jom, qtcreatorcdbext64) that we deploy for Windows builds to your install, call
# <code>make deployartifacts</code>


To create a 7zip with the binary build, call<br /># &lt;code&amp;gt;make bindist&amp;lt;/code&amp;gt;<br />That packages the files with a directory starting with the &lt;code&amp;gt;QTC_PREFIX&amp;lt;/code&amp;gt; you set in the qmake call.
To create a 7zip with the binary build, call
# <code>make bindist</code>
That packages the files with a directory starting with the <code>QTC_PREFIX</code> you set in the qmake call.


To create a 7zip that can be used for installers, that directly contains the files without additional directory prefix (i.e. directly bin/, lib/, and so on), call<br /># &lt;code&amp;gt;make bindist_installer&amp;lt;/code&amp;gt;
To create a 7zip that can be used for installers, that directly contains the files without additional directory prefix (i.e. directly bin/, lib/, and so on), call
# <code>make bindist_installer</code>


To create actual Qt Creator-only installers, you need to have the installer framework binaries installed, then<br /># set the following additional environment variable:<br />## &lt;code&amp;gt;IFW_PATH&amp;lt;/code&amp;gt;: location where &lt;code&amp;gt;make installer&amp;lt;/code&amp;gt; looks for the installer framework binaries (i.e. its bin/ and lib/ directories)<br /># &lt;code&amp;gt;make bindist_installer installer&amp;lt;/code&amp;gt;
To create actual Qt Creator-only installers, you need to have the installer framework binaries installed, then
# set the following additional environment variable:
## <code>IFW_PATH</code>: location where <code>make installer</code> looks for the installer framework binaries (i.e. its bin/ and lib/ directories)
# <code>make bindist_installer installer</code>


To create a disk image (dmg) with the &lt;code&amp;gt;Qt Creator.app&amp;lt;/code&amp;gt; on Mac, call<br /># &lt;code&amp;gt;make dmg&amp;lt;/code&amp;gt;
To create a disk image (dmg) with the <code>Qt Creator.app</code> on Mac, call
# <code>make dmg</code>


== Things affecting the build/install ==
== Things affecting the build/install ==
Line 32: Line 41:
{|
{|
|INSTALL_ROOT
|INSTALL_ROOT
|Changes the location for the install dir when doing &lt;code&amp;gt;make install&amp;lt;/code&amp;gt;, e.g. &lt;code&amp;gt;$BUILDDIR/install/qtcreator&amp;lt;/code&amp;gt; (not used on Mac), installation is done into &lt;code&amp;gt;$(INSTALL_ROOT)$$QTC_PREFIX&amp;lt;/code&amp;gt;
|Changes the location for the install dir when doing <code>make install</code>, e.g. <code>$BUILDDIR/install/qtcreator</code> (not used on Mac), installation is done into <code>$(INSTALL_ROOT)$$QTC_PREFIX</code>
|-
|-
|INSTALL_BASENAME
|INSTALL_BASENAME
|Sets the base name used for the files created by make bindist, bindist_installer, dmg and dmg_installer. Defaults to &lt;code&amp;gt;qt-creator-$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)&lt;/code&amp;gt;
|Sets the base name used for the files created by make bindist, bindist_installer, dmg and dmg_installer. Defaults to <code>qt-creator-$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)</code>
|-
|-
|INSTALL_EDITION
|INSTALL_EDITION
|Can be set to e.g. &lt;code&amp;gt;&amp;#45;opensource&amp;lt;/code&amp;gt;, used for default INSTALL_BASENAME
|Can be set to e.g. <code>&amp;#45;opensource</code>, used for default INSTALL_BASENAME
|-
|-
|INSTALL_POSTFIX
|INSTALL_POSTFIX
Line 44: Line 53:
|-
|-
|IFW_PATH
|IFW_PATH
|Location where &lt;code&amp;gt;make installer&amp;lt;/code&amp;gt; looks for the installer framework binaries (i.e. its bin/ and lib/ directories)
|Location where <code>make installer</code> looks for the installer framework binaries (i.e. its bin/ and lib/ directories)
|-
|-
|INSTALLER_ARCHIVE
|INSTALLER_ARCHIVE
Line 54: Line 63:
{|
{|
|QTC_PREFIX
|QTC_PREFIX
|directory prefix for the install directory &lt;code&amp;gt;make install&amp;lt;/code&amp;gt; and for what is packaged with &lt;code&amp;gt;make bindist&amp;lt;/code&amp;gt;, must start with a &lt;code&amp;gt;/&amp;lt;/code&amp;gt;, e.g. &lt;code&amp;gt;/qt-creator-x.y.z&amp;lt;/code&amp;gt;, installation is done into &lt;code&amp;gt;$(INSTALL_ROOT)$$QTC_PREFIX&amp;lt;/code&amp;gt;
|directory prefix for the install directory <code>make install</code> and for what is packaged with <code>make bindist</code>, must start with a <code>/</code>, e.g. <code>/qt-creator-x.y.z</code>, installation is done into <code>$(INSTALL_ROOT)$$QTC_PREFIX</code>
|-
|-
|IDE_PACKAGE_MODE
|IDE_PACKAGE_MODE
Line 70: Line 79:
{|
{|
|IDE_VERSION_DESCRIPTION
|IDE_VERSION_DESCRIPTION
|Text description for the Qt Creator version, shown in parenthesis after the version number in the About dialog. For example used to show &quot;Qt Creator 2.4.82 (2.5.0-beta)&quot; (IDE_VERSION_DESCRIPTION=&quot;2.5.0-beta&amp;quot; in that case)
|Text description for the Qt Creator version, shown in parenthesis after the version number in the About dialog. For example used to show "Qt Creator 2.4.82 (2.5.0-beta)" (IDE_VERSION_DESCRIPTION="2.5.0-beta" in that case)
|-
|-
|IDE_REVISION
|IDE_REVISION
Line 76: Line 85:
|-
|-
|IDE_SETTINGSVARIANT
|IDE_SETTINGSVARIANT
|Changes the directory where Qt Creator looks for user settings and resources. E.g. &lt;code&amp;gt;~/.config/IDE_SETTINGSVARIANT/qtcreator.ini&amp;lt;/code&amp;gt; on Linux. Defaults to &quot;Nokia&amp;quot;.
|Changes the directory where Qt Creator looks for user settings and resources. E.g. <code>~/.config/IDE_SETTINGSVARIANT/qtcreator.ini</code> on Linux. Defaults to "Nokia".
|}
|}


=== Install Settings ===
=== Install Settings ===


Qt Creator reads the QtCreator.ini, qtversion.xml and toolchains.xml from its installation directory as &quot;install settings&amp;quot;. (The directory is &lt;code&amp;gt;share/qtcreator/IDE_SETTINGSVARIANT/&amp;lt;/code&amp;gt; on Windows and Linux, &lt;code&amp;gt;Qt Creator.app/Contents/Resources/IDE_SETTINGSVARIANT/&amp;lt;/code&amp;gt; on Mac.)
Qt Creator reads the QtCreator.ini, qtversion.xml and toolchains.xml from its installation directory as "install settings". (The directory is <code>share/qtcreator/IDE_SETTINGSVARIANT/</code> on Windows and Linux, <code>Qt Creator.app/Contents/Resources/IDE_SETTINGSVARIANT/</code> on Mac.)


The qt versions from the qtversion.xml and tool chains from toolchains.xml are added as &quot;autodetected&amp;quot; to Qt Creator. The settings file &amp;#40;.ini&amp;amp;#41; is used for QSettings::SystemScope. An installer can give any Qt Creator setting a default value by writing into this .ini file.
The qt versions from the qtversion.xml and tool chains from toolchains.xml are added as "autodetected" to Qt Creator. The settings file (.ini) is used for QSettings::SystemScope. An installer can give any Qt Creator setting a default value by writing into this .ini file.


The following special settings (or specially notable settings) are also read by Qt Creator:<br />| ExampleManifests | Array of strings. Paths to manifest xml files that describe examples to show in Qt Creator's example browser.|<br />| Plugins/Ignored | QStringList (i.e. string containing of comma-separated values). Names of plugins that should not be loaded by default (even though they are installed and not marked experimental).|<br />| Plugins/ForceEnabled | QStringList (i.e. string containing of comma-separated values). Names of plugins that should be loaded even though they would not be loaded by default (e.g. because they are marked as experimental).|<br />| Help/InstalledDocumentation | QStringList (i.e. string containing of comma-separated values). Paths to qch (documentation) files and directories containing qch files that should be registered with Qt Creator|
The following special settings (or specially notable settings) are also read by Qt Creator:
| ExampleManifests | Array of strings. Paths to manifest xml files that describe examples to show in Qt Creator's example browser.|
| Plugins/Ignored | QStringList (i.e. string containing of comma-separated values). Names of plugins that should not be loaded by default (even though they are installed and not marked experimental).|
| Plugins/ForceEnabled | QStringList (i.e. string containing of comma-separated values). Names of plugins that should be loaded even though they would not be loaded by default (e.g. because they are marked as experimental).|
| Help/InstalledDocumentation | QStringList (i.e. string containing of comma-separated values). Paths to qch (documentation) files and directories containing qch files that should be registered with Qt Creator|


== Todo ==
== Todo ==

Revision as of 09:02, 25 February 2015


General Building of Qt Creator

  1. It is recommended to build in a shadow build directory
  2. qmake $SOURCES/qtcreator.pro CONFIG+=release" "DEFINES+=IDE_REVISION=$GIT_COMMIT" "QTC_PREFIX=/qt-creator-x.y.z"
    
    where
    $GIT_COMMIT
    
    should be the sha1 of the commit that you build, and where the
    QTC_PREFIX
    
    is the directory prefix used for the 7zips that are created by the bindist target (see below).
  3. set the following environment variables:
    1. INSTALL_ROOT
      
      : changes the location for the install dir when doing
      make install
      
      , e.g.
      $BUILDDIR/install/qtcreator
      
      (not used on Mac)
    2. INSTALL_EDITION
      
      : can be set to e.g.
      &amp;#45;opensource
      
      , used for 7z and dmg file names,
      $${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)
      
    3. INSTALL_POSTFIX
      
      : used for 7z and dmg file names,
      $${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)
      
  4. make
    
  5. make docs
    
  6. make install
    
    (don't use on Mac)
  7. make install_docs
    
    (don't use on Mac)
  8. make deployqt
    

After these calls the

INSTALL_ROOT

(Windows/Linux) or

$BUILDDIR/bin/Qt Creator.app

(Mac) contains a distributable binary build.

To add "external" executables (jom, qtcreatorcdbext64) that we deploy for Windows builds to your install, call

  1. make deployartifacts
    

To create a 7zip with the binary build, call

  1. make bindist
    

That packages the files with a directory starting with the

QTC_PREFIX

you set in the qmake call.

To create a 7zip that can be used for installers, that directly contains the files without additional directory prefix (i.e. directly bin/, lib/, and so on), call

  1. make bindist_installer
    

To create actual Qt Creator-only installers, you need to have the installer framework binaries installed, then

  1. set the following additional environment variable:
    1. IFW_PATH
      
      : location where
      make installer
      
      looks for the installer framework binaries (i.e. its bin/ and lib/ directories)
  2. make bindist_installer installer
    

To create a disk image (dmg) with the

Qt Creator.app

on Mac, call

  1. make dmg
    

Things affecting the build/install

Environment Variables

INSTALL_ROOT Changes the location for the install dir when doing
make install
, e.g.
$BUILDDIR/install/qtcreator
(not used on Mac), installation is done into
$(INSTALL_ROOT)$$QTC_PREFIX
INSTALL_BASENAME Sets the base name used for the files created by make bindist, bindist_installer, dmg and dmg_installer. Defaults to
qt-creator-$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)
INSTALL_EDITION Can be set to e.g.
&amp;#45;opensource
, used for default INSTALL_BASENAME
INSTALL_POSTFIX Used for default INSTALL_BASENAME
IFW_PATH Location where
make installer
looks for the installer framework binaries (i.e. its bin/ and lib/ directories)
INSTALLER_ARCHIVE This overwrites the default value of the 7z filename which is used by the bindist_installer step, including file extension.

Qmake Variables

QTC_PREFIX directory prefix for the install directory
make install
and for what is packaged with
make bindist
, must start with a
/
, e.g.
/qt-creator-x.y.z
, installation is done into
$(INSTALL_ROOT)$$QTC_PREFIX
IDE_PACKAGE_MODE Disables building the HellWorld and UpdateInfo plugins (which are built but marked experimental otherwise)
UPDATEINFO_ENABLE Enables the UpdateInfo plugin and enables it for the build (usually it is marked as experimental)
QT_PRIVATE_HEADERS Set to QTDIR/include where private headers are installed, if your Qt version doesn't have them in its standard include directory

C Defines

IDE_VERSION_DESCRIPTION Text description for the Qt Creator version, shown in parenthesis after the version number in the About dialog. For example used to show "Qt Creator 2.4.82 (2.5.0-beta)" (IDE_VERSION_DESCRIPTION="2.5.0-beta" in that case)
IDE_REVISION String to show as revision in About dialog. Should be set to the git sha that the Qt Creator was built from.
IDE_SETTINGSVARIANT Changes the directory where Qt Creator looks for user settings and resources. E.g.
~/.config/IDE_SETTINGSVARIANT/qtcreator.ini
on Linux. Defaults to "Nokia".

Install Settings

Qt Creator reads the QtCreator.ini, qtversion.xml and toolchains.xml from its installation directory as "install settings". (The directory is

share/qtcreator/IDE_SETTINGSVARIANT/

on Windows and Linux,

Qt Creator.app/Contents/Resources/IDE_SETTINGSVARIANT/

on Mac.)

The qt versions from the qtversion.xml and tool chains from toolchains.xml are added as "autodetected" to Qt Creator. The settings file (.ini) is used for QSettings::SystemScope. An installer can give any Qt Creator setting a default value by writing into this .ini file.

The following special settings (or specially notable settings) are also read by Qt Creator: | ExampleManifests | Array of strings. Paths to manifest xml files that describe examples to show in Qt Creator's example browser.| | Plugins/Ignored | QStringList (i.e. string containing of comma-separated values). Names of plugins that should not be loaded by default (even though they are installed and not marked experimental).| | Plugins/ForceEnabled | QStringList (i.e. string containing of comma-separated values). Names of plugins that should be loaded even though they would not be loaded by default (e.g. because they are marked as experimental).| | Help/InstalledDocumentation | QStringList (i.e. string containing of comma-separated values). Paths to qch (documentation) files and directories containing qch files that should be registered with Qt Creator|

Todo