Linux: create a library loader code generator for dlopen and use it for libpci.

BUG=162733

Review URL: https://codereview.chromium.org/11415138

git-svn-id: http://src.chromium.org/svn/trunk/src/build@170010 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
phajdan.jr@chromium.org 2012-11-28 19:08:14 +00:00
Родитель d4ffb45331
Коммит 50b75e4919
1 изменённых файлов: 66 добавлений и 0 удалений

Просмотреть файл

@ -11,6 +11,8 @@
'pkg-config': 'pkg-config'
}]
],
'linux_link_libpci%': 0,
},
'conditions': [
[ 'os_posix==1 and OS!="mac"', {
@ -274,6 +276,70 @@
}],
],
},
{
'target_name': 'libpci',
'type': 'static_library',
'cflags': [
'<!@(<(pkg-config) --cflags libpci)',
],
'include_dirs': [
'../..',
],
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
'conditions': [
['linux_link_libpci==1', {
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libpci)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libpci)',
],
}
}],
],
},
'hard_dependency': 1,
'actions': [
{
'variables': {
'output_h': '<(SHARED_INTERMEDIATE_DIR)/library_loaders/libpci.h',
'output_cc': '<(INTERMEDIATE_DIR)/libpci_loader.cc',
'generator': '../../tools/generate_library_loader/generate_library_loader.py',
},
'action_name': 'generate_libpci_loader',
'inputs': [
'<(generator)',
],
'outputs': [
'<(output_h)',
'<(output_cc)',
],
'action': ['python',
'<(generator)',
'--name', 'LibPciLoader',
'--output-h', '<(output_h)',
'--output-cc', '<(output_cc)',
'--header', '<pci/pci.h>',
# TODO(phajdan.jr): Report problem to pciutils project
# and get it fixed so that we don't need --use-extern-c.
'--use-extern-c',
'--link-directly=<(linux_link_libpci)',
'pci_alloc',
'pci_init',
'pci_cleanup',
'pci_scan_bus',
'pci_fill_info',
'pci_lookup_name',
],
'message': 'Generating libpci library loader.',
'process_outputs_as_sources': 1,
},
],
},
{
'target_name': 'x11',
'type': 'none',