[PATCH] D20838: Add new LLVM_EXTERNAL_PROJECTS option to cmake

Tamas Berghammer via llvm-commits llvm-commits at lists.llvm.org
Tue May 31 14:35:35 PDT 2016


tberghammer created this revision.
tberghammer added reviewers: chandlerc, beanz.
tberghammer added a subscriber: llvm-commits.

Add new LLVM_EXTERNAL_PROJECTS option to cmake

The new option makes it possible to build external projects as part of
the llvm build without copying (or symlinking) then into llvm/tool with
specifying a few additional cmake variables.

Example usage (2 additional project called foo and bar):
-DLLVM_EXTERNAL_PROJECTS="Foo;Bar"
-DLLVM_EXTERNAL_FOO_SOURCE_DIR=/src/foo
-DLLVM_EXTERNAL_BAR_SOURCE_DIR=/src/bar

Note: This is the extension of the approach we already support for
clang/lldb/poly with adding an option to specify additional supported
projects.

http://reviews.llvm.org/D20838

Files:
  docs/CMake.rst
  tools/CMakeLists.txt

Index: tools/CMakeLists.txt
===================================================================
--- tools/CMakeLists.txt
+++ tools/CMakeLists.txt
@@ -49,4 +49,9 @@
 # file as external projects.
 add_llvm_implicit_projects()
 
+# Add subprojects specified using LLVM_EXTERNAL_PROJECTS
+foreach(p ${LLVM_EXTERNAL_PROJECTS})
+  add_llvm_external_project(${p})
+endforeach(p)
+
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
Index: docs/CMake.rst
===================================================================
--- docs/CMake.rst
+++ docs/CMake.rst
@@ -328,6 +328,14 @@
   will not be used.  If the variable for an external project does not point
   to a valid path, then that project will not be built.
 
+**LLVM_EXTERNAL_PROJECTS**:STRING
+  Semicolon-separated list of additional external projects to build as part of
+  llvm. For each project LLVM_EXTERNAL_<NAME>_SOURCE_DIR have to be specified
+  with the path for the source code of the project. Example:
+  ``-DLLVM_EXTERNAL_PROJECTS="Foo;Bar"
+    -DLLVM_EXTERNAL_FOO_SOURCE_DIR=/src/foo
+    -DLLVM_EXTERNAL_BAR_SOURCE_DIR=/src/bar``.
+
 **LLVM_USE_OPROFILE**:BOOL
   Enable building OProfile JIT support. Defaults to OFF.
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20838.59132.patch
Type: text/x-patch
Size: 1200 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160531/229abc9c/attachment.bin>


More information about the llvm-commits mailing list