bc46b212db8a67c0639c750e23b1854b1eee8d0b
[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 # Allow environment tweaks to pre-loaded .qmake.cache content
9 env_cache = $$(QMAKE_CACHE_EVAL)
10 eval($$env_cache)
11
12 load(functions)
13
14 # Derived sources often need QMAKE_MOC
15 load(qt_functions)
16 load(moc)
17
18 # FIXME: In this case we probably want to exit early so that we
19 # don't load all of the custom build tweaks needlessly.
20 pro_file = $$_PRO_FILE_ # Checking the variable directly does not work
21 isEmpty(pro_file): CONFIG += recursive_include
22
23 # Resolve root directories for source and build
24 ROOT_WEBKIT_DIR = $$replace(PWD, /Tools/qmake/mkspecs/features$,)
25 WEBKIT_SUBDIR = $$replace(_PRO_FILE_PWD_, $${ROOT_WEBKIT_DIR},)
26 ROOT_BUILD_DIR = $$replace(OUT_PWD, $${WEBKIT_SUBDIR}$,)
27
28 # We want the QtWebKit API forwarding includes to live in the root build dir.
29 MODULE_BASE_DIR = $$ROOT_WEBKIT_DIR
30 MODULE_BASE_OUTDIR = $$ROOT_BUILD_DIR
31
32 # The qmake files on the other hand live in a subdirectory.
33 MODULE_QMAKE_OUTDIR = $$ROOT_BUILD_DIR/Tools/qmake
34
35 # Now we're ready to load default_pre from Qt
36 load(default_pre)
37
38 equals(OUT_PWD, $${ROOT_BUILD_DIR}) {
39     !recursive_include:CONFIG += root_project_file
40     BUILD_ROOT_RELATIVE_TO_OUT_PWD = .
41 } else {
42     subdir_parts = $$replace(OUT_PWD, ^$${ROOT_BUILD_DIR}/,)
43     subdir_parts = $$split(subdir_parts, /)
44     for(subdir, subdir_parts) {
45         BUILD_ROOT_RELATIVE_TO_OUT_PWD += ..
46     }
47     BUILD_ROOT_RELATIVE_TO_OUT_PWD = $$join(BUILD_ROOT_RELATIVE_TO_OUT_PWD, /)
48 }
49
50 # Try to detect if we're running under Windows cmd.exe or not
51 win32* {
52     pwd = $$(PWD) # Normally empty for cmd.exe
53     pwd_starts_with_slash = $$find(pwd, ^/)
54     isEmpty(pwd_starts_with_slash): CONFIG += win_cmd_shell
55 }
56
57 # Default location of generated sources
58 GENERATED_SOURCES_DESTDIR = generated
59
60 QUOTE = ""
61 DOUBLE_ESCAPED_QUOTE = ""
62 ESCAPE = ""
63 win_cmd_shell {
64     ESCAPE = "^"
65 } else {
66     QUOTE = "\'"
67     DOUBLE_ESCAPED_QUOTE = "\\\'"
68 }
69 EOL = $$escape_expand(\\n)
70 EOC = $$escape_expand(\\n\\t)
71 TAB = $$escape_expand(\\t)
72
73 MAKEFILE_NOOP_COMMAND = @echo -n
74 win32-msvc*: MAKEFILE_NOOP_COMMAND = @echo >NUL
75
76 # Set up a default python version
77 scratchbox: PYTHON = python2.6
78 else: PYTHON = python
79
80 # Run configure before making decisions that depend on the result
81 root_project_file {
82     load(configure)
83     runConfigure()
84 }
85
86 unix:config_gccdepends {
87     # We have a compiler that supports the -MD option (and neither
88     # teambuilder nor icecream is messing up the .d file output).
89     CONFIG += GNUmake gcc_MD_depends
90 }
91
92 !haveQt(5):!recursive_include: error("Building WebKit with Qt versions older than 5.0 is not supported.")
93
94 # We use private_tests to detect developer build, since the destdir will
95 # always be our webkit build dir. This might change as configure changes.
96 contains(QT_CONFIG, private_tests): CONFIG += qt_developer_build
97
98 # Set some defaults for specific platforms
99 CONFIG += include_webinspector
100
101 # By default we enable "production build", and build-webkit, which is
102 # used by bots and developers, will disable it, to enable warnings etc.
103 CONFIG += production_build
104
105 # Pick up Qt's defaults for debug/release/debug_and_release
106 if(win32|mac):!macx-xcode {
107     contains(QT_CONFIG, debug_and_release): CONFIG += debug_and_release
108     contains(QT_CONFIG, build_all): CONFIG += build_all
109 }
110
111 # Try to locate sqlite3 source (for WebCore)
112 SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
113 isEmpty(SQLITE3SRCDIR) {
114     SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
115 }
116
117 # A newer version of flex is required on Windows. At the moment the only
118 # one that appears to provide binaries and is not cygwin is winflex.
119 FLEX = flex
120 win32: FLEX = win_flex
121