0030645: Modeling Algorithms - B-spline segmentation produces wrong parametrization
[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
21CSF_FREETYPE = -lfreetype
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 }
29win32 {
30 CSF_kernel32 = -lkernel32
31 CSF_advapi32 = -ladvapi32
32 CSF_gdi32 = -lgdi32
33 CSF_user32 = -luser32 -lcomdlg32
34 CSF_shell32 = -lShell32
35 CSF_opengl32 = -lopengl32
36 CSF_wsock32 = -lwsock32
37 CSF_netapi32 = -lnetapi32
38 CSF_OpenGlLibs = -lopengl32
39 HAVE_GLES2 { CSF_OpenGlLibs = -llibEGL -llibGLESv2 }
40 CSF_psapi = -lPsapi
41 CSF_d3d9 = -ld3d9
42 CSF_TclLibs = -ltcl86
43 CSF_TclTkLibs = -ltk86
44 CSF_TBB =
45} else:mac {
46 CSF_dl = -ldl
47 CSF_objc = -lobjc
48 CSF_Appkit = -framework AppKit
49 CSF_IOKit = -framework IOKit
50 CSF_OpenGlLibs = -framework OpenGL
51 CSF_TclLibs = -framework Tcl
52 CSF_TclTkLibs = -framework Tk
53} else {
54 CSF_dl = -ldl
55 CSF_ThreadLibs = -lpthread -lrt
56 CSF_OpenGlLibs = -lGL
57 CSF_TclTkLibs = -lX11 -ltk8.6
58 CSF_XwLibs = -lX11 -lXext -lXmu -lXi
59 CSF_MotifLibs = -lX11
60 HAVE_GLES2 { CSF_OpenGlLibs = -lEGL -lGLESv2 }
61}
62
63for (aCfgIter, CONFIG) {
64 aRes = $$find(aCfgIter, "^HAVE_")
65 count(aRes, 1) {
66 DEFINES += $$aCfgIter
67 }
68}
69
70# Define the list of standard OCCT file extensions
71aHxxRegex = ^.*\.(hxx|h|lxx|gxx)$
72aPxxRegex = ^.*\.(pxx)$
73aCxxRegex = ^.*\.(cxx|c)$
74mac { aCxxRegex = ^.*\.(cxx|c|m|mm)$ }
75
76# Auxiliary function for probing file extension
77defineTest (occCheckExtension) {
78 aProbe = $$find(1, "$$2")
79 count(aProbe, 1) { return(true) } else { return(false) }
80}
81
82# Auxiliary function for probing compilable files
83defineTest (occIsCxxFile) { occCheckExtension ($$1, $$aCxxRegex) { return(true) } else { return(false) } }
84
85# Auxiliary function for probing header files
86defineTest (occIsHxxFile) { occCheckExtension ($$1, $$aHxxRegex) { return(true) } else { return(false) } }
87
88aTkFiles = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/FILES, lines)
89aTkFiles += CMakeLists.txt
90aPackages = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/PACKAGES, lines)
91anExternLibs = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/EXTERNLIB, lines)
92
93for (aTkFileIter, aTkFiles) { OTHER_FILES += $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aTkFileIter }
94for (anExternLib, anExternLibs) {
95 hasCsf = $$find(anExternLib, CSF_)
96 count(hasCsf, 1) {
97 aList = $$split($$anExternLib, "\n")
98 LIBS += $$aList
99 } else {
100 LIBS += -l$$anExternLib
101 }
102}
103
104# Iterate over Packages and add compilable files into this project
105isEmpty (aPackages) { aPackages = $$OCC_TOOLKIT_NAME }
106for (aPackage, aPackages) {
107 aPackageFolder = $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aPackage
108 aPackageFiles = $$cat($$aSrcRoot/$$aPackage/FILES, lines)
109 for (aFileIter, aPackageFiles) {
110 occIsCxxFile($$aFileIter) {
111 SOURCES += $$aSrcRoot/$$aPackage/$$aFileIter
112 }
113 }
114}
115
116# extend clean with versioned .so files
117!win32 {
118 aVerList = $$split(VERSION, ".")
119 aVerMaj = $$member(aVerList, 0)
120 aVerMin = $$member(aVerList, 1)
121 aVerMic = $$member(aVerList, 2)
122 equals(TEMPLATE, app) {
123 QMAKE_CLEAN += $$DESTDIR/$${TARGET}
124 } else {
125 mac {
126 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.dylib
127 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.dylib
128 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.dylib
129 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.$${aVerMic}.dylib
130 } else {
131 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so
132 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}
133 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}
134 QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}.$${aVerMic}
135 }
136 }
137}