Package instant :: Module config
[hide private]
[frames] | no frames]

Source Code for Module instant.config

 1  """This module contains helper functions for configuration using pkg-config.""" 
 2   
 3  from output import get_status_output 
 4   
5 -def header_and_libs_from_pkgconfig(*packages, **kwargs):
6 """This function returns list of include files, flags, libraries and library directories obtain from a pkgconfig file. 7 8 The usage is: 9 (includes, flags, libraries, libdirs) = header_and_libs_from_pkgconfig(*list_of_packages) 10 """ 11 returnLinkFlags = kwargs.get("returnLinkFlags", False) 12 result, output = get_status_output("pkg-config --version ") 13 if result != 0: 14 raise OSError("The pkg-config package is not installed on the system.") 15 16 includes = [] 17 flags = [] 18 libs = [] 19 libdirs = [] 20 linkflags = [] 21 for pack in packages: 22 result, output = get_status_output("pkg-config --exists %s " % pack) 23 if result == 0: 24 tmp = get_status_output("pkg-config --cflags-only-I %s " % pack)[1].split() 25 includes.extend(i[2:] for i in tmp) 26 27 tmp = get_status_output("pkg-config --cflags-only-other %s " % pack)[1].split() 28 flags.extend(tmp) 29 30 tmp = get_status_output("pkg-config --libs-only-l %s " % pack)[1].split() 31 libs.extend(i[2:] for i in tmp) 32 33 tmp = get_status_output("pkg-config --libs-only-L %s " % pack)[1].split() 34 libdirs.extend(i[2:] for i in tmp) 35 36 tmp = get_status_output("pkg-config --libs-only-other %s " % pack)[1].split() 37 linkflags.extend(tmp) 38 39 else: 40 raise OSError("The pkg-config file %s does not exist" % pack) 41 42 if returnLinkFlags: return (includes,flags,libs, libdirs, linkflags) 43 return (includes,flags,libs, libdirs)
44