bb19b579a52443ed0c51c4a9efc3ebdcacc6730d
[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 # We use private_tests to detect developer build, since the destdir will
93 # always be our webkit build dir. This might change as configure changes.
94 contains(QT_CONFIG, private_tests): CONFIG += qt_developer_build
95
96 # Set some defaults for specific platforms
97 CONFIG += include_webinspector
98
99 # By default we enable "production build", and build-webkit, which is
100 # used by bots and developers, will disable it, to enable warnings etc.
101 CONFIG += production_build
102
103 # Pick up Qt's defaults for debug/release/debug_and_release
104 if(win32|mac):!macx-xcode {
105     contains(QT_CONFIG, debug_and_release): CONFIG += debug_and_release
106     contains(QT_CONFIG, build_all): CONFIG += build_all
107 }
108
109 # Try to locate sqlite3 source (for WebCore)
110 SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
111 isEmpty(SQLITE3SRCDIR) {
112     SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
113 }
114
115 # A newer version of flex is required on Windows. At the moment the only
116 # one that appears to provide binaries and is not cygwin is winflex.
117 FLEX = flex
118 win32: FLEX = win_flex
119