0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / adm / qmake / OccToolkit.pri
CommitLineData
aafe169f 1# This is a project template file defining an OCCT Toolkit.
2# This project should be included with predefined OCC_TOOLKIT_NAME variable.
3
4TEMPLATE = lib
5!exists(../../src/$$OCC_TOOLKIT_NAME/PACKAGES) {
6 TEMPLATE = app
7 CONFIG += console
8}
9win32 {
10 # do not append version to DLL name
11 CONFIG += skip_target_version_ext
12}
13
14include(OccCppConfig.pri)
15
16aSrcRoot = $$OccGitRoot/src
17aHxxRoot = $$OccGitRoot/inc
18INCLUDEPATH += $$aHxxRoot
19
20# CSF variables
5c9493b3 21HAVE_FREETYPE { CSF_FREETYPE = -lfreetype }
aafe169f 22CSF_TclLibs = -ltcl8.6
23CSF_TclTkLibs = -ltk8.6
24HAVE_FREEIMAGE { CSF_FreeImagePlus = -lfreeimage } else:win32 { CSF_FreeImagePlus = -lwindowscodecs -lole32 }
25HAVE_FFMPEG { CSF_FFmpeg = -lavcodec -lavformat -lswscale -lavutil }
26HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc }
27HAVE_ZLIB { CSF_ZLIB = -lzlib }
28HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma }
e77bcb6b 29HAVE_DRACO { CSF_Draco = -ldraco }
aafe169f 30win32 {
31 CSF_kernel32 = -lkernel32
32 CSF_advapi32 = -ladvapi32
33 CSF_gdi32 = -lgdi32
34 CSF_user32 = -luser32 -lcomdlg32
35 CSF_shell32 = -lShell32
36 CSF_opengl32 = -lopengl32
37 CSF_wsock32 = -lwsock32
38 CSF_netapi32 = -lnetapi32
39 CSF_OpenGlLibs = -lopengl32
b8ef513c 40 CSF_OpenGlesLibs = -llibEGL -llibGLESv2
aafe169f 41 CSF_psapi = -lPsapi
2506cf29 42 CSF_winmm = -lwinmm
aafe169f 43 CSF_d3d9 = -ld3d9
44 CSF_TclLibs = -ltcl86
45 CSF_TclTkLibs = -ltk86
46 CSF_TBB =
47} else:mac {
48 CSF_dl = -ldl
49 CSF_objc = -lobjc
b8ef513c 50 CSF_OpenGlLibs = -framework OpenGL
51 CSF_OpenGlesLibs = -framework OpenGLES
48ba1811 52 iphoneos {
53 CSF_Appkit = -framework UIKit
48ba1811 54 } else {
55 CSF_Appkit = -framework AppKit
48ba1811 56 }
aafe169f 57 CSF_IOKit = -framework IOKit
aafe169f 58 CSF_TclLibs = -framework Tcl
59 CSF_TclTkLibs = -framework Tk
60} else {
61 CSF_dl = -ldl
62 CSF_ThreadLibs = -lpthread -lrt
b8ef513c 63 CSF_OpenGlesLibs = -lEGL -lGLESv2
b69e576a 64 CSF_TclTkLibs = -ltk8.6
65 HAVE_XLIB {
66 CSF_OpenGlLibs = -lGL
342bb7fd 67 CSF_XwLibs = -lX11
b69e576a 68 } else {
69 CSF_OpenGlLibs = -lGL -lEGL
70 }
5c9493b3 71 HAVE_FREETYPE { CSF_fontconfig = -lfontconfig }
aafe169f 72}
73
74for (aCfgIter, CONFIG) {
75 aRes = $$find(aCfgIter, "^HAVE_")
b8ef513c 76 !equals(aCfgIter, "HAVE_GLES2") {
77 count(aRes, 1) {
78 DEFINES += $$aCfgIter
79 }
aafe169f 80 }
81}
82
83# Define the list of standard OCCT file extensions
84aHxxRegex = ^.*\.(hxx|h|lxx|gxx)$
85aPxxRegex = ^.*\.(pxx)$
a8b9d7eb 86aCxxRegex = ^.*\.(cxx|cpp|c)$
87mac { aCxxRegex = ^.*\.(cxx|cpp|c|m|mm)$ }
aafe169f 88
89# Auxiliary function for probing file extension
90defineTest (occCheckExtension) {
91 aProbe = $$find(1, "$$2")
92 count(aProbe, 1) { return(true) } else { return(false) }
93}
94
95# Auxiliary function for probing compilable files
96defineTest (occIsCxxFile) { occCheckExtension ($$1, $$aCxxRegex) { return(true) } else { return(false) } }
97
98# Auxiliary function for probing header files
99defineTest (occIsHxxFile) { occCheckExtension ($$1, $$aHxxRegex) { return(true) } else { return(false) } }
100
101aTkFiles = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/FILES, lines)
102aTkFiles += CMakeLists.txt
103aPackages = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/PACKAGES, lines)
104anExternLibs = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/EXTERNLIB, lines)
105
106for (aTkFileIter, aTkFiles) { OTHER_FILES += $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aTkFileIter }
107for (anExternLib, anExternLibs) {
108 hasCsf = $$find(anExternLib, CSF_)
109 count(hasCsf, 1) {
110 aList = $$split($$anExternLib, "\n")
111 LIBS += $$aList
b8ef513c 112 equals(anExternLib, "CSF_OpenGlLibs") {
113 DEFINES += "HAVE_OPENGL"
114 }
115 equals(anExternLib, "CSF_OpenGlesLibs") {
116 DEFINES += "HAVE_GLES2"
117 }
aafe169f 118 } else {
119 LIBS += -l$$anExternLib
120 }
121}
122
123# Iterate over Packages and add compilable files into this project
124isEmpty (aPackages) { aPackages = $$OCC_TOOLKIT_NAME }
125for (aPackage, aPackages) {
126 aPackageFolder = $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aPackage
127 aPackageFiles = $$cat($$aSrcRoot/$$aPackage/FILES, lines)
128 for (aFileIter, aPackageFiles) {
129 occIsCxxFile($$aFileIter) {
130 SOURCES += $$aSrcRoot/$$aPackage/$$aFileIter
131 }
132 }
133}
134
aafe169f 135!win32 {
136 aVerList = $$split(VERSION, ".")
137 aVerMaj = $$member(aVerList, 0)
138 aVerMin = $$member(aVerList, 1)
139 aVerMic = $$member(aVerList, 2)
75e2ba16 140
aafe169f 141 equals(TEMPLATE, app) {
142 QMAKE_CLEAN += $$DESTDIR/$${TARGET}
143 } else {
144 mac {
75e2ba16 145 # override qmake soname versionong logic
146 QMAKE_LFLAGS_SONAME =
147 QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.dylib.$${aVerMaj}.$${aVerMin}
148
149 # extend clean with versioned .dylib files
aafe169f 150 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.dylib
151 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.dylib
152 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.dylib
153 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.$${aVerMic}.dylib
154 } else {
75e2ba16 155 # override qmake soname versionong logic
156 QMAKE_LFLAGS_SONAME =
157 QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}
158
159 # extend clean with versioned .so files
aafe169f 160 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so
161 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}
162 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}
163 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}.$${aVerMic}
164 }
165 }
166}