refs #802 Enable build with Clang on Windows.

This commit is contained in:
Mathew Sutcliffe
2016-11-12 23:36:41 +00:00
committed by Klaus Basan
parent 95bfff36b0
commit 10ca2026a9
3 changed files with 35 additions and 15 deletions

View File

@@ -68,7 +68,7 @@ contains(BLACK_CONFIG, ProfileRelease) {
# Workaround C1128 error
################################
msvc: QMAKE_CXXFLAGS *= /bigobj
msvc:!llvm: QMAKE_CXXFLAGS *= /bigobj
################################
# No gigantic MinGW obj files
@@ -123,18 +123,21 @@ isEmpty(EXTERNALSROOT) {
# Externals
################################
clang_cl: EXTERNALS_SPEC = win32-msvc2015
else: EXTERNALS_SPEC = $$basename(QMAKESPEC)
INCLUDEPATH *= $$EXTERNALSROOT/common/include
INCLUDEPATH *= $$EXTERNALSROOT/$$basename(QMAKESPEC)/include
INCLUDEPATH *= $$EXTERNALSROOT/$$EXTERNALS_SPEC/include
INCLUDEPATH *= $$EXTERNALSROOT/common/include/crashpad
INCLUDEPATH *= $$EXTERNALSROOT/common/include/mini_chromium
equals(WORD_SIZE,64) {
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/bin64
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/lib64
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/bin64
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/lib64
}
equals(WORD_SIZE,32) {
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/bin32
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/lib32
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/bin32
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/lib32
}
LIBS *= -L$$EXTERNALS_LIB_DIR
@@ -176,3 +179,19 @@ isEmpty(PREFIX) {
################################
win32: CONFIG(debug, debug|release): DLL_DEBUG_SUFFIX = d
################################
# Experimental support for Clang on Windows
################################
clang_cl {
QMAKE_CXXFLAGS ~= s/-fms-compatibility-version=.+/
QMAKE_CXXFLAGS += -fms-compatibility-version=19.00.24210
# QtCreator ships with a version of clang-cl,
# but we want to use the one in PATH instead.
system($$(SYSTEMROOT)\system32\where /q clang-cl) {
QMAKE_CC = $$system($$(SYSTEMROOT)\system32\where clang-cl)
QMAKE_CXX = $$QMAKE_CC
}
}

View File

@@ -8,10 +8,10 @@ unix:!macx {
blackgui {
contains(BLACK_CONFIG, Static) {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a
} else {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib
win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.dylib
@@ -22,10 +22,10 @@ blackgui {
blackcore {
contains(BLACK_CONFIG, Static) {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a
} else {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib
win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.dylib
@@ -47,10 +47,10 @@ blacksound {
blackinput {
contains(BLACK_CONFIG, Static) {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a
} else {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib
win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.dylib
@@ -69,10 +69,10 @@ blackinput {
blackmisc {
contains(BLACK_CONFIG, Static) {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a
} else {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib
win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.dylib
@@ -85,7 +85,7 @@ blackmisc {
}
blackconfig {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackconfig.lib
win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackconfig.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackconfig.a
LIBS *= -lblackconfig
}

View File

@@ -2,6 +2,7 @@ msvc:DEFINES *= _SCL_SECURE_NO_WARNINGS
# swift standard warnings
msvc:QMAKE_CXXFLAGS_WARN_ON *= /wd4351 /wd4661
clang_cl:QMAKE_CXXFLAGS_WARN_ON *= -Wall -Wextra
# elevated warnings
contains(BLACK_CONFIG, AllowNoisyWarnings) {