summaryrefslogtreecommitdiff
path: root/build
Commit message (Collapse)AuthorAgeFilesLines
* Moving sources to src part 1: Move files.Jocelyn Turcotte2013-11-2813-827/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | This only move files without adjusting any paths. This moves: - lib/quick -> src/webengine/api (API files) lib/quick -> src/webengine (other files) This contains the main QtWebEngine module library since <ec7b2ee70a8b2db7fb87f50671a001ddd54697b0>. - lib/widgets -> src/webenginewidgets Also rename this directory to match its module name and rename Api to api. - lib -> src/core - process -> src/process - resources -> src/core/resources - tools/* -> tools/scripts/ The build directory is spread as follow: - build/build.pro -> src/core/gyp_run.pro - build/qmake_extras/* -> src/core/ (for the host and target .pro files) - build/qmake -> tools/qmake - Build related scripts -> tools/buildscripts Change-Id: I0cded1de772c99c0c1da6536c9afea353236b4a1 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Improved ARM cross-compile settings detectionArvid Nilsson2013-11-271-11/+22
| | | | | | | | | Let the Chromium build system figure out default values if a flag can't be deduced from the QMAKE_CFLAGS. For example, this allows Chromium to default to ARM v7 if no ARM version can be deduced from compiler flags. Change-Id: I47257a7fc27cdbca84c6999dba75affe809f753b Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add build system support for cross compilationAndras Becsi2013-11-265-4/+91
| | | | | | | | | This patch adds support for inheriting target specific cross-compile settings from Qt. Change-Id: I964297d776bcc5ac169ce09a52f661d08c5b4b9d Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Arvid Nilsson <anilsson@blackberry.com>
* Make it build with QNX chromium portJeff Rogers2013-11-262-4/+11
| | | | | | | | - Fix excludes - Fix gyp so that it supports cross-compiling on mac as well Change-Id: I89081f4115ec4dec6ca2c96bb5ad367d42405bb3 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix which method in functions.prf on Windows.Zoltan Arvai2013-11-221-1/+1
| | | | | | | | The first "set _endwhich" needs a value to work well. Change-Id: I1fb65b71dd7dd378de62d2836ba003d54787cd23 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix findOrBuildNinja in functions.prf on Windows.Zoltan Arvai2013-11-201-1/+2
| | | | | | | | | On Windows ninja executable has filename extension. Also slashes need to be converted to backslashes otherwise nmake will not execute ninja from makefile. Change-Id: I89a302860c40de4489231914738578e290476e12 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add which method to functions.prf for Windows.Zoltan Arvai2013-11-201-2/+11
| | | | | | | | On Windows the where util is similar to which, but it can return multiple matches so only the first one is selected. Change-Id: I55953ce5dd4940a37ab4fae7baa78dd2deed1085 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add guards to project files to prevent unnecessarily processing on Windows.Zoltan Arvai2013-11-192-3/+5
| | | | | | | | | On Windows with default debug_and_release configuration project files parsed tree times while generating Makefile, Makefile.Debug and Makefile.Release. Some operation needs only one time processing. Change-Id: I02d04076cbb70c705916703526444585e83a24ff Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix the dyld error when running examples and tests on Mac.Jocelyn Turcotte2013-11-191-0/+5
| | | | | | | | | | | | | | | Make sure that the install_name is set properly when linking the core library. It would normally be possible to set this to <(PRODUCT_DIR) and let gyp handle this, but this isn't supported (see gyp.XcodeSettings.GetInstallName) so let qmake resolve the path. This should be removed to use something relative to @loader_path that would resolve this path to the Qt module libraries once we have proper installation logic in place for the core library. Change-Id: Id617afdf95c4aede6802e55b05deffe3218be82e Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix Qt rcc's path in Qt5WebEngineCore.ninja on Windows.Zoltan Arvai2013-11-191-0/+1
| | | | | | | | | | | | | On Windows backslash in QMAKE_RCC causes wrongly generated Qt5WebEngineCore.ninja file. For example QMAKE_RCC's value generated to lib/lib.gyp as 'c:\Qt-5.2.0\bin\rcc.exe'. This turns to 'c:/Qt-5.2.0[BS]in[CR]cc.exe' in Qt5WebEngineCore.ninja after running qyp. That means \b is parsed as backspace and \r is pharsed as carriage return character. Current Windows versions can handle forward slashes in paths so backslashes can be replaced to forward slashes when needed. Change-Id: I814dc63df92b78ed5cae028e0b8c36dbf3eb1e49 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* QtWebEngine Dev Tools (Web Inspector)Chris Hutten-Czapski2013-10-291-3/+17
| | | | | | | | | | | | | | | | | | To implement the Web Inspector we need a delegate to handle the http server and devtools connections, a landing page, a ContentClient to tell the devtools server where to find its frontend resources, those frontend resources, and an API for embedders to turn on inspectability in WebEngineViews. The frontend resources are build by the chromium build and are copied over as part of lib's build. The landing page was taken directly from content_shell. This should be replaced by either a new one for all QtWebEngine embedders or by a mechanism for embedders to supply their own (or both). Change-Id: Id4076d5ede34a91abf8dba443aed4dca4be1b3e5 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix qmake_extras.gypi generation on Windows.Zoltan Arvai2013-10-142-2/+6
| | | | | | | It has a section that tree times appended on Windows because qmake does debug_and_release. Change-Id: Iba86e578a52846cf0e95e1e7c901879ef5f8ea0b Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix python script calling on Windows.Zoltan Arvai2013-10-141-2/+2
| | | | | | | | On Windows a python file without extension is not runnable by itself, it needs the python executable. Change-Id: I99cbfadc790acf3b3205faf6b940c26fb3c71e89 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Rename findNinja to findOrBuildNinja and fail early if gyp failsAndras Becsi2013-10-012-4/+3
| | | | | | | | | We should not not use the $$ syntax to collect the output of the gyp call instead we should just fail with an error in case gyp_qtwebengine fails. Change-Id: Ib6218bdfb998100a3717470713ed5bf5f30db339 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Allow overriding target compiler and linker with qmake's oneAndras Becsi2013-10-014-0/+38
| | | | | | | | | | | | Using make_global_settings, we can pass along the compiler and linker that qmake uses, still allowing overriding it through environment variables. We generate qmake_extras.gypi and populated with the host and target compilers so that it also works when cross compiling. Based on patch by Pierre Rossi <pierre.rossi@digia.com> Change-Id: Ia3789abeea88f4d3cde75c2cf07cc9de66d7afbf Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix compilation with multiple rpath directoriesJan Arne Petersen2013-10-011-1/+1
| | | | | | | | | Iterate over all diectories specified in QMAKE_RPATHDIR and generate a rpath linker argument for each directory. Change-Id: I90948eee9ef9319017ce99138ae7146d50c9636a Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Differentiate between libraries and linker flags in gyp_generator.prfArvid Nilsson2013-09-281-5/+12
| | | | | | | | | | | | | | GYP has a section named libraries under linker_settings, as well as an ldflags section. Previously, we put all of qmake's LIBS under ldflags, but this patch extracts all "-l" entries in LIBS and puts them as "libraries" instead of "ldflags". This causes our libraries to be grouped together with chromium's libraries at the end of the linker line, before they were grouped together with other ldflags at the beginning of the linker line. Also, it fixes the build on my machine. Change-Id: I0ff9cde0d954a928dc5e880d7ed822a7b8edbf64 Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Print python version in gyp_qtwebengine for debugging.Zeno Albisser2013-09-031-0/+2
| | | | | | Change-Id: Ica9f675a63e6dd3707f842edd86d30d860f2614c Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Do not rely on shebang for finding python.Zeno Albisser2013-09-031-1/+1
| | | | | Change-Id: I0d963ee8b38eacde269d51c2f180190ce7d03048 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Build examples with RTTIPierre Rossi2013-08-301-5/+7
| | | | | Change-Id: I574ce207384e084c8b65cd66114e47e01cd4f42a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix the build on Mac with debug_and_release QtAndras Becsi2013-08-301-0/+2
| | | | | | | | | | | | | | Remove the build_all option on Mac for now to prevent building both debug and release libraries in the same run since it causes linking issues with framework builds of Qt because of the platform suffix of debug libraries. Eventually the build system should be adapted to Mac specific configurations. Create unix binaries instead of app bundles to ease testing since currently the examples need DYLD_LIBRARY_PATH to run. Change-Id: I7fe3a7e6963510fb5a8863d9e68df487c168ff20 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add command line flags to init-repository.pyAndras Becsi2013-08-214-15/+16
| | | | | | | | | | | | | | | | This patch adds --upstream (-u) and --snapshot (-s) flags to the init-repository script which make it possible to choose the Chromium sources to use when building QtWebEngine. The default is to use the upstream submodules. This option is persisted with git config and used throughout the build system. This patch also keeps support for the CHROMIUM_SRC_DIR env variable which can be used to specify external Chromium sources which are assumed to be set up for the build and thus left untouched by the script. Change-Id: Ic83984199770076f90867f1b22a63b220bfe7359 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Adjust all the needed paths when using upstream repositoriesAndras Becsi2013-08-203-4/+13
| | | | | | | | Having a separate 3rdparty_upstream might not be the best solution after all, but oh well. Change-Id: Ib834c4d9d56669a3f4308eb614cec787116d6d4c Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Replace chromium and ninja submodule by a single 3rdparty submodule.Zeno Albisser2013-08-175-4/+10
| | | | | | | | | | The new 3rdparty submodule contains snapshots of both ninja and chromium. This drastically reduces the size of the repository and can be used by our CI system. Change-Id: Ie7482181f2ba9dba5fc181b1f221a5fae714c8c8 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix compile dependencies of examples.Jocelyn Turcotte2013-08-161-0/+3
| | | | | | | | | | | Touching an external header wouldn't trigger the recompilation of example source files since the Makefile didn't list them as dependencies. The problem was that qmake didn't have its dependency directories set properly since our default_pre.prf would totally override the default one. Change-Id: I1cbb6b259c15a70b872241cf257a6b5f93244cb4 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix mac buildPierre Rossi2013-08-081-1/+1
| | | | | | | We also want to build with no-rtti there. Change-Id: If680760904866e5c95d1ed85fffecfea67dde7d0 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Transform QTouchEvent into ui::TouchEvent first.Jocelyn Turcotte2013-08-011-0/+2
| | | | | | | | | | | | | | | WebTouchEvents have a slightly different behavior than QTouchEvent in that the type of the event is TouchStart for each new point press, while Qt sends a TouchBegin only for the first point press. Since we already need to use ui::TouchEvent to be able to use ui::GestureRecognizer, always do this conversion first to also let UpdateWebTouchEventAfterDispatch chose the proper event type. Some of the code from render_widget_host_view_aura.cc was copied into render_widget_host_view_qt.cpp to fill the needed functionality. Change-Id: Iab1ca0c449b5256a39b5479ce89b662d4e133935 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Split out the Widgets and QtQuick integrationPierre Rossi2013-07-311-0/+9
| | | | | | | | | | | | | | | This is the first step to making proper Qt Modules out of QtWebEngine. The Widgets integration becomes a proper C++ Qt Module while we make the QtQuick side a QML plugin for now (could probably be promoted if the need arises). Code-wise, this means the introduction of a WebContentsAdapterClient interface that is subclassed by the private implementation of our API classes for delegation of things that are UI specific. Functionality from WebContents and the like is exposed via the WebContentsAdapter. Change-Id: I4ca3395b9fe8502a24e36002cfd5af44067bb6e8 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Do not exclude files by wildcards.Zeno Albisser2013-07-241-2/+2
| | | | | | | | This accidentially also did exclude render_widget_host_view_mac_dictionary_helper.mm. Prospectively also removing the wildcard for windows. Change-Id: Ic5a01099dc5cd85a62b2e9b1ea9f989ad4cf2b1d Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fixing Qt Resource System Integration.Zeno Albisser2013-07-192-10/+47
| | | | | | | | | | | | | | Add logic to functions.prf and gyp_generator.prf to invoke rcc from ninja as well. Since we are building the whole library with ninja, this is the only feasible way to get the dependencies right. Changine the TEMPLATE of resources.pro from subdirs to aux, since it is not building a library and not processing subdirectories either. Change-Id: I23dff04e488d839bb54e343588da98e5e9059b23 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix the duplicate symbols build failure.Jocelyn Turcotte2013-07-191-3/+3
| | | | | | | | | resource_bundle_*.cc weren't excluded properly and ResourceBundle::GetLocaleFilePath is in resource_bundle.cc rather than resource_bundle_gtk.cc. Change-Id: I9e56a7d88e859354a4d7115a61b99f7487fc7a39 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* [GYP] use cflags/cxxflags from qmakePierre Rossi2013-07-191-1/+10
| | | | | Change-Id: Ia3af98df7ea13d71b40e34e524c49f326003926d Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add a python script to generate the chromium .pak resource files.Zeno Albisser2013-07-181-0/+102
| | | | | | | | This is necessary, because the pak files must be available when qmake checks for the dependencies for RESOURCES in lib.pro. Change-Id: Ia173c70746402b2fee09bfa035a9f8780e88cc94 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add support for file and data url scheme.Zeno Albisser2013-07-162-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Local file and data url support can simply be added by registering the appropriate ProtocolHandlers. Displaying the contents of a directory is slightly more complex. This requires access to some html resource files that can be used to list the contents in rows. For Chromium such resource files are usually contained in a .pak file which is shipped with the binary. Since deploying additional files is very complicated for Qt, we want to use the Qt Resource System to bundle .pak files. Therefore this patch adds handling of rcc content generated from a .qrc file to our gyp_generator.prf. Further it replaces the regular ResourceBundle implementation with a Qt specific one. And it also implements a DataPackQt class that allows using DataPack instances with data from a QByteArray and therefore from the Qt Resource System. Change-Id: Ic41e34fbd9aec8596cbc85666a762ecdaa604edc Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add QMAKE_FRAMEWORKPATH to gyp_generator.prf.Zeno Albisser2013-07-091-0/+1
| | | | | | | | | | QMAKE_FRAMEWORKPATH contains the location of all the Qt frameworks on Mac. We need to add this variable to our gyp libraries sections in order to make sure that the linker can find the frameworks. Change-Id: I009ca834ca51dc969f2fadb12a3a98ac28f31a26 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Introduce $$which qmake functionPierre Rossi2013-07-041-1/+17
| | | | | | | | | With a unix only implementation for now. We're gonna need this to resolve toolchains' paths since gyp won't take anything but a relative or an absolute path. Change-Id: I4646deee0a17ce0f929d987d98826eaad524cf25 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Rename GYPI_CONTENTS to GYP_CONTENTS. Technically more acurate but useless ?Pierre Rossi2013-07-041-50/+50
| | | | | | | | One reason for doing it is that we might have to generate a some common gypi material in order to pass along things like compiler and the like. Change-Id: Ib04ccde38a576d637f84401b9a09c6e01d7583e5 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Cleanup include mechanismPierre Rossi2013-07-043-7/+9
| | | | | | | | | Add proper support for GYPINCLUDES in gyp_generation. Rename the exclusion gypi to a more generic name so we can use it for more intrusive changes (we'll need it for mac). Change-Id: Ie26f579c33d5e35b8c904fab9f448cde11bf0072 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Implement CreateWebContentsView and exclude web_contents_view_* from build.Zeno Albisser2013-07-021-0/+3
| | | | | Change-Id: I1b5259d7e35631c9cce93b61426846cfb0b92882 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Revert "Do not exclude render_widget_host_view_* classes."Andras Becsi2013-07-011-0/+3
| | | | | | | | | | | | | | | | We still need these excludes because of two static functions: RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget void RenderWidgetHostViewPort::GetDefaultScreenInfo We implement these in our shared_globals.cpp and not excluding the platform implementations of render_widget_host_view causes multiple definition errors during linking. This reverts commit 02add3497f1a83672453a88bd72d623c67df8eda. Change-Id: Iec7a489f47a7ba95df5ea88b4ae1788ce5404931 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix the Linux buildAndras Becsi2013-07-011-18/+18
| | | | | | | Frameworks are only needed on Mac. Change-Id: Ic76a04e42ce1e6032b52c10276feef8abd616c1f Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* [Mac] qmake needs to forward frameworks and paths to gyp.Zeno Albisser2013-07-011-1/+22
| | | | | Change-Id: I20dd425412f1354f9cf45e7c6c2977f73142efb6 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Do not exclude render_widget_host_view_* classes.Zeno Albisser2013-07-011-3/+0
| | | | | | | | We do not need to exclude these files from the build any longer, since we already have our own RenderWidgetHostViewQt class for a while. Change-Id: I755c528de3d37400dfd52d02fbd45d99996ba7ba Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Disable tcmalloc on mac.Zeno Albisser2013-07-011-1/+2
| | | | | Change-Id: Ic261e5aa38b04632c019d577117e9fb205462d82 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add Mac support.Zeno Albisser2013-06-271-0/+10
| | | | | | | | | Adding several patches to the repository that need to be applied to the chromium sources in order to allow building on Mac. Change-Id: Ie06250a828b3533e2f48563ce374e63fc25d16cf Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Tweak the build systemAndras Becsi2013-06-273-3/+4
| | | | | | | | | | | Fix a typo so we get the correct CHROMIUM_SRC_DIR and add it to INCLUDEPATH so that QtCreator indexes Chromium headers. Also add NINJAFLAGS environment variable to ninja command line to be able to specify options to ninja, like how many jobs it should run when using icecc. Change-Id: Ib494dc5c71d4e3a4eac419118c9cf6b1c474b6da Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Rename ninja Makefile target to invoke_ninja.Zeno Albisser2013-06-271-1/+1
| | | | | | | | | | | This avoids the Makefile target colliding with the submodule name. If both have the same name, the target would not be invoked. This is because make would find a file/folder ninja in the build subdirectory, and therefore belives that the dependencies for the target "ninja" are fulfilled. Change-Id: I7ef1974e06d9cd7a6023d0d17170e0bf730c4b87 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add init-repository.py script.Zeno Albisser2013-06-273-4/+9
| | | | | | | | | | | | | | Chromium is not using a regular git submodule based repository layout. Therefore some special tweaking is necessary. This script will take care of setting the correct submodule paths and references after cloning the qtwebengine repository. Further it also downloads and builds the ninja build tool. Change-Id: I999ef33cbdbe3bfaff88253bb543ba77f5b68fd7 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add ninja as a submodule.Zeno Albisser2013-06-271-0/+0
| | | | | | Change-Id: Id12c5810e83c47a1c7289515cabc5ddd9a8a280b Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix the build when binutils-gold isn't installed.Jocelyn Turcotte2013-06-211-0/+4
| | | | | Ideally we should find a way to use the binaries available in src/third_parth/gold.