mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-27 04:18:42 +00:00
Merge in 156319 156837 156838.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_31@156863 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
1 parent
1f3405800a
commit
02b87df98a
10 files changed
+122
-21
No files matched your search
@@ -268,11 +268,21 @@ set(LLVMCONFIGLIBRARYDEPENDENCIESINC
|
|||||||
"${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")
|
"${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")
|
||||||
set(LLVMBUILDCMAKEFRAG
|
set(LLVMBUILDCMAKEFRAG
|
||||||
"${LLVM_BINARY_DIR}/LLVMBuild.cmake")
|
"${LLVM_BINARY_DIR}/LLVMBuild.cmake")
|
||||||
|
|
||||||
|
# Create the list of optional components that are enabled
|
||||||
|
if (LLVM_USE_INTEL_JITEVENTS)
|
||||||
|
set(LLVMOPTIONALCOMPONENTS IntelJITEvents)
|
||||||
|
endif (LLVM_USE_INTEL_JITEVENTS)
|
||||||
|
if (LLVM_USE_OPROFILE)
|
||||||
|
set(LLVMOPTIONALCOMPONENTS ${LLVMOPTIONALCOMPONENTS} OProfileJIT)
|
||||||
|
endif (LLVM_USE_OPROFILE)
|
||||||
|
|
||||||
message(STATUS "Constructing LLVMBuild project information")
|
message(STATUS "Constructing LLVMBuild project information")
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}
|
COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}
|
||||||
--native-target "${LLVM_NATIVE_ARCH}"
|
--native-target "${LLVM_NATIVE_ARCH}"
|
||||||
--enable-targets "${LLVM_TARGETS_TO_BUILD}"
|
--enable-targets "${LLVM_TARGETS_TO_BUILD}"
|
||||||
|
--enable-optional-components "${LLVMOPTIONALCOMPONENTS}"
|
||||||
--write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}
|
--write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}
|
||||||
--write-cmake-fragment ${LLVMBUILDCMAKEFRAG}
|
--write-cmake-fragment ${LLVMBUILDCMAKEFRAG}
|
||||||
ERROR_VARIABLE LLVMBUILDOUTPUT
|
ERROR_VARIABLE LLVMBUILDOUTPUT
|
||||||
|
|||||||
@@ -351,3 +351,10 @@ INTEL_JITEVENTS_LIBDIR := @INTEL_JITEVENTS_LIBDIR@
|
|||||||
|
|
||||||
# Flags to control building support for OProfile JIT API
|
# Flags to control building support for OProfile JIT API
|
||||||
USE_OPROFILE := @USE_OPROFILE@
|
USE_OPROFILE := @USE_OPROFILE@
|
||||||
|
|
||||||
|
ifeq ($(USE_INTEL_JITEVENTS), 1)
|
||||||
|
OPTIONAL_COMPONENTS += IntelJITEvents
|
||||||
|
endif
|
||||||
|
ifeq ($(USE_OPROFILE), 1)
|
||||||
|
OPTIONAL_COMPONENTS += OProfileJIT
|
||||||
|
endif
|
||||||
@@ -100,6 +100,7 @@ $(LLVMBuildMakeFrag): $(PROJ_SRC_ROOT)/Makefile.rules \
|
|||||||
$(Verb) $(LLVMBuildTool) \
|
$(Verb) $(LLVMBuildTool) \
|
||||||
--native-target "$(TARGET_NATIVE_ARCH)" \
|
--native-target "$(TARGET_NATIVE_ARCH)" \
|
||||||
--enable-targets "$(TARGETS_TO_BUILD)" \
|
--enable-targets "$(TARGETS_TO_BUILD)" \
|
||||||
|
--enable-optional-components "$(OPTIONAL_COMPONENTS)" \
|
||||||
--write-library-table $(LLVMConfigLibraryDependenciesInc) \
|
--write-library-table $(LLVMConfigLibraryDependenciesInc) \
|
||||||
--write-make-fragment $(LLVMBuildMakeFrag)
|
--write-make-fragment $(LLVMBuildMakeFrag)
|
||||||
|
|
||||||
|
|||||||
@@ -272,6 +272,11 @@ required_libraries = Archive BitReader Core Support TransformUtils
|
|||||||
components. For example, the <i>X86</i> target might define a library
|
components. For example, the <i>X86</i> target might define a library
|
||||||
group for all of the <i>X86</i> components. That library group might
|
group for all of the <i>X86</i> components. That library group might
|
||||||
then be included in the <i>all-targets</i> library group.</p></li>
|
then be included in the <i>all-targets</i> library group.</p></li>
|
||||||
|
|
||||||
|
<li><i>installed</i> <b>[optional]</b> <b>[boolean]</b>
|
||||||
|
<p>Whether this library is installed. Libraries that are not installed
|
||||||
|
are only reported by <tt>llvm-config</tt> when it is run as part of a
|
||||||
|
development directory.</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,6 @@
|
|||||||
[common]
|
[common]
|
||||||
|
|
||||||
[component_0]
|
[component_0]
|
||||||
type = Library
|
type = OptionalLibrary
|
||||||
name = IntelJITEvents
|
name = IntelJITEvents
|
||||||
parent = ExecutionEngine
|
parent = ExecutionEngine
|
||||||
@@ -18,6 +18,6 @@
|
|||||||
[common]
|
[common]
|
||||||
|
|
||||||
[component_0]
|
[component_0]
|
||||||
type = Library
|
type = OptionalLibrary
|
||||||
name = OProfileJIT
|
name = OProfileJIT
|
||||||
parent = ExecutionEngine
|
parent = ExecutionEngine
|
||||||
@@ -54,7 +54,8 @@ using namespace llvm;
|
|||||||
static void VisitComponent(StringRef Name,
|
static void VisitComponent(StringRef Name,
|
||||||
const StringMap<AvailableComponent*> &ComponentMap,
|
const StringMap<AvailableComponent*> &ComponentMap,
|
||||||
std::set<AvailableComponent*> &VisitedComponents,
|
std::set<AvailableComponent*> &VisitedComponents,
|
||||||
std::vector<StringRef> &RequiredLibs) {
|
std::vector<StringRef> &RequiredLibs,
|
||||||
|
bool IncludeNonInstalled) {
|
||||||
// Lookup the component.
|
// Lookup the component.
|
||||||
AvailableComponent *AC = ComponentMap.lookup(Name);
|
AvailableComponent *AC = ComponentMap.lookup(Name);
|
||||||
assert(AC && "Invalid component name!");
|
assert(AC && "Invalid component name!");
|
||||||
@@ -65,10 +66,14 @@ static void VisitComponent(StringRef Name,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only include non-installed components if requested.
|
||||||
|
if (!AC->IsInstalled && !IncludeNonInstalled)
|
||||||
|
return;
|
||||||
|
|
||||||
// Otherwise, visit all the dependencies.
|
// Otherwise, visit all the dependencies.
|
||||||
for (unsigned i = 0; AC->RequiredLibraries[i]; ++i) {
|
for (unsigned i = 0; AC->RequiredLibraries[i]; ++i) {
|
||||||
VisitComponent(AC->RequiredLibraries[i], ComponentMap, VisitedComponents,
|
VisitComponent(AC->RequiredLibraries[i], ComponentMap, VisitedComponents,
|
||||||
RequiredLibs);
|
RequiredLibs, IncludeNonInstalled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add to the required library list.
|
// Add to the required library list.
|
||||||
@@ -83,8 +88,11 @@ static void VisitComponent(StringRef Name,
|
|||||||
/// \param Components - The names of the components to find libraries for.
|
/// \param Components - The names of the components to find libraries for.
|
||||||
/// \param RequiredLibs [out] - On return, the ordered list of libraries that
|
/// \param RequiredLibs [out] - On return, the ordered list of libraries that
|
||||||
/// are required to link the given components.
|
/// are required to link the given components.
|
||||||
|
/// \param IncludeNonInstalled - Whether non-installed components should be
|
||||||
|
/// reported.
|
||||||
void ComputeLibsForComponents(const std::vector<StringRef> &Components,
|
void ComputeLibsForComponents(const std::vector<StringRef> &Components,
|
||||||
std::vector<StringRef> &RequiredLibs) {
|
std::vector<StringRef> &RequiredLibs,
|
||||||
|
bool IncludeNonInstalled) {
|
||||||
std::set<AvailableComponent*> VisitedComponents;
|
std::set<AvailableComponent*> VisitedComponents;
|
||||||
|
|
||||||
// Build a map of component names to information.
|
// Build a map of component names to information.
|
||||||
@@ -107,7 +115,7 @@ void ComputeLibsForComponents(const std::vector<StringRef> &Components,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VisitComponent(ComponentLower, ComponentMap, VisitedComponents,
|
VisitComponent(ComponentLower, ComponentMap, VisitedComponents,
|
||||||
RequiredLibs);
|
RequiredLibs, IncludeNonInstalled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The list is now ordered with leafs first, we want the libraries to printed
|
// The list is now ordered with leafs first, we want the libraries to printed
|
||||||
@@ -278,6 +286,10 @@ int main(int argc, char **argv) {
|
|||||||
PrintLibFiles = true;
|
PrintLibFiles = true;
|
||||||
} else if (Arg == "--components") {
|
} else if (Arg == "--components") {
|
||||||
for (unsigned j = 0; j != array_lengthof(AvailableComponents); ++j) {
|
for (unsigned j = 0; j != array_lengthof(AvailableComponents); ++j) {
|
||||||
|
// Only include non-installed components when in a development tree.
|
||||||
|
if (!AvailableComponents[j].IsInstalled && !IsInDevelopmentTree)
|
||||||
|
continue;
|
||||||
|
|
||||||
OS << ' ';
|
OS << ' ';
|
||||||
OS << AvailableComponents[j].Name;
|
OS << AvailableComponents[j].Name;
|
||||||
}
|
}
|
||||||
@@ -310,7 +322,8 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
// Construct the list of all the required libraries.
|
// Construct the list of all the required libraries.
|
||||||
std::vector<StringRef> RequiredLibs;
|
std::vector<StringRef> RequiredLibs;
|
||||||
ComputeLibsForComponents(Components, RequiredLibs);
|
ComputeLibsForComponents(Components, RequiredLibs,
|
||||||
|
/*IncludeNonInstalled=*/IsInDevelopmentTree);
|
||||||
|
|
||||||
for (unsigned i = 0, e = RequiredLibs.size(); i != e; ++i) {
|
for (unsigned i = 0, e = RequiredLibs.size(); i != e; ++i) {
|
||||||
StringRef Lib = RequiredLibs[i];
|
StringRef Lib = RequiredLibs[i];
|
||||||
|
|||||||
@@ -68,6 +68,21 @@ class ComponentInfo(object):
|
|||||||
def get_llvmbuild_fragment(self):
|
def get_llvmbuild_fragment(self):
|
||||||
abstract
|
abstract
|
||||||
|
|
||||||
|
def get_parent_target_group(self):
|
||||||
|
"""get_parent_target_group() -> ComponentInfo or None
|
||||||
|
|
||||||
|
Return the nearest parent target group (if any), or None if the
|
||||||
|
component is not part of any target group.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# If this is a target group, return it.
|
||||||
|
if self.type_name == 'TargetGroup':
|
||||||
|
return self
|
||||||
|
|
||||||
|
# Otherwise recurse on the parent, if any.
|
||||||
|
if self.parent_instance:
|
||||||
|
return self.parent_instance.get_parent_target_group()
|
||||||
|
|
||||||
class GroupComponentInfo(ComponentInfo):
|
class GroupComponentInfo(ComponentInfo):
|
||||||
"""
|
"""
|
||||||
Group components have no semantics as far as the build system are concerned,
|
Group components have no semantics as far as the build system are concerned,
|
||||||
@@ -95,16 +110,22 @@ class LibraryComponentInfo(ComponentInfo):
|
|||||||
type_name = 'Library'
|
type_name = 'Library'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def parse(subpath, items):
|
def parse_items(items):
|
||||||
kwargs = ComponentInfo.parse_items(items)
|
kwargs = ComponentInfo.parse_items(items)
|
||||||
kwargs['library_name'] = items.get_optional_string('library_name')
|
kwargs['library_name'] = items.get_optional_string('library_name')
|
||||||
kwargs['required_libraries'] = items.get_list('required_libraries')
|
kwargs['required_libraries'] = items.get_list('required_libraries')
|
||||||
kwargs['add_to_library_groups'] = items.get_list(
|
kwargs['add_to_library_groups'] = items.get_list(
|
||||||
'add_to_library_groups')
|
'add_to_library_groups')
|
||||||
|
kwargs['installed'] = items.get_optional_bool('installed', True)
|
||||||
|
return kwargs
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(subpath, items):
|
||||||
|
kwargs = LibraryComponentInfo.parse_items(items)
|
||||||
return LibraryComponentInfo(subpath, **kwargs)
|
return LibraryComponentInfo(subpath, **kwargs)
|
||||||
|
|
||||||
def __init__(self, subpath, name, dependencies, parent, library_name,
|
def __init__(self, subpath, name, dependencies, parent, library_name,
|
||||||
required_libraries, add_to_library_groups):
|
required_libraries, add_to_library_groups, installed):
|
||||||
ComponentInfo.__init__(self, subpath, name, dependencies, parent)
|
ComponentInfo.__init__(self, subpath, name, dependencies, parent)
|
||||||
|
|
||||||
# If given, the name to use for the library instead of deriving it from
|
# If given, the name to use for the library instead of deriving it from
|
||||||
@@ -119,6 +140,9 @@ class LibraryComponentInfo(ComponentInfo):
|
|||||||
# considered part of.
|
# considered part of.
|
||||||
self.add_to_library_groups = list(add_to_library_groups)
|
self.add_to_library_groups = list(add_to_library_groups)
|
||||||
|
|
||||||
|
# Whether or not this library is installed.
|
||||||
|
self.installed = installed
|
||||||
|
|
||||||
def get_component_references(self):
|
def get_component_references(self):
|
||||||
for r in ComponentInfo.get_component_references(self):
|
for r in ComponentInfo.get_component_references(self):
|
||||||
yield r
|
yield r
|
||||||
@@ -140,6 +164,8 @@ class LibraryComponentInfo(ComponentInfo):
|
|||||||
if self.add_to_library_groups:
|
if self.add_to_library_groups:
|
||||||
print >>result, 'add_to_library_groups = %s' % ' '.join(
|
print >>result, 'add_to_library_groups = %s' % ' '.join(
|
||||||
self.add_to_library_groups)
|
self.add_to_library_groups)
|
||||||
|
if not self.installed:
|
||||||
|
print >>result, 'installed = 0'
|
||||||
return result.getvalue()
|
return result.getvalue()
|
||||||
|
|
||||||
def get_library_name(self):
|
def get_library_name(self):
|
||||||
@@ -165,6 +191,20 @@ class LibraryComponentInfo(ComponentInfo):
|
|||||||
def get_llvmconfig_component_name(self):
|
def get_llvmconfig_component_name(self):
|
||||||
return self.get_library_name().lower()
|
return self.get_library_name().lower()
|
||||||
|
|
||||||
|
class OptionalLibraryComponentInfo(LibraryComponentInfo):
|
||||||
|
type_name = "OptionalLibrary"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(subpath, items):
|
||||||
|
kwargs = LibraryComponentInfo.parse_items(items)
|
||||||
|
return OptionalLibraryComponentInfo(subpath, **kwargs)
|
||||||
|
|
||||||
|
def __init__(self, subpath, name, dependencies, parent, library_name,
|
||||||
|
required_libraries, add_to_library_groups, installed):
|
||||||
|
LibraryComponentInfo.__init__(self, subpath, name, dependencies, parent,
|
||||||
|
library_name, required_libraries,
|
||||||
|
add_to_library_groups, installed)
|
||||||
|
|
||||||
class LibraryGroupComponentInfo(ComponentInfo):
|
class LibraryGroupComponentInfo(ComponentInfo):
|
||||||
type_name = 'LibraryGroup'
|
type_name = 'LibraryGroup'
|
||||||
|
|
||||||
@@ -375,7 +415,7 @@ _component_type_map = dict(
|
|||||||
for t in (GroupComponentInfo,
|
for t in (GroupComponentInfo,
|
||||||
LibraryComponentInfo, LibraryGroupComponentInfo,
|
LibraryComponentInfo, LibraryGroupComponentInfo,
|
||||||
ToolComponentInfo, BuildToolComponentInfo,
|
ToolComponentInfo, BuildToolComponentInfo,
|
||||||
TargetGroupComponentInfo))
|
TargetGroupComponentInfo, OptionalLibraryComponentInfo))
|
||||||
def load_from_path(path, subpath):
|
def load_from_path(path, subpath):
|
||||||
# Load the LLVMBuild.txt file as an .ini format file.
|
# Load the LLVMBuild.txt file as an .ini format file.
|
||||||
parser = ConfigParser.RawConfigParser()
|
parser = ConfigParser.RawConfigParser()
|
||||||
|
|||||||
@@ -312,15 +312,26 @@ subdirectories = %s
|
|||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
def write_library_table(self, output_path):
|
def write_library_table(self, output_path, enabled_optional_components):
|
||||||
# Write out the mapping from component names to required libraries.
|
# Write out the mapping from component names to required libraries.
|
||||||
#
|
#
|
||||||
# We do this in topological order so that we know we can append the
|
# We do this in topological order so that we know we can append the
|
||||||
# dependencies for added library groups.
|
# dependencies for added library groups.
|
||||||
entries = {}
|
entries = {}
|
||||||
for c in self.ordered_component_infos:
|
for c in self.ordered_component_infos:
|
||||||
|
# Skip optional components which are not enabled.
|
||||||
|
if c.type_name == 'OptionalLibrary' \
|
||||||
|
and c.name not in enabled_optional_components:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Skip target groups which are not enabled.
|
||||||
|
tg = c.get_parent_target_group()
|
||||||
|
if tg and not tg.enabled:
|
||||||
|
continue
|
||||||
|
|
||||||
# Only certain components are in the table.
|
# Only certain components are in the table.
|
||||||
if c.type_name not in ('Library', 'LibraryGroup', 'TargetGroup'):
|
if c.type_name not in ('Library', 'OptionalLibrary', \
|
||||||
|
'LibraryGroup', 'TargetGroup'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Compute the llvm-config "component name". For historical reasons,
|
# Compute the llvm-config "component name". For historical reasons,
|
||||||
@@ -328,10 +339,12 @@ subdirectories = %s
|
|||||||
llvmconfig_component_name = c.get_llvmconfig_component_name()
|
llvmconfig_component_name = c.get_llvmconfig_component_name()
|
||||||
|
|
||||||
# Get the library name, or None for LibraryGroups.
|
# Get the library name, or None for LibraryGroups.
|
||||||
if c.type_name == 'Library':
|
if c.type_name == 'Library' or c.type_name == 'OptionalLibrary':
|
||||||
library_name = c.get_prefixed_library_name()
|
library_name = c.get_prefixed_library_name()
|
||||||
|
is_installed = c.installed
|
||||||
else:
|
else:
|
||||||
library_name = None
|
library_name = None
|
||||||
|
is_installed = True
|
||||||
|
|
||||||
# Get the component names of all the required libraries.
|
# Get the component names of all the required libraries.
|
||||||
required_llvmconfig_component_names = [
|
required_llvmconfig_component_names = [
|
||||||
@@ -344,7 +357,8 @@ subdirectories = %s
|
|||||||
|
|
||||||
# Add the entry.
|
# Add the entry.
|
||||||
entries[c.name] = (llvmconfig_component_name, library_name,
|
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.
|
# Convert to a list of entries and sort by name.
|
||||||
entries = entries.values()
|
entries = entries.values()
|
||||||
@@ -352,16 +366,16 @@ subdirectories = %s
|
|||||||
# Create an 'all' pseudo component. We keep the dependency list small by
|
# Create an 'all' pseudo component. We keep the dependency list small by
|
||||||
# only listing entries that have no other dependents.
|
# only listing entries that have no other dependents.
|
||||||
root_entries = set(e[0] for e in entries)
|
root_entries = set(e[0] for e in entries)
|
||||||
for _,_,deps in entries:
|
for _,_,deps,_ in entries:
|
||||||
root_entries -= set(deps)
|
root_entries -= set(deps)
|
||||||
entries.append(('all', None, root_entries))
|
entries.append(('all', None, root_entries, True))
|
||||||
|
|
||||||
entries.sort()
|
entries.sort()
|
||||||
|
|
||||||
# Compute the maximum number of required libraries, plus one so there is
|
# Compute the maximum number of required libraries, plus one so there is
|
||||||
# always a sentinel.
|
# always a sentinel.
|
||||||
max_required_libraries = max(len(deps)
|
max_required_libraries = max(len(deps)
|
||||||
for _,_,deps in entries) + 1
|
for _,_,deps,_ in entries) + 1
|
||||||
|
|
||||||
# Write out the library table.
|
# Write out the library table.
|
||||||
make_install_dir(os.path.dirname(output_path))
|
make_install_dir(os.path.dirname(output_path))
|
||||||
@@ -382,18 +396,21 @@ subdirectories = %s
|
|||||||
print >>f, ' /// The name of the library for this component (or NULL).'
|
print >>f, ' /// The name of the library for this component (or NULL).'
|
||||||
print >>f, ' const char *Library;'
|
print >>f, ' const char *Library;'
|
||||||
print >>f, ''
|
print >>f, ''
|
||||||
|
print >>f, ' /// Whether the component is installed.'
|
||||||
|
print >>f, ' bool IsInstalled;'
|
||||||
|
print >>f, ''
|
||||||
print >>f, '\
|
print >>f, '\
|
||||||
/// The list of libraries required when linking this component.'
|
/// The list of libraries required when linking this component.'
|
||||||
print >>f, ' const char *RequiredLibraries[%d];' % (
|
print >>f, ' const char *RequiredLibraries[%d];' % (
|
||||||
max_required_libraries)
|
max_required_libraries)
|
||||||
print >>f, '} AvailableComponents[%d] = {' % len(entries)
|
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:
|
if library_name is None:
|
||||||
library_name_as_cstr = '0'
|
library_name_as_cstr = '0'
|
||||||
else:
|
else:
|
||||||
library_name_as_cstr = '"lib%s.a"' % library_name
|
library_name_as_cstr = '"lib%s.a"' % library_name
|
||||||
print >>f, ' { "%s", %s, { %s } },' % (
|
print >>f, ' { "%s", %s, %d, { %s } },' % (
|
||||||
name, library_name_as_cstr,
|
name, library_name_as_cstr, is_installed,
|
||||||
', '.join('"%s"' % dep
|
', '.join('"%s"' % dep
|
||||||
for dep in required_names))
|
for dep in required_names))
|
||||||
print >>f, '};'
|
print >>f, '};'
|
||||||
@@ -778,6 +795,11 @@ given by --build-root) at the same SUBPATH""",
|
|||||||
help=("Enable the given space or semi-colon separated "
|
help=("Enable the given space or semi-colon separated "
|
||||||
"list of targets, or all targets if not present"),
|
"list of targets, or all targets if not present"),
|
||||||
action="store", default=None)
|
action="store", default=None)
|
||||||
|
group.add_option("", "--enable-optional-components",
|
||||||
|
dest="optional_components", metavar="NAMES",
|
||||||
|
help=("Enable the given space or semi-colon separated "
|
||||||
|
"list of optional components"),
|
||||||
|
action="store", default=None)
|
||||||
parser.add_option_group(group)
|
parser.add_option_group(group)
|
||||||
|
|
||||||
(opts, args) = parser.parse_args()
|
(opts, args) = parser.parse_args()
|
||||||
@@ -819,7 +841,8 @@ given by --build-root) at the same SUBPATH""",
|
|||||||
|
|
||||||
# Write out the required library table, if requested.
|
# Write out the required library table, if requested.
|
||||||
if opts.write_library_table:
|
if opts.write_library_table:
|
||||||
project_info.write_library_table(opts.write_library_table)
|
project_info.write_library_table(opts.write_library_table,
|
||||||
|
opts.optional_components)
|
||||||
|
|
||||||
# Write out the make fragment, if requested.
|
# Write out the make fragment, if requested.
|
||||||
if opts.write_make_fragment:
|
if opts.write_make_fragment:
|
||||||
|
|||||||
@@ -20,9 +20,11 @@ type = Library
|
|||||||
name = gtest
|
name = gtest
|
||||||
parent = Libraries
|
parent = Libraries
|
||||||
required_libraries = Support
|
required_libraries = Support
|
||||||
|
installed = 0
|
||||||
|
|
||||||
[component_1]
|
[component_1]
|
||||||
type = Library
|
type = Library
|
||||||
name = gtest_main
|
name = gtest_main
|
||||||
parent = Libraries
|
parent = Libraries
|
||||||
required_libraries = gtest
|
required_libraries = gtest
|
||||||
|
installed = 0
|
||||||
Reference in new issue
Block a user