Split apart platform-specific dependencies

pull/1631/head
Elliott Sales de Andrade 8 years ago
parent d96b16c24b
commit cb24c2d58a
  1. 4
      mesonbuild/dependencies/__init__.py
  2. 25
      mesonbuild/dependencies/base.py
  3. 44
      mesonbuild/dependencies/platform.py

@ -14,6 +14,7 @@
from .base import *
from .dev import GMockDependency, GTestDependency, LLVMDependency, ValgrindDependency
from .platform import AppleFrameworks
from .ui import GLDependency, GnuStepDependency, Qt4Dependency, Qt5Dependency, SDL2Dependency, WxDependency
@ -24,6 +25,9 @@ packages.update({
'llvm': LLVMDependency,
'valgrind': ValgrindDependency,
# From platform:
'appleframeworks': AppleFrameworks,
# From ui:
'gl': GLDependency,
'gnustep': GnuStepDependency,

@ -787,30 +787,6 @@ class BoostDependency(Dependency):
return 'thread' in self.requested_modules
class AppleFrameworks(Dependency):
def __init__(self, environment, kwargs):
Dependency.__init__(self, 'appleframeworks', kwargs)
modules = kwargs.get('modules', [])
if isinstance(modules, str):
modules = [modules]
if not modules:
raise DependencyException("AppleFrameworks dependency requires at least one module.")
self.frameworks = modules
def get_link_args(self):
args = []
for f in self.frameworks:
args.append('-framework')
args.append(f)
return args
def found(self):
return mesonlib.is_osx()
def get_version(self):
return 'unknown'
class ExtraFrameworkDependency(Dependency):
def __init__(self, name, required, path, kwargs):
Dependency.__init__(self, 'extraframeworks', kwargs)
@ -1011,7 +987,6 @@ def find_external_dependency(name, environment, kwargs):
# This has to be at the end so the classes it references
# are defined.
packages = {'boost': BoostDependency,
'appleframeworks': AppleFrameworks,
'threads': ThreadDependency,
'python3': Python3Dependency,
}

@ -0,0 +1,44 @@
# Copyright 2013-2017 The Meson development team
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file contains the detection logic for external dependencies that are
# platform-specific (generally speaking).
from .. import mesonlib
from .base import Dependency, DependencyException
class AppleFrameworks(Dependency):
def __init__(self, environment, kwargs):
Dependency.__init__(self, 'appleframeworks', kwargs)
modules = kwargs.get('modules', [])
if isinstance(modules, str):
modules = [modules]
if not modules:
raise DependencyException("AppleFrameworks dependency requires at least one module.")
self.frameworks = modules
def get_link_args(self):
args = []
for f in self.frameworks:
args.append('-framework')
args.append(f)
return args
def found(self):
return mesonlib.is_osx()
def get_version(self):
return 'unknown'
Loading…
Cancel
Save