Programming Reference:Building Qt for BCI2000
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  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 ^ -no-opengl ^ -no-openvg ^ -no-direct2d ^ -no-angle ^ -no-dbus ^ -no-audio-backend ^ -no-wmf-backend ^ -skip qtdeclarative ^ -skip qtquick1 ^ -skip qtquickcontrols ^ -skip qtscript ^ -skip qtwebkit ^ -skip qtwebkit-examples ^ -skip qtxmlpatterns ^ -skip qtmultimedia ^ -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).