bug 1485946 - skip building libprio on MSVC r=froydnj
☠☠ backed out by 735ce953ca62 ☠ ☠
authorRobert Helmer <rhelmer@mozilla.com>
Mon, 27 Aug 2018 15:39:46 +0000
changeset 488646 df602a252b663b56faed75655ce13c04884e0ad3
parent 488620 c7c09f0fedf60e9b4137542866d5159e66037286
child 488647 735ce953ca625bfa083658b463e47040481236c9
push id9734
push usershindli@mozilla.com
push dateThu, 30 Aug 2018 12:18:07 +0000
treeherdermozilla-beta@71c71ab3afae [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1485946
milestone63.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
bug 1485946 - skip building libprio on MSVC r=froydnj libprio does not currently build with MSVC (since it only supports C90 as a compiler), this is being worked on upstream at https://github.com/mozilla/libprio/issues/17 As we are almost certainly not going to ship Firefox build with MSVC anymore, let's disable this to get it working on this Tier-2 platform. Differential Revision: https://phabricator.services.mozilla.com/D4292
config/external/moz.build
config/external/msgpack/moz.build
config/external/prio/moz.build
dom/bindings/moz.build
dom/chrome-webidl/moz.build
dom/moz.build
third_party/moz.build
toolkit/moz.configure
--- a/config/external/moz.build
+++ b/config/external/moz.build
@@ -3,22 +3,26 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 external_dirs = []
 
 DIRS += [
     'lgpllibs',
-    'prio',
     'sqlite',
 ]
 if not CONFIG['MOZ_SYSTEM_JPEG']:
     external_dirs += ['media/libjpeg']
 
+if CONFIG['MOZ_LIBPRIO']:
+    DIRS += [
+        'prio',
+    ]
+
 # There's no "native" brotli or woff2 yet, but probably in the future...
 external_dirs += ['modules/brotli']
 external_dirs += ['modules/woff2']
 
 external_dirs += ['modules/xz-embedded']
 
 if CONFIG['MOZ_VORBIS']:
     external_dirs += ['media/libvorbis']
--- a/config/external/msgpack/moz.build
+++ b/config/external/msgpack/moz.build
@@ -1,8 +1,9 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['/third_party/msgpack']
+if CONFIG['MOZ_LIBPRIO']:
+    DIRS += ['/third_party/msgpack']
 
--- a/config/external/prio/moz.build
+++ b/config/external/prio/moz.build
@@ -1,8 +1,8 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['../../../third_party/prio']
+DIRS += ['/third_party/prio']
 
--- a/dom/bindings/moz.build
+++ b/dom/bindings/moz.build
@@ -90,19 +90,21 @@ LOCAL_INCLUDES += [
     '/layout/generic',
     '/layout/style',
     '/layout/xul/tree',
     '/media/mtransport',
     '/media/webrtc/',
     '/media/webrtc/signaling/src/common/time_profiling',
     '/media/webrtc/signaling/src/peerconnection',
     '/media/webrtc/trunk/',
-    '/third_party/msgpack/include',
 ]
 
+if CONFIG['MOZ_LIBPRIO']:
+    LOCAL_INCLUDES += ['/third_party/msgpack/include']
+
 DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
 DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
 
 UNIFIED_SOURCES += [
     'BindingUtils.cpp',
     'CallbackInterface.cpp',
     'CallbackObject.cpp',
     'Date.cpp',
--- a/dom/chrome-webidl/moz.build
+++ b/dom/chrome-webidl/moz.build
@@ -39,22 +39,27 @@ WEBIDL_FILES = [
     'MatchPattern.webidl',
     'MessageManager.webidl',
     'MozDocumentObserver.webidl',
     'MozSharedMap.webidl',
     'MozStorageAsyncStatementParams.webidl',
     'MozStorageStatementParams.webidl',
     'MozStorageStatementRow.webidl',
     'PrecompiledScript.webidl',
-    'PrioEncoder.webidl',
     'PromiseDebugging.webidl',
     'StructuredCloneHolder.webidl',
     'WebExtensionContentScript.webidl',
     'WebExtensionPolicy.webidl',
     'XULFrameElement.webidl',
     'XULScrollElement.webidl'
 ]
 
 if CONFIG['MOZ_PLACES']:
     WEBIDL_FILES += [
         'PlacesEvent.webidl',
         'PlacesObservers.webidl',
     ]
+
+if CONFIG['MOZ_LIBPRIO']:
+    WEBIDL_FILES += [
+        'PrioEncoder.webidl',
+    ]
+
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -58,17 +58,16 @@ DIRS += [
     'jsurl',
     'asmjscache',
     'mathml',
     'media',
     'midi',
     'notification',
     'offline',
     'power',
-    'prio',
     'push',
     'quota',
     'security',
     'storage',
     'svg',
     'locales',
     'network',
     'permission',
@@ -100,16 +99,19 @@ DIRS += [
     'worklet',
     'script',
     'payments',
     'websocket',
     'serviceworkers',
     'simpledb',
 ]
 
+if CONFIG['MOZ_LIBPRIO']:
+    DIRS += ['prio']
+
 if CONFIG['OS_ARCH'] == 'WINNT':
     DIRS += ['plugins/ipc/hangui']
 
 DIRS += ['presentation']
 
 TEST_DIRS += [
     'tests',
     'imptests',
--- a/third_party/moz.build
+++ b/third_party/moz.build
@@ -5,13 +5,14 @@ with Files('aom/**'):
     BUG_COMPONENT = ('Core', 'Audio/Video: Playback')
 
 with Files('rust/**'):
     BUG_COMPONENT = ('Firefox Build System', 'General')
 
 with Files('webkit/**'):
     BUG_COMPONENT = ('Firefox Build System', 'General')
 
-with Files('prio/**'):
-    BUG_COMPONENT = ('Firefox Build System', 'General')
+if CONFIG['MOZ_LIBPRIO']:
+    with Files('prio/**'):
+        BUG_COMPONENT = ('Firefox Build System', 'General')
 
-with Files('msgpack/**'):
-    BUG_COMPONENT = ('Firefox Build System', 'General')
+    with Files('msgpack/**'):
+        BUG_COMPONENT = ('Firefox Build System', 'General')
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -1059,8 +1059,21 @@ def launcher(value, target):
     enabled = bool(value)
     if enabled and target.os != 'WINNT':
         die('Cannot enable launcher process on %s', target.os)
     if enabled:
         return True
 
 set_config('MOZ_LAUNCHER_PROCESS', launcher)
 set_define('MOZ_LAUNCHER_PROCESS', launcher)
+
+# Prio
+# ==============================================================
+@depends(c_compiler)
+def libprio(info):
+    if info:
+      if info.type in ('msvc'):
+        return None
+    else:
+      return True
+
+set_config('MOZ_LIBPRIO', libprio)
+