Programming Reference:Building Qt for BCI2000 (obsolete)

From BCI2000 Wiki
Jump to navigation Jump to search

This document describes how to build Qt for installation in the BCI2000 source tree. It is current as of Qt 5.3.

Note: Following this procedure is only required if you are a member of the BCI2000 team, and if your task is to update the Qt build coming with BCI2000. In case you just want to build BCI2000 against a version of Qt outside the source tree, run CMake a first time, then open the file BCI2000/build/CMakeCache.txt in the CMake GUI, or in a text editor, and set the value of the USE_EXTERNAL_QT option to "ON".

Build and copy MSVC libraries and auxiliary files

  • Download the Qt source code [1] to your machine.
  • Outside the Qt source tree, create a directory tree, e.g. d:\Qt\5.3\build-msvc12. A Qt build may require an enormous amount of temporary disk space (50GB and more), so it is recommended to build Qt on a separate (virtual) empty disk drive.
  • Into the newly created empty build directory, place a do_configure.bat script file with the following content:
c:\Qt\5.3\Src\configure ^
-platform win32-msvc2012 ^
-static ^
-prefix d:\Qt\deployment\qt-5.3.2\win32-msvc2012 ^
-headerdir ..\include ^
-no-vcproj -mp ^
-no-openssl -no-qml-debug ^
-opengl desktop ^
-skip qtdeclarative ^
-skip qtquick1 ^
-skip qtquickcontrols ^
-skip qtscript ^
-skip qtwebkit ^
-skip qtwebkit-examples ^
-skip qtxmlpatterns ^
-nomake tests ^
-nomake examples 
  • This should be a single command line, so make sure that the caret character is actually the last character in each line, and not followed by white space.
  • Note that the first path should point to your Qt source location, and the "prefix" path should point to a location on your build drive. This is the path that will contain Qt headers and libraries after the build.
  • In your Qt source directory, open the file qtbase/mkspecs/win32-msvc2012/qmake.conf in a text editor. In QMAKE_CFLAGS_RELEASE and QMAKE_CFLAGS_DEBUG, replace the -MD and -MDd with -MT and -MTd, respectively.
  • Open an appropriate Visual Studio console window from the start menu. Whether you build a 64 or 32 bit version of Qt will depend on the type of VS Command Prompt you choose.
  • Change directory to the build directory containing the script described above, and execute it.
  • When prompted for the type of license, choose "Open Source", and answer "yes" when asked whether you accept the terms of the license.
  • Run nmake as suggested by configure.
  • After a successful build, nmake install will copy libraries and headers to the location specified by the -prefix option.
  • The following files must be present in bin:
moc.exe
qmake.exe
rcc.exe
uic.exe

  • For 64-bit versions of the libraries, proceed as above, but run configure and nmake steps from a 64-bit Visual Studio command line prompt. The target directory should be named win32-amd64-msvc2012 for MSVC 2012 64-bit builds.

Upload Qt to the BCI2000 server

  • Create a self-extracting 7z archive from each subfolder of the qt-x.y.z directory. In order to expand correctly, the archive must contain the qt-x.y.z directory as well.
  • For CMake to find an archive on the server, it must be located at the following http path: /externals/qt/qt-x.y.z.subdirname

Note that archives may not have an .exe file extension on the server. It will be added when the file is downloaded by CMake (see BCI2000/build/cmake/FindQt.cmake for details).

See also

Programming Reference:Build System