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 # Workaround C1128 error
################################ ################################
msvc: QMAKE_CXXFLAGS *= /bigobj msvc:!llvm: QMAKE_CXXFLAGS *= /bigobj
################################ ################################
# No gigantic MinGW obj files # No gigantic MinGW obj files
@@ -123,18 +123,21 @@ isEmpty(EXTERNALSROOT) {
# Externals # Externals
################################ ################################
clang_cl: EXTERNALS_SPEC = win32-msvc2015
else: EXTERNALS_SPEC = $$basename(QMAKESPEC)
INCLUDEPATH *= $$EXTERNALSROOT/common/include INCLUDEPATH *= $$EXTERNALSROOT/common/include
INCLUDEPATH *= $$EXTERNALSROOT/$$basename(QMAKESPEC)/include INCLUDEPATH *= $$EXTERNALSROOT/$$EXTERNALS_SPEC/include
INCLUDEPATH *= $$EXTERNALSROOT/common/include/crashpad INCLUDEPATH *= $$EXTERNALSROOT/common/include/crashpad
INCLUDEPATH *= $$EXTERNALSROOT/common/include/mini_chromium INCLUDEPATH *= $$EXTERNALSROOT/common/include/mini_chromium
equals(WORD_SIZE,64) { equals(WORD_SIZE,64) {
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/bin64 EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/bin64
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/lib64 EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/lib64
} }
equals(WORD_SIZE,32) { equals(WORD_SIZE,32) {
EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/bin32 EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/bin32
EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$basename(QMAKESPEC)/lib32 EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/lib32
} }
LIBS *= -L$$EXTERNALS_LIB_DIR LIBS *= -L$$EXTERNALS_LIB_DIR
@@ -176,3 +179,19 @@ isEmpty(PREFIX) {
################################ ################################
win32: CONFIG(debug, debug|release): DLL_DEBUG_SUFFIX = d 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 { blackgui {
contains(BLACK_CONFIG, Static) { 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: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a
} else { } 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 win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.so linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.dylib macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.dylib
@@ -22,10 +22,10 @@ blackgui {
blackcore { blackcore {
contains(BLACK_CONFIG, Static) { 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: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a
} else { } 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 win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.so linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.dylib macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.dylib
@@ -47,10 +47,10 @@ blacksound {
blackinput { blackinput {
contains(BLACK_CONFIG, Static) { 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: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a
} else { } 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 win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.so linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.dylib macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.dylib
@@ -69,10 +69,10 @@ blackinput {
blackmisc { blackmisc {
contains(BLACK_CONFIG, Static) { 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: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a
} else { } 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 win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a
linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.so linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.so
macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.dylib macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.dylib
@@ -85,7 +85,7 @@ blackmisc {
} }
blackconfig { blackconfig {
win32-msvc*: PRE_TARGETDEPS += $$DestRoot/lib/blackconfig.lib win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackconfig.lib
else: PRE_TARGETDEPS += $$DestRoot/lib/libblackconfig.a else: PRE_TARGETDEPS += $$DestRoot/lib/libblackconfig.a
LIBS *= -lblackconfig LIBS *= -lblackconfig
} }

View File

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