Skip to content

Instantly share code, notes, and snippets.

@jbandela
Last active December 27, 2015 06:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbandela/7284062 to your computer and use it in GitHub Desktop.
Save jbandela/7284062 to your computer and use it in GitHub Desktop.
How to build QT 5.2 with MSVC 2013 Release Static
1) Download
2) extract zip file
3) set DXSDK_DIR= \um\
4) Edit "C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1\qtbase\mkspecs\win32-msvc2013\qmake.conf" and change MT to MD
5) C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1\qtbase\src\angle\src\libGLESv2\Makefile.Release and replace "c:\program files ..\fxc" with fxc
6) C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1\qtbase\src\3rdparty\angle\src\libEGL\Surface.cpp add #include <algorithm>
7) In "C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1\qtdeclarative\src\3rdparty\masm\yarr\YarrParser.h"
Add definitions for declarations from C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1
\qtscript\src\3rdparty\javascriptcore\JavaScriptCore\yarr\RegexCompiler.cpp
//CharacterClass* newlineCreate();
inline CharacterClass* newlineCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_matches.append('\n');
characterClass->m_matches.append('\r');
characterClass->m_matchesUnicode.append(0x2028);
characterClass->m_matchesUnicode.append(0x2029);
return characterClass;
}
//CharacterClass* digitsCreate();
inline CharacterClass* digitsCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_ranges.append(CharacterRange('0', '9'));
return characterClass;
}
//CharacterClass* spacesCreate();
inline CharacterClass* spacesCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_matches.append(' ');
characterClass->m_ranges.append(CharacterRange('\t', '\r'));
characterClass->m_matchesUnicode.append(0x00a0);
characterClass->m_matchesUnicode.append(0x1680);
characterClass->m_matchesUnicode.append(0x180e);
characterClass->m_matchesUnicode.append(0x2028);
characterClass->m_matchesUnicode.append(0x2029);
characterClass->m_matchesUnicode.append(0x202f);
characterClass->m_matchesUnicode.append(0x205f);
characterClass->m_matchesUnicode.append(0x3000);
characterClass->m_rangesUnicode.append(CharacterRange(0x2000, 0x200a));
return characterClass;
}
//CharacterClass* wordcharCreate();
inline CharacterClass* wordcharCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_matches.append('_');
characterClass->m_ranges.append(CharacterRange('0', '9'));
characterClass->m_ranges.append(CharacterRange('A', 'Z'));
characterClass->m_ranges.append(CharacterRange('a', 'z'));
return characterClass;
}
//CharacterClass* nondigitsCreate();
inline CharacterClass* nondigitsCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_ranges.append(CharacterRange(0, '0' - 1));
characterClass->m_ranges.append(CharacterRange('9' + 1, 0x7f));
characterClass->m_rangesUnicode.append(CharacterRange(0x80, 0xffff));
return characterClass;
}
//CharacterClass* nonspacesCreate()
inline CharacterClass* nonspacesCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_ranges.append(CharacterRange(0, '\t' - 1));
characterClass->m_ranges.append(CharacterRange('\r' + 1, ' ' - 1));
characterClass->m_ranges.append(CharacterRange(' ' + 1, 0x7f));
characterClass->m_rangesUnicode.append(CharacterRange(0x0080, 0x009f));
characterClass->m_rangesUnicode.append(CharacterRange(0x00a1, 0x167f));
characterClass->m_rangesUnicode.append(CharacterRange(0x1681, 0x180d));
characterClass->m_rangesUnicode.append(CharacterRange(0x180f, 0x1fff));
characterClass->m_rangesUnicode.append(CharacterRange(0x200b, 0x2027));
characterClass->m_rangesUnicode.append(CharacterRange(0x202a, 0x202e));
characterClass->m_rangesUnicode.append(CharacterRange(0x2030, 0x205e));
characterClass->m_rangesUnicode.append(CharacterRange(0x2060, 0x2fff));
characterClass->m_rangesUnicode.append(CharacterRange(0x3001, 0xffff));
return characterClass;
}
//CharacterClass* nonwordcharCreate();
inline CharacterClass* nonwordcharCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_matches.append('`');
characterClass->m_ranges.append(CharacterRange(0, '0' - 1));
characterClass->m_ranges.append(CharacterRange('9' + 1, 'A' - 1));
characterClass->m_ranges.append(CharacterRange('Z' + 1, '_' - 1));
characterClass->m_ranges.append(CharacterRange('z' + 1, 0x7f));
characterClass->m_rangesUnicode.append(CharacterRange(0x80, 0xffff));
return characterClass;
}
8) to deal with ICE in formwindowmanager.h
//#include <QtDesigner/private/qdesigner_formwindowmanager_p.h>
#include <C:\Users\jrb\Downloads\qt-everywhere-opensource-src-5.2.0-beta1\qt-everywhere-opensource-src-5.2.0-beta1\qttools\src\designer\src\lib\shared\qdesigner_formwindowmanager_p.h>
9) in MathExtras.h
#if COMPILER(MSVC)
#if 0
inline bool isinf(double num) { return !_finite(num) && !_isnan(num); }
inline bool isnan(double num) { return !!_isnan(num); }
inline bool signbit(double num) { return _copysign(1.0, num) < 0; }
inline double nextafter(double x, double y) { return _nextafter(x, y); }
inline float nextafterf(float x, float y) { return x > y ? x - FLT_EPSILON : x + FLT_EPSILON; }
inline double copysign(double x, double y) { return _copysign(x, y); }
inline int isfinite(double x) { return _finite(x); }
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment