[llvm] r244633 - [cmake] Add helper for finding potentially external projects

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 11 10:16:35 PDT 2015


Author: rnk
Date: Tue Aug 11 12:16:35 2015
New Revision: 244633

URL: http://llvm.org/viewvc/llvm-project?rev=244633&view=rev
Log:
[cmake] Add helper for finding potentially external projects

I plan to use this from compiler-rt, but it's useful for any LLVM
project that depends on more than just LLVM.

Modified:
    llvm/trunk/cmake/modules/AddLLVM.cmake

Modified: llvm/trunk/cmake/modules/AddLLVM.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=244633&r1=244632&r2=244633&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/AddLLVM.cmake (original)
+++ llvm/trunk/cmake/modules/AddLLVM.cmake Tue Aug 11 12:16:35 2015
@@ -717,6 +717,23 @@ macro(add_llvm_tool_subdirectory name)
   add_llvm_external_project(${name})
 endmacro(add_llvm_tool_subdirectory)
 
+# Finds a (potentially external) project that normally lives at
+# llvm/${subdir}/${name}. For example, to find clang:
+#   find_llvm_external_project(tools clang CLANG_SRC)
+# Returns nothing if the project is not configured to build.
+function(find_llvm_external_project subdir name path_out)
+  canonicalize_tool_name(${name} nameUPPER)
+  if (NOT LLVM_TOOL_${nameUPPER}_BUILD)
+    set(${path_out} PARENT_SCOPE)
+  elseif (EXISTS LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR)
+    set(${path_out} LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR PARENT_SCOPE)
+  elseif (EXISTS ${LLVM_MAIN_SRC_DIR}/${subdir}/${name})
+    set(${path_out} ${LLVM_MAIN_SRC_DIR}/${subdir}/${name} PARENT_SCOPE)
+  else()
+    set(${path_out} PARENT_SCOPE)
+  endif()
+endfunction(find_llvm_external_project)
+
 function(get_project_name_from_src_var var output)
   string(REGEX MATCH "LLVM_EXTERNAL_(.*)_SOURCE_DIR"
          MACHED_TOOL "${var}")




More information about the llvm-commits mailing list