aboutsummaryrefslogtreecommitdiffstats
path: root/utils/llvm-build/llvmbuild/main.py
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2012-05-15 18:44:17 +0000
committerDaniel Dunbar <daniel@zuster.org>2012-05-15 18:44:17 +0000
commitb5cd41e26f89aad2f2dc4f5dc37577f7abf8528a (patch)
tree8a0f75441b6e5641d8c8856c18e09d90c0d40b8c /utils/llvm-build/llvmbuild/main.py
parent177a119621f14a6ced87982ada75372815b636cf (diff)
downloadexternal_llvm-b5cd41e26f89aad2f2dc4f5dc37577f7abf8528a.zip
external_llvm-b5cd41e26f89aad2f2dc4f5dc37577f7abf8528a.tar.gz
external_llvm-b5cd41e26f89aad2f2dc4f5dc37577f7abf8528a.tar.bz2
llvm-build: Add support for non-installed libraries (e.g., gtest).
- These libraries are only reported by llvm-config when run from a development tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156838 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/llvm-build/llvmbuild/main.py')
-rw-r--r--utils/llvm-build/llvmbuild/main.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/utils/llvm-build/llvmbuild/main.py b/utils/llvm-build/llvmbuild/main.py
index 48b59bd..baecc6d 100644
--- a/utils/llvm-build/llvmbuild/main.py
+++ b/utils/llvm-build/llvmbuild/main.py
@@ -341,8 +341,10 @@ subdirectories = %s
# Get the library name, or None for LibraryGroups.
if c.type_name == 'Library' or c.type_name == 'OptionalLibrary':
library_name = c.get_prefixed_library_name()
+ is_installed = c.installed
else:
library_name = None
+ is_installed = True
# Get the component names of all the required libraries.
required_llvmconfig_component_names = [
@@ -355,7 +357,8 @@ subdirectories = %s
# Add the entry.
entries[c.name] = (llvmconfig_component_name, library_name,
- required_llvmconfig_component_names)
+ required_llvmconfig_component_names,
+ is_installed)
# Convert to a list of entries and sort by name.
entries = entries.values()
@@ -363,16 +366,16 @@ subdirectories = %s
# Create an 'all' pseudo component. We keep the dependency list small by
# only listing entries that have no other dependents.
root_entries = set(e[0] for e in entries)
- for _,_,deps in entries:
+ for _,_,deps,_ in entries:
root_entries -= set(deps)
- entries.append(('all', None, root_entries))
+ entries.append(('all', None, root_entries, True))
entries.sort()
# Compute the maximum number of required libraries, plus one so there is
# always a sentinel.
max_required_libraries = max(len(deps)
- for _,_,deps in entries) + 1
+ for _,_,deps,_ in entries) + 1
# Write out the library table.
make_install_dir(os.path.dirname(output_path))
@@ -393,18 +396,21 @@ subdirectories = %s
print >>f, ' /// The name of the library for this component (or NULL).'
print >>f, ' const char *Library;'
print >>f, ''
+ print >>f, ' /// Whether the component is installed.'
+ print >>f, ' bool IsInstalled;'
+ print >>f, ''
print >>f, '\
/// The list of libraries required when linking this component.'
print >>f, ' const char *RequiredLibraries[%d];' % (
max_required_libraries)
print >>f, '} AvailableComponents[%d] = {' % len(entries)
- for name,library_name,required_names in entries:
+ for name,library_name,required_names,is_installed in entries:
if library_name is None:
library_name_as_cstr = '0'
else:
library_name_as_cstr = '"lib%s.a"' % library_name
- print >>f, ' { "%s", %s, { %s } },' % (
- name, library_name_as_cstr,
+ print >>f, ' { "%s", %s, %d, { %s } },' % (
+ name, library_name_as_cstr, is_installed,
', '.join('"%s"' % dep
for dep in required_names))
print >>f, '};'