OSDN Git Service

build/Make & CMake: Pass the appropriate --native-target and --enable-targets
authorDaniel Dunbar <daniel@zuster.org>
Thu, 10 Nov 2011 01:16:48 +0000 (01:16 +0000)
committerStephen Hines <srhines@google.com>
Mon, 14 Nov 2011 17:12:07 +0000 (09:12 -0800)
options to llvm-build, so the all-targets etc. components are defined properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144255 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
Makefile.rules
lib/Target/LLVMBuild.txt
utils/llvm-build/llvmbuild/main.py

index 77cd5fa..5d36f5f 100644 (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
index e82549d..78d1f97 100644 (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)
 
index 09dadd6..60f5230 100644 (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
index fe852a0..51923eb 100644 (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)