ports/www/qt5-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn
Raphael Kubo da Costa f6ceca6350 Update Qt5 ports to 5.9.3.
This took quite a lot of time because Qt's own build system underwent
several changes in 5.8.0 that took a while to adapt to.

And, of course, qt5-webengine is a behemoth that we need to patch like crazy
due to its bundling of Chromium. In fact, most of the Chromium patches in
qt5-webengine have been imported with no changes from www/chromium@433510
("www/chromium: update to 56.0.2924.87").

New port: accessibility/qt5-speech

Bigger changes to Qt5 ports we had to make:
- Qt now allows using a configure.json file to define configuration options
  and specify configuration checks that can be done when qmake is invoked.
  However, configure.json checks done in a subdirectory only propagates to
  subdirectories, and checks elsewhere will fail if all .pro files are being
  parsed at once (i.e. qmake -recursive), so several ports had to switch to
  USES=qmake:norecursive along with manual additional qmake invocations in
  subdirectories in order to work. It's been mentioned in a few places such
  as Qt's bug tracker that qmake's recursive mode is pretty much deprecated,
  so we might switch to non-recursive mode by default in the future.

- Uses/qmake.mk: Introduce QMAKE_CONFIGURE_ARGS. qmake now accepts
  arbitrary options such as '-foo' and '-no-bar' at the end of the
  command-line. They can be specified in QMAKE_CONFIGURE_ARGS.

- graphics/qt5-wayland: The port can only be built if graphics/mesa-libs is
  built with the WAYLAND option, so a corresponding option (off by default)
  was added to the port.

- misc/qt5-doc: Switch to a pre-built documentation tarball. The existing
  port was not working with Qt 5.9. Instead of trying to fix it, switch to
  what Gentoo does and fetch a tarball that already contains all
  documentation so that we do not have to build anything at all. The
  tarball's name and location in download.qt.io look a bit weird, but it
  seems to work fine.

- www/qt5-webengine: Use binutils from ports, Chromium's GN build system
  generates a build.ninja that uses ar(1) with the @file syntax that is not
  supported by BSD ar, so we need to use GNU ar from binutils.

- x11-toolkits/qt5-declarative-render2d: This port was merged into the main
  Qt Declarative repository upstream, and into x11-toolkits/qt5-quick in the
  ports tree.

Changes to other ports we had to make:
- biology/ugene: Drop a '#define point "."' that is not present in more
  recent versions of the port. Defining a macro with such a common name
  causes build issues with Qt 5.9, which uses |point| as an argument name in
  methods.

- cad/qelectrotech: Fix plist with Qt 5.9. Directories are no longer
  installed with `cp -f -R', but rather `qmake install qinstall', which does
  not install

    %%DATADIR%%/elements/10_electric/20_manufacturers_articles/bosch_rexroth/.directory

  That's a local file that should not even have been part of the tarball
  anyway.

- chinese/gcin-qt5: Add additional private Qt directories (which should not
  be used in the first place) to get the port to build with Qt 5.9.

- devel/qtcreator: Fix plist with Qt 5.9. Something changed in qdoc and some
  test classes no longer generate documentation files.

- security/keepassx-devel: Import a patch sent upstream almost a year ago to
  fix the build with Qt 5.9.

Thanks to antoine for the exp-run, and tcberner and Laurent Cimon
<laurent@nuxi.ca> for landing changes in our qt-5.9 branch.

PR:		224849
2018-01-06 21:30:31 +00:00

86 lines
2.1 KiB
Text

--- src/3rdparty/chromium/net/BUILD.gn.orig 2017-01-26 00:49:16 UTC
+++ src/3rdparty/chromium/net/BUILD.gn
@@ -153,6 +153,11 @@ component("net") {
]
if (is_android) {
sources -= [ "base/openssl_private_key_store_android.cc" ]
+ } else if (is_bsd) {
+ sources -= [
+ "base/address_tracker_linux.cc",
+ "base/address_tracker_linux.h",
+ ]
}
} else {
if (is_android) {
@@ -278,6 +283,13 @@ component("net") {
sources -= [ "disk_cache/blockfile/file_posix.cc" ]
}
+ if (is_bsd) {
+ sources -= [
+ "base/network_change_notifier_linux.cc",
+ "base/network_change_notifier_linux.h",
+ ]
+ }
+
if (is_ios || is_mac) {
sources += gypi_values.net_base_mac_ios_sources
}
@@ -966,7 +978,7 @@ if (!is_ios && !is_android) {
}
}
-if (is_linux || is_mac) {
+if (is_linux || is_bsd || is_mac) {
executable("cachetool") {
testonly = true
sources = [
@@ -995,7 +1007,7 @@ if (is_linux || is_mac) {
}
}
-if (is_linux) {
+if (is_linux || is_bsd) {
static_library("epoll_server") {
sources = [
"tools/epoll_server/epoll_server.cc",
@@ -1098,7 +1110,7 @@ if (is_android) {
}
}
-if (is_android || is_linux) {
+if (is_android || is_linux || is_bsd) {
executable("disk_cache_memory_test") {
testonly = true
sources = [
@@ -1276,7 +1288,7 @@ test("net_unittests") {
"third_party/nist-pkits/",
]
- if (is_linux || is_mac || is_win) {
+ if (is_linux || is_bsd || is_mac || is_win) {
deps += [
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
@@ -1299,7 +1311,7 @@ test("net_unittests") {
if (is_desktop_linux) {
deps += [ ":epoll_quic_tools" ]
}
- if (is_linux) {
+ if (is_linux || is_bsd) {
sources += gypi_values.net_linux_test_sources
deps += [
":epoll_quic_tools",
@@ -1319,6 +1331,12 @@ test("net_unittests") {
sources -= [ "proxy/proxy_config_service_linux_unittest.cc" ]
}
+ if (is_bsd) {
+ sources -= [
+ "base/address_tracker_linux_unittest.cc",
+ ]
+ }
+
if (v8_use_external_startup_data) {
deps += [ "//gin" ]
}