build/Make & CMake: Pass the appropriate --native-target and --enable-targets

options to llvm-build, so the all-targets etc. components are defined properly.

llvm-svn: 144255
This commit is contained in:
Daniel Dunbar 2011-11-10 01:16:48 +00:00
parent f0c4aed0ab
commit 138437ad27
4 changed files with 17 additions and 6 deletions

View File

@ -236,6 +236,8 @@ set(LLVMBUILDCMAKEFRAG
message(STATUS "Constructing LLVMBuild project information")
execute_process(
COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}
--native-target "${LLVM_NATIVE_ARCH}"
--enable-targets "${LLVM_TARGETS_TO_BUILD}"
--write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}
--write-cmake-fragment ${LLVMBUILDCMAKEFRAG}
ERROR_VARIABLE LLVMBUILDOUTPUT

View File

@ -92,6 +92,8 @@ LLVMConfigLibraryDependenciesInc := \
$(LLVMBuildMakeFrag): $(PROJ_SRC_ROOT)/Makefile.rules
$(Echo) Constructing LLVMBuild project information.
$(Verb) $(LLVMBuildTool) \
--native-target "$(ARCH)" \
--enable-targets "$(TARGETS_TO_BUILD)" \
--write-library-table $(LLVMConfigLibraryDependenciesInc) \
--write-make-fragment $(LLVMBuildMakeFrag)

View File

@ -21,8 +21,9 @@ name = Target
parent = Libraries
required_libraries = Core MC Support
; This is a convenient group we define (and expect targets to add to) which
; makes it easy for tools to include every target.
; This is a special group whose required libraries are extended (by llvm-build)
; with every built target, which makes it easy for tools to include every
; target.
[component_1]
type = LibraryGroup
name = all-targets

View File

@ -505,7 +505,7 @@ def add_magic_target_components(parser, project, opts):
determined based on the target configuration options.
This currently is responsible for populating the required_libraries list of
the "Native", "NativeCodeGen", and "Engine" components.
the "all-targets", "Native", "NativeCodeGen", and "Engine" components.
"""
# Determine the available targets.
@ -536,8 +536,14 @@ def add_magic_target_components(parser, project, opts):
if opts.enable_targets is None:
enable_targets = available_targets.values()
else:
# We support both space separated and semi-colon separated lists.
if ' ' in opts.enable_targets:
enable_target_names = opts.enable_targets.split()
else:
enable_target_names = opts.enable_targets.split(';')
enable_targets = []
for name in opts.enable_targets.split():
for name in enable_target_names:
target = available_targets.get(name)
if target is None:
parser.error("invalid target to enable: %r (not in project)" % (
@ -641,8 +647,8 @@ def main():
action="store", default=None)
group.add_option("", "--enable-targets",
dest="enable_targets", metavar="NAMES",
help=("Enable the given space separated list of targets, "
"or all targets if not present"),
help=("Enable the given space or semi-colon separated "
"list of targets, or all targets if not present"),
action="store", default=None)
parser.add_option_group(group)