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 | |
4 | TEMPLATE = lib |
5 | !exists(../../src/$$OCC_TOOLKIT_NAME/PACKAGES) { |
6 | TEMPLATE = app |
7 | CONFIG += console |
8 | } |
9 | win32 { |
10 | # do not append version to DLL name |
11 | CONFIG += skip_target_version_ext |
12 | } |
13 | |
14 | include(OccCppConfig.pri) |
15 | |
16 | aSrcRoot = $$OccGitRoot/src |
17 | aHxxRoot = $$OccGitRoot/inc |
18 | INCLUDEPATH += $$aHxxRoot |
19 | |
20 | # CSF variables |
21 | CSF_FREETYPE = -lfreetype |
22 | CSF_TclLibs = -ltcl8.6 |
23 | CSF_TclTkLibs = -ltk8.6 |
24 | HAVE_FREEIMAGE { CSF_FreeImagePlus = -lfreeimage } else:win32 { CSF_FreeImagePlus = -lwindowscodecs -lole32 } |
25 | HAVE_FFMPEG { CSF_FFmpeg = -lavcodec -lavformat -lswscale -lavutil } |
26 | HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc } |
27 | HAVE_ZLIB { CSF_ZLIB = -lzlib } |
28 | HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma } |
29 | win32 { |
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 |
2506cf29 |
41 | CSF_winmm = -lwinmm |
aafe169f |
42 | CSF_d3d9 = -ld3d9 |
43 | CSF_TclLibs = -ltcl86 |
44 | CSF_TclTkLibs = -ltk86 |
45 | CSF_TBB = |
46 | } else:mac { |
47 | CSF_dl = -ldl |
48 | CSF_objc = -lobjc |
49 | CSF_Appkit = -framework AppKit |
50 | CSF_IOKit = -framework IOKit |
51 | CSF_OpenGlLibs = -framework OpenGL |
52 | CSF_TclLibs = -framework Tcl |
53 | CSF_TclTkLibs = -framework Tk |
54 | } else { |
55 | CSF_dl = -ldl |
56 | CSF_ThreadLibs = -lpthread -lrt |
57 | CSF_OpenGlLibs = -lGL |
58 | CSF_TclTkLibs = -lX11 -ltk8.6 |
59 | CSF_XwLibs = -lX11 -lXext -lXmu -lXi |
60 | CSF_MotifLibs = -lX11 |
61 | HAVE_GLES2 { CSF_OpenGlLibs = -lEGL -lGLESv2 } |
62 | } |
63 | |
64 | for (aCfgIter, CONFIG) { |
65 | aRes = $$find(aCfgIter, "^HAVE_") |
66 | count(aRes, 1) { |
67 | DEFINES += $$aCfgIter |
68 | } |
69 | } |
70 | |
71 | # Define the list of standard OCCT file extensions |
72 | aHxxRegex = ^.*\.(hxx|h|lxx|gxx)$ |
73 | aPxxRegex = ^.*\.(pxx)$ |
74 | aCxxRegex = ^.*\.(cxx|c)$ |
75 | mac { aCxxRegex = ^.*\.(cxx|c|m|mm)$ } |
76 | |
77 | # Auxiliary function for probing file extension |
78 | defineTest (occCheckExtension) { |
79 | aProbe = $$find(1, "$$2") |
80 | count(aProbe, 1) { return(true) } else { return(false) } |
81 | } |
82 | |
83 | # Auxiliary function for probing compilable files |
84 | defineTest (occIsCxxFile) { occCheckExtension ($$1, $$aCxxRegex) { return(true) } else { return(false) } } |
85 | |
86 | # Auxiliary function for probing header files |
87 | defineTest (occIsHxxFile) { occCheckExtension ($$1, $$aHxxRegex) { return(true) } else { return(false) } } |
88 | |
89 | aTkFiles = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/FILES, lines) |
90 | aTkFiles += CMakeLists.txt |
91 | aPackages = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/PACKAGES, lines) |
92 | anExternLibs = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/EXTERNLIB, lines) |
93 | |
94 | for (aTkFileIter, aTkFiles) { OTHER_FILES += $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aTkFileIter } |
95 | for (anExternLib, anExternLibs) { |
96 | hasCsf = $$find(anExternLib, CSF_) |
97 | count(hasCsf, 1) { |
98 | aList = $$split($$anExternLib, "\n") |
99 | LIBS += $$aList |
100 | } else { |
101 | LIBS += -l$$anExternLib |
102 | } |
103 | } |
104 | |
105 | # Iterate over Packages and add compilable files into this project |
106 | isEmpty (aPackages) { aPackages = $$OCC_TOOLKIT_NAME } |
107 | for (aPackage, aPackages) { |
108 | aPackageFolder = $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aPackage |
109 | aPackageFiles = $$cat($$aSrcRoot/$$aPackage/FILES, lines) |
110 | for (aFileIter, aPackageFiles) { |
111 | occIsCxxFile($$aFileIter) { |
112 | SOURCES += $$aSrcRoot/$$aPackage/$$aFileIter |
113 | } |
114 | } |
115 | } |
116 | |
117 | # extend clean with versioned .so files |
118 | !win32 { |
119 | aVerList = $$split(VERSION, ".") |
120 | aVerMaj = $$member(aVerList, 0) |
121 | aVerMin = $$member(aVerList, 1) |
122 | aVerMic = $$member(aVerList, 2) |
123 | equals(TEMPLATE, app) { |
124 | QMAKE_CLEAN += $$DESTDIR/$${TARGET} |
125 | } else { |
126 | mac { |
127 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.dylib |
128 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.dylib |
129 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.dylib |
130 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.$${aVerMic}.dylib |
131 | } else { |
132 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so |
133 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj} |
134 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin} |
135 | QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}.$${aVerMic} |
136 | } |
137 | } |
138 | } |