6dca683af6a743be346a25602e4d8e27132d1eab
[WebKit-https.git] / Tools / qmake / mkspecs / features / default_pre.prf
1 # -------------------------------------------------------------------
2 # QtWebKit defaults for qmake. These rules are parsed before the
3 # actual project file.
4 #
5 # See 'Tools/qmake/README' for an overview of the build system
6 # -------------------------------------------------------------------
7
8 load(default_pre) # Load Qt's defaults
9 load(functions)
10
11 # FIXME: In this case we probably want to exit early so that we
12 # don't load all of the custom build tweaks needlessly.
13 pro_file = $$_PRO_FILE_ # Checking the variable directly does not work
14 isEmpty(pro_file): CONFIG += recursive_include
15
16 # We default to release builds
17 !build_pass {
18     CONFIG += release
19     CONFIG -= debug
20 }
21
22 # Resolve root directories for source and build
23 ROOT_WEBKIT_DIR = $$replace(IN_PWD, /Tools/qmake/mkspecs/features,)
24 WEBKIT_SUBDIR = $$replace(_PRO_FILE_PWD_, $${ROOT_WEBKIT_DIR},)
25 ROOT_BUILD_DIR = $$replace(OUT_PWD, $$SOURCE_SUBDIR,)
26
27 # Fix up root build dir in case of running qmake on a subtarget
28 subdir_parts = $$split(WEBKIT_SUBDIR, $${QMAKE_DIR_SEP})
29 root_build_dir_candidate = $$ROOT_BUILD_DIR
30
31 for(ever) {
32     part = $$last(subdir_parts)
33
34     root_build_dir_candidate = $$replace(ROOT_BUILD_DIR, $${QMAKE_DIR_SEP}$${part}$,)
35     !equals(ROOT_BUILD_DIR, $$root_build_dir_candidate) {
36         ROOT_BUILD_DIR = $$root_build_dir_candidate
37     } else {
38         BUILD_SUBDIR = $$subdir_parts
39         break()
40     }
41
42     subdir_parts = $$member(subdir_parts, 0, -2)
43     isEmpty(subdir_parts): break()
44 }
45
46 BUILD_SUBDIR = $$join(BUILD_SUBDIR, $${QMAKE_DIR_SEP})
47
48 equals(OUT_PWD, $${ROOT_BUILD_DIR}) {
49     !recursive_include:CONFIG += root_project_file
50     BUILD_ROOT_RELATIVE_TO_OUT_PWD = .
51 } else {
52     subdir_parts = $$replace(OUT_PWD, ^$${ROOT_BUILD_DIR}$${QMAKE_DIR_SEP},)
53     subdir_parts = $$split(subdir_parts, $${QMAKE_DIR_SEP})
54     for(subdir, subdir_parts) {
55         BUILD_ROOT_RELATIVE_TO_OUT_PWD += ..
56     }
57     BUILD_ROOT_RELATIVE_TO_OUT_PWD = $$join(BUILD_ROOT_RELATIVE_TO_OUT_PWD, $${QMAKE_DIR_SEP})
58 }
59
60 # Make sure QMAKEPATH is set for recursive targets
61 win32-msvc*: QMAKE_QMAKE = \(set QMAKEPATH=$$(QMAKEPATH)\) && $$QMAKE_QMAKE
62 else: QMAKE_QMAKE = QMAKEPATH=$$(QMAKEPATH) $$QMAKE_QMAKE
63
64 # Default location of generated sources
65 GENERATED_SOURCES_DESTDIR = generated
66
67 QUOTE = ""
68 DOUBLE_ESCAPED_QUOTE = ""
69 ESCAPE = ""
70 win32-msvc* {
71     ESCAPE = "^"
72 } else:win32-g++*:isEmpty(QMAKE_SH) {
73     # MinGW's make will run makefile commands using sh, even if make
74     # was run from the Windows shell, if it finds sh in the path.
75     ESCAPE = "^"
76 } else {
77     QUOTE = "\'"
78     DOUBLE_ESCAPED_QUOTE = "\\\'"
79 }
80
81 MAKEFILE_NOOP_COMMAND = @echo -n
82 win32-msvc*: MAKEFILE_NOOP_COMMAND = @echo >NUL
83
84 # Set up a default python version
85 scratchbox: PYTHON = python2.6
86 else: PYTHON = python
87
88 !haveQt(4, 8):!haveQt(5):!recursive_include: error("Building WebKit with Qt versions older than 4.8 is not supported.")
89
90 !haveQt(5):!no_webkit2 {
91     root_project_file {
92         message("Building WebKit2 with Qt versions older than 5.0 is not supported. Disabling WebKit2.")
93         message("Read http://www.mail-archive.com/webkit-qt@lists.webkit.org/msg01674.html for more information.")
94     }
95     CONFIG += no_webkit2
96 }
97
98 haveQt(5): {
99     isEmpty(QT.widgets.name)|isEmpty(QT.printsupport.name) {
100         root_project_file: error("Building WebKit against Qt 5.0 requires the QtWidgets and QtPrintSupport modules.")
101     }
102 }
103
104 QT.webkit.modulefile = $${ROOT_WEBKIT_DIR}/Tools/qmake/mkspecs/modules/qt_webkit.pri
105 include($$QT.webkit.modulefile)
106 VERSION = $${QT.webkit.VERSION}
107
108 # Set some defaults for specific platforms
109 CONFIG += include_webinspector