summaryrefslogtreecommitdiffstats
path: root/waflib/Tools/c_aliases.py
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-04-21 23:05:06 +0200
committerDavid Robillard <d@drobilla.net>2019-04-21 23:05:06 +0200
commit202873cf9bfdeb669365a6d76e54ad657c550fe2 (patch)
tree79db4dee998f1ef093c3e81f1d0ea708901ab96c /waflib/Tools/c_aliases.py
parentde6492738adf1794bf5fa39c1fe1ebbd167727ac (diff)
downloadsratom-202873cf9bfdeb669365a6d76e54ad657c550fe2.tar.gz
sratom-202873cf9bfdeb669365a6d76e54ad657c550fe2.tar.bz2
sratom-202873cf9bfdeb669365a6d76e54ad657c550fe2.zip
Switch to using a submodule for autowaf
Diffstat (limited to 'waflib/Tools/c_aliases.py')
m---------waflib0
-rw-r--r--waflib/Tools/c_aliases.py144
2 files changed, 0 insertions, 144 deletions
diff --git a/waflib b/waflib
new file mode 160000
+Subproject 2314e236ca6e7d94a26c3c17091da0f25f5867f
diff --git a/waflib/Tools/c_aliases.py b/waflib/Tools/c_aliases.py
deleted file mode 100644
index c9d5369..0000000
--- a/waflib/Tools/c_aliases.py
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-# Thomas Nagy, 2005-2015 (ita)
-
-"base for all c/c++ programs and libraries"
-
-from waflib import Utils, Errors
-from waflib.Configure import conf
-
-def get_extensions(lst):
- """
- Returns the file extensions for the list of files given as input
-
- :param lst: files to process
- :list lst: list of string or :py:class:`waflib.Node.Node`
- :return: list of file extensions
- :rtype: list of string
- """
- ret = []
- for x in Utils.to_list(lst):
- if not isinstance(x, str):
- x = x.name
- ret.append(x[x.rfind('.') + 1:])
- return ret
-
-def sniff_features(**kw):
- """
- Computes and returns the features required for a task generator by
- looking at the file extensions. This aimed for C/C++ mainly::
-
- snif_features(source=['foo.c', 'foo.cxx'], type='shlib')
- # returns ['cxx', 'c', 'cxxshlib', 'cshlib']
-
- :param source: source files to process
- :type source: list of string or :py:class:`waflib.Node.Node`
- :param type: object type in *program*, *shlib* or *stlib*
- :type type: string
- :return: the list of features for a task generator processing the source files
- :rtype: list of string
- """
- exts = get_extensions(kw['source'])
- typ = kw['typ']
- feats = []
-
- # watch the order, cxx will have the precedence
- for x in 'cxx cpp c++ cc C'.split():
- if x in exts:
- feats.append('cxx')
- break
-
- if 'c' in exts or 'vala' in exts or 'gs' in exts:
- feats.append('c')
-
- for x in 'f f90 F F90 for FOR'.split():
- if x in exts:
- feats.append('fc')
- break
-
- if 'd' in exts:
- feats.append('d')
-
- if 'java' in exts:
- feats.append('java')
- return 'java'
-
- if typ in ('program', 'shlib', 'stlib'):
- will_link = False
- for x in feats:
- if x in ('cxx', 'd', 'fc', 'c'):
- feats.append(x + typ)
- will_link = True
- if not will_link and not kw.get('features', []):
- raise Errors.WafError('Cannot link from %r, try passing eg: features="c cprogram"?' % kw)
- return feats
-
-def set_features(kw, typ):
- """
- Inserts data in the input dict *kw* based on existing data and on the type of target
- required (typ).
-
- :param kw: task generator parameters
- :type kw: dict
- :param typ: type of target
- :type typ: string
- """
- kw['typ'] = typ
- kw['features'] = Utils.to_list(kw.get('features', [])) + Utils.to_list(sniff_features(**kw))
-
-@conf
-def program(bld, *k, **kw):
- """
- Alias for creating programs by looking at the file extensions::
-
- def build(bld):
- bld.program(source='foo.c', target='app')
- # equivalent to:
- # bld(features='c cprogram', source='foo.c', target='app')
-
- """
- set_features(kw, 'program')
- return bld(*k, **kw)
-
-@conf
-def shlib(bld, *k, **kw):
- """
- Alias for creating shared libraries by looking at the file extensions::
-
- def build(bld):
- bld.shlib(source='foo.c', target='app')
- # equivalent to:
- # bld(features='c cshlib', source='foo.c', target='app')
-
- """
- set_features(kw, 'shlib')
- return bld(*k, **kw)
-
-@conf
-def stlib(bld, *k, **kw):
- """
- Alias for creating static libraries by looking at the file extensions::
-
- def build(bld):
- bld.stlib(source='foo.cpp', target='app')
- # equivalent to:
- # bld(features='cxx cxxstlib', source='foo.cpp', target='app')
-
- """
- set_features(kw, 'stlib')
- return bld(*k, **kw)
-
-@conf
-def objects(bld, *k, **kw):
- """
- Alias for creating object files by looking at the file extensions::
-
- def build(bld):
- bld.objects(source='foo.c', target='app')
- # equivalent to:
- # bld(features='c', source='foo.c', target='app')
-
- """
- set_features(kw, 'objects')
- return bld(*k, **kw)
-