0030339: Configuration - add project files for qmake
[occt.git] / adm / qmake / OccCppConfig.pri
CommitLineData
aafe169f 1# This is project defines C++ compilation rules for building an OCCT Toolkit.
2
3exists(custom.auto.pri) { include(custom.auto.pri) }
4exists(custom.pri) { include(custom.pri) }
5
6# Disable some dummy Qt defaults
7QT -= core gui
8CONFIG -= qt app_bundle
9CONFIG -= qml_debug
10CONFIG -= debug_and_release
11
12OccGitRoot = $$_PRO_FILE_PWD_/../../../..
13
14# Define compilation flags
15!win32 { DEFINES += OCC_CONVERT_SIGNALS }
16android {
17 CONFIG += warn_off
18 QMAKE_CFLAGS += -fexceptions -Wno-ignored-qualifiers -Wall
19 QMAKE_CXXFLAGS += -fexceptions -Wno-ignored-qualifiers -Wall
20 #android-g++ { QMAKE_CXXFLAGS += -Wno-strict-overflow }
21} else:win32 {
22 QMAKE_CXXFLAGS_WARN_ON = -W4
23 QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
24 QMAKE_CXXFLAGS_STL_ON = /EHa
25
26 QMAKE_CXXFLAGS += -fp:precise
27 #QMAKE_CXXFLAGS -= -Zc:throwingNew
28 #QMAKE_CXXFLAGS -= -Zc:rvalueCast
29
30 QMAKE_LFLAGS += -INCREMENTAL:NO
31
32 CONFIG(debug, debug|release) {
33 QMAKE_CXXFLAGS += -Od
34 QMAKE_CXXFLAGS += -Ob1
35 }
36
37 DEFINES -= WIN32
38 DEFINES -= WIN64
39 DEFINES += _CRT_SECURE_NO_WARNINGS
40 DEFINES += _CRT_NONSTDC_NO_DEPRECATE
41 DEFINES += _SCL_SECURE_NO_WARNINGS
42} else:mac {
43 CONFIG += c++11
44 CONFIG += warn_off
45 QMAKE_CXXFLAGS += -Wall
46 QMAKE_CXXFLAGS += -fvisibility=default
47 iphoneos {
48 QMAKE_IOS_DEPLOYMENT_TARGET = 8.0
49 } else {
50 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10
51 }
52}
53
54# Define output folder depending on compiler name
55MY_BITNESS = 32
56equals(QMAKE_TARGET.arch, x86_64) | equals(QMAKE_HOST.arch, x86_64) { MY_BITNESS = 64 }
57equals(ANDROID_TARGET_ARCH, arm64-v8a) { MY_BITNESS = 64 }
58
59MY_PLATFORM = platform
60CONFIG(iphonesimulator, iphoneos|iphonesimulator) { MY_PLATFORM = iphonesimulator
61} else:CONFIG(iphoneos, iphoneos|iphonesimulator) { MY_PLATFORM = iphoneos
62} else:android { MY_PLATFORM = android-$$ANDROID_TARGET_ARCH
63} else:win32 { MY_PLATFORM = win$$MY_BITNESS
64} else:mac { MY_PLATFORM = mac
65} else:linux { MY_PLATFORM = lin
66} else:unix { MY_PLATFORM = unix
67} else { warning (Unknown platform. "$$MY_PLATFORM" is used) }
68
69MY_COMPILER = compiler
70MY_VC_VER = 0
71android-g++ {
72 MY_COMPILER = gcc
73} else:clang {
74 MY_COMPILER = clang
75} else:gcc {
76 MY_COMPILER = gcc
77} else:win32-msvc2010 {
78 MY_COMPILER = vc10
79 MY_VC_VER = 10
80} else:win32-msvc2012 {
81 MY_COMPILER = vc11
82 MY_VC_VER = 11
83} else:win32-msvc2013 {
84 MY_COMPILER = vc12
85 MY_VC_VER = 12
86} else:win32-msvc2015 {
87 MY_COMPILER = vc14
88 MY_VC_VER = 14
89} else:win32-msvc2017 {
90 MY_COMPILER = vc14
91 MY_VC_VER = 14
92} else {
93 warning (Unknown compiler. "$$MY_COMPILER" is used)
94}
95MY_PLATFORM_AND_COMPILER = $$MY_PLATFORM/$$MY_COMPILER
96#message (The platform is "$$MY_PLATFORM"; bitness is "$$MY_BITNESS"; compiler is "$$MY_COMPILER")
97
98CONFIG(debug, debug|release) { MY_BUILDTYPE = d }
99
100DESTDIR = $$OccGitRoot/$${MY_PLATFORM_AND_COMPILER}/lib$${MY_BUILDTYPE}
101win32 {
102 DESTDIR = $$OccGitRoot/win$${MY_BITNESS}/vc$${MY_VC_VER}/bin$${MY_BUILDTYPE}
103 aLibDest = $$DESTDIR/../lib$${MY_BUILDTYPE}
104 #DLLDESTDIR = $$DESTDIR/../bin$${MY_BUILDTYPE}
105
106 # dummy target creating lib/libd folder
107 occtkgen_libfolder.input = $$_PRO_FILE_PWD_/../../OcctDummy.in
108 occtkgen_libfolder.output = $$aLibDest/dummy.tmp
109 occtkgen_libfolder.config = verbatim
110 QMAKE_SUBSTITUTES += occtkgen_libfolder
111
112 LIBS += -L$$aLibDest
113 HAVE_RelWithDebInfo {
114 !CONFIG(debug, debug|release) { CONFIG += force_debug_info }
115 }
116 equals(TEMPLATE, lib) {
117 QMAKE_CLEAN += $$DESTDIR/$${TARGET}.dll
118 QMAKE_CLEAN += $$aLibDest/$${TARGET}.lib
119 QMAKE_CLEAN += $$aLibDest/$${TARGET}.exp
120 } else {
121 QMAKE_CLEAN += $$DESTDIR/$${TARGET}.exe
122 }
123 QMAKE_CLEAN += $$DESTDIR/$${TARGET}.pdb
124 QMAKE_LFLAGS += -PDB:"$$DESTDIR/$${TARGET}.pdb"
125 QMAKE_LFLAGS += -IMPLIB:"$$aLibDest/$${TARGET}.lib"
126} else {
127 LIBS += -L$$DESTDIR
128 equals(TEMPLATE, app) {
129 DESTDIR = $$OccGitRoot/$${MY_PLATFORM_AND_COMPILER}/bin$${MY_BUILDTYPE}
130 }
131}
132
133#OBJECTS_DIR = $$DESTDIR/../obj$${MY_BUILDTYPE}/$${TARGET}
134OBJECTS_DIR = $$DESTDIR/../obj$${MY_BUILDTYPE}