<div dir="ltr">Hi Chris!<div><br></div><div>I haven't been able to debug it much, but could this revision be the reason I can't do something like this? (all checkouts on the same dir, then tell cmake where to find them)</div><div><br></div><div><div>cmake -G Ninja /Users/filcab/dev/llvm/llvm -DLIBCXXABI_LIBCXX_PATH=~/dev/llvm/libcxx -DLIBCXXABI_LIBCXX_INCLUDES=~/dev/llvm/libcxx/include -DCMAKE_BUILD_T</div><div>YPE=Release -DLLVM_TARGETS_TO_BUILD=AArch64;ARM;X86 -DLLVM_TOOL_LLDB_BUILD=NO -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=/Users/filcab/dev/llvm/llvm/../clang -DLLVM_EXT</div><div>ERNAL_LLD_SOURCE_DIR=/Users/filcab/dev/llvm/llvm/../lld -DLLVM_EXTERNAL_LLDB_SOURCE_DIR=/Users/filcab/dev/llvm/llvm/../lldb -DLLVM_EXTERNAL_LIBCXXABI_SOURCE_D</div><div>IR=/Users/filcab/dev/llvm/llvm/../libcxxabi -DLLVM_EXTERNAL_LIBCXX_SOURCE_DIR=/Users/filcab/dev/llvm/llvm/../libcxx -DLLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR=/Us</div><div>ers/filcab/dev/llvm/llvm/../compiler-rt</div></div><div><br></div><div>CMake starts and everything looks fine, until I start getting this:</div><div>---------------------------------<br></div><div><div>-- Compiler-RT supported architectures: x86_64;i386</div><div>-- Looking for rpc/xdr.h</div><div>-- Looking for rpc/xdr.h - not found</div><div>-- Looking for tirpc/rpc/xdr.h</div><div>-- Looking for tirpc/rpc/xdr.h - not found</div><div>-- Found LibXml2: /usr/lib/libxml2.dylib (found version "2.9.0") </div><div>-- Clang version: 3.8.0</div><div>-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG</div><div>-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Success</div><div>CMake Error at /Users/filcab/dev/llvm/compiler-rt/CMakeLists.txt:44 (add_custom_target):</div><div>  add_custom_target cannot create target "compiler-rt" because another target</div><div>  with the same name already exists.  The existing target is a custom target</div><div>  created in source directory "/Users/filcab/dev/llvm/compiler-rt".  See</div><div>  documentation for policy CMP0002 for more details.</div><div><br></div><div><br></div><div>-- Compiler-RT supported architectures: x86_64;i386</div><div>CMake Error at /Users/filcab/dev/llvm/compiler-rt/include/CMakeLists.txt:26 (add_custom_target):</div><div>  add_custom_target cannot create target "compiler-rt-headers" because</div><div>  another target with the same name already exists.  The existing target is a</div><div>  custom target created in source directory</div><div>  "/Users/filcab/dev/llvm/compiler-rt/include".  See documentation for policy</div><div>  CMP0002 for more details.</div><div><br></div><div><br></div><div>CMake Error at /Users/filcab/dev/llvm/compiler-rt/cmake/Modules/SanitizerUtils.cmake:74 (add_custom_target):</div><div>  add_custom_target cannot create target "SanitizerLintCheck" because another</div><div>  target with the same name already exists.  The existing target is a custom</div><div>  target created in source directory</div><div>  "/Users/filcab/dev/llvm/compiler-rt/lib".  See documentation for policy</div><div>  CMP0002 for more details.</div><div>Call Stack (most recent call first):</div><div>  /Users/filcab/dev/llvm/compiler-rt/lib/CMakeLists.txt:5 (include)</div></div><div>---------------------------------</div><div><br></div><div>Also, libcxx cmake errors:</div><div>---------------------------------<br></div><div><div>CMake Error at /Users/filcab/dev/llvm/libcxx/lib/CMakeLists.txt:28 (add_library):</div><div>  add_library cannot create target "cxx" because another target with the same</div><div>  name already exists.  The existing target is a shared library created in</div><div>  source directory "/Users/filcab/dev/llvm/libcxx/lib".  See documentation</div><div>  for policy CMP0002 for more details.</div><div><br></div><div><br></div><div>CMake Error at /Users/filcab/dev/llvm/libcxx/lib/CMakeLists.txt:69 (target_link_libraries):</div><div>  Attempt to add link library "pthread" to target "cxx" which is not built in</div><div>  this directory.</div><div><br></div><div><br></div><div>CMake Error at /Users/filcab/dev/llvm/libcxx/lib/CMakeLists.txt:69 (target_link_libraries):</div><div>  Attempt to add link library "c" to target "cxx" which is not built in this</div><div>  directory.</div><div><br></div><div><br></div><div>CMake Error at /Users/filcab/dev/llvm/libcxx/lib/CMakeLists.txt:69 (target_link_libraries):</div><div>  Attempt to add link library "m" to target "cxx" which is not built in this</div><div>  directory.</div></div><div>---------------------------------<br></div><div>This goes on and on...<br></div><div><br></div><div>I might be able to debug more tomorrow, but you might know what's happening.</div><div><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">  Filipe<br></div></div>
<br><div class="gmail_quote">On Mon, Jul 20, 2015 at 1:36 PM, Chris Bieneman <span dir="ltr"><<a href="mailto:beanz@apple.com" target="_blank">beanz@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: cbieneman<br>
Date: Mon Jul 20 15:36:06 2015<br>
New Revision: 242705<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D242705-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=2xIx8Qbf0nEqV1GWemoGhwuLrq7pb-cej1EFUc4mBU0&s=3tFMy4Y6NdrRkf4zghthH6ON5ug2IX7ZGS6cK4e5SHg&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=242705&view=rev</a><br>
Log:<br>
[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that was already partially working.<br>
<br>
Re-landing r242059 which re-landed r241621... I'm really bad at this.<br>
<br>
Summary (r242059):<br>
This change re-lands r241621, with an additional fix that was required to allow tool sources to live outside the llvm checkout. It also no longer renames LLVM_EXTERNAL_*_SOURCE_DIR. This change was reverted in r241663, because it renamed several variables of the format LLVM_EXTERNAL_*_* to LLVM_TOOL_*_*.<br>
<br>
Summary (r241621):<br>
The tools CMakeLists file already had implicit tool registration, but there were a few things off about it that needed to be altered to make it work. This change addresses all that. The changes in this patch are:<br>
<br>
* factored out canonicalizing tool names from paths to CMake variables * removed the LLVM_IMPLICIT_PROJECT_IGNORE mechanism in favor of LLVM_EXTERNAL_${nameUPPER}_BUILD which I renamed to LLVM_TOOL_${nameUPPER}_BUILD because it applies to internal and external tools<br>
* removed ignore_llvm_tool_subdirectory() in favor of just setting LLVM_TOOL_${nameUPPER}_BUILD to Off<br>
* Added create_llvm_tool_options() to resolve a bug in add_llvm_external_project() - the old LLVM_EXTERNAL_${nameUPPER}_BUILD would not work on a clean CMake directory because the option could be created after it was set in code.<br>
* Removed all but the minimum required calls to add_llvm_external_project from tools/CMakeLists.txt<br>
<br>
Differential Revision: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10665&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=2xIx8Qbf0nEqV1GWemoGhwuLrq7pb-cej1EFUc4mBU0&s=nn9_rOccGCynIm4iobPWkv5sVYqnqyQoAsgF2EnO6Ho&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10665</a><br>
<br>
Modified:<br>
    llvm/trunk/cmake/modules/AddLLVM.cmake<br>
    llvm/trunk/tools/CMakeLists.txt<br>
<br>
Modified: llvm/trunk/cmake/modules/AddLLVM.cmake<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_cmake_modules_AddLLVM.cmake-3Frev-3D242705-26r1-3D242704-26r2-3D242705-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=2xIx8Qbf0nEqV1GWemoGhwuLrq7pb-cej1EFUc4mBU0&s=cRSAuCLNGXrJ9iVo5XTIeJyUh0-KnmIoTLlOjBYQ4Jo&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=242705&r1=242704&r2=242705&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/cmake/modules/AddLLVM.cmake (original)<br>
+++ llvm/trunk/cmake/modules/AddLLVM.cmake Mon Jul 20 15:36:06 2015<br>
@@ -676,6 +676,13 @@ macro(add_llvm_target target_name)<br>
   set( CURRENT_LLVM_TARGET LLVM${target_name} )<br>
 endmacro(add_llvm_target)<br>
<br>
+function(canonicalize_tool_name name output)<br>
+  string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" nameStrip ${name})<br>
+  string(REPLACE "-" "_" nameUNDERSCORE ${nameStrip})<br>
+  string(TOUPPER ${nameUNDERSCORE} nameUPPER)<br>
+  set(${output} "${nameUPPER}" PARENT_SCOPE)<br>
+endfunction(canonicalize_tool_name)<br>
+<br>
 # Add external project that may want to be built as part of llvm such as Clang,<br>
 # lld, and Polly. This adds two options. One for the source directory of the<br>
 # project, which defaults to ${CMAKE_CURRENT_SOURCE_DIR}/${name}. Another to<br>
@@ -686,56 +693,84 @@ macro(add_llvm_external_project name)<br>
   if("${add_llvm_external_dir}" STREQUAL "")<br>
     set(add_llvm_external_dir ${name})<br>
   endif()<br>
-  list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir}")<br>
-  string(REPLACE "-" "_" nameUNDERSCORE ${name})<br>
-  string(TOUPPER ${nameUNDERSCORE} nameUPPER)<br>
-  #TODO: Remove this check in a few days once it has circulated through<br>
-  # buildbots and people's checkouts (cbieneman - July 14, 2015)<br>
-  if("${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir}")<br>
-    unset(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR CACHE)<br>
-  endif()<br>
-  if(NOT LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR)<br>
-    set(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir}")<br>
-  else()<br>
-    set(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR<br>
+  canonicalize_tool_name(${name} nameUPPER)<br>
+  if (LLVM_TOOL_${nameUPPER}_BUILD)<br>
+    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir}/CMakeLists.txt)<br>
+        add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir} ${add_llvm_external_dir})<br>
+        set(LLVM_TOOL_${nameUPPER}_BUILD Off)<br>
+    elseif(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR)<br>
+      set(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR<br>
+        "${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR}"<br>
         CACHE PATH "Path to ${name} source directory")<br>
-  endif()<br>
-  if (EXISTS ${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR}/CMakeLists.txt)<br>
-    option(LLVM_EXTERNAL_${nameUPPER}_BUILD<br>
-           "Whether to build ${name} as part of LLVM" ON)<br>
-    if (LLVM_EXTERNAL_${nameUPPER}_BUILD)<br>
+      mark_as_advanced(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR)<br>
       add_subdirectory(${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR} ${add_llvm_external_dir})<br>
+      set(LLVM_TOOL_${nameUPPER}_BUILD Off)<br>
     endif()<br>
   endif()<br>
 endmacro(add_llvm_external_project)<br>
<br>
 macro(add_llvm_tool_subdirectory name)<br>
-  list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${CMAKE_CURRENT_SOURCE_DIR}/${name}")<br>
-  add_subdirectory(${name})<br>
+  add_llvm_external_project(${name})<br>
 endmacro(add_llvm_tool_subdirectory)<br>
<br>
-macro(ignore_llvm_tool_subdirectory name)<br>
-  list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${CMAKE_CURRENT_SOURCE_DIR}/${name}")<br>
-endmacro(ignore_llvm_tool_subdirectory)<br>
+function(get_project_name_from_src_var var output)<br>
+  string(REGEX MATCH "LLVM_EXTERNAL_(.*)_SOURCE_DIR"<br>
+         MACHED_TOOL "${var}")<br>
+  if(MACHED_TOOL)<br>
+    set(${output} ${CMAKE_MATCH_1} PARENT_SCOPE)<br>
+  else()<br>
+    set(${output} PARENT_SCOPE)<br>
+  endif()<br>
+endfunction()<br>
+<br>
+function(create_llvm_tool_options)<br>
+  file(GLOB sub-dirs "${CMAKE_CURRENT_SOURCE_DIR}/*")<br>
+  foreach(dir ${sub-dirs})<br>
+    if(IS_DIRECTORY "${dir}" AND EXISTS "${dir}/CMakeLists.txt")<br>
+      canonicalize_tool_name(${dir} name)<br>
+      option(LLVM_TOOL_${name}_BUILD<br>
+           "Whether to build ${name} as part of LLVM" On)<br>
+      mark_as_advanced(LLVM_TOOL_${name}_BUILD)<br>
+    endif()<br>
+  endforeach()<br>
+  get_cmake_property(variableNames VARIABLES)<br>
+  foreach (variableName ${variableNames})<br>
+    get_project_name_from_src_var(${variableName} projectName)<br>
+    if(projectName)<br>
+      option(LLVM_TOOL_${projectName}_BUILD<br>
+           "Whether to build ${name} as part of LLVM" On)<br>
+      mark_as_advanced(LLVM_TOOL_${name}_BUILD)<br>
+    endif()<br>
+  endforeach()<br>
+endfunction(create_llvm_tool_options)<br>
<br>
-function(add_llvm_implicit_external_projects)<br>
+function(add_llvm_implicit_projects)<br>
   set(list_of_implicit_subdirs "")<br>
   file(GLOB sub-dirs "${CMAKE_CURRENT_SOURCE_DIR}/*")<br>
   foreach(dir ${sub-dirs})<br>
-    if(IS_DIRECTORY "${dir}")<br>
-      list(FIND LLVM_IMPLICIT_PROJECT_IGNORE "${dir}" tool_subdir_ignore)<br>
-      if( tool_subdir_ignore EQUAL -1<br>
-          AND EXISTS "${dir}/CMakeLists.txt")<br>
+    if(IS_DIRECTORY "${dir}" AND EXISTS "${dir}/CMakeLists.txt")<br>
+      canonicalize_tool_name(${dir} name)<br>
+      if (LLVM_TOOL_${name}_BUILD)<br>
         get_filename_component(fn "${dir}" NAME)<br>
         list(APPEND list_of_implicit_subdirs "${fn}")<br>
       endif()<br>
     endif()<br>
   endforeach()<br>
<br>
+  get_cmake_property(variableNames VARIABLES)<br>
+  foreach (variableName ${variableNames})<br>
+    get_project_name_from_src_var(${variableName} projectName)<br>
+    if(projectName)<br>
+      string(TOLOWER ${projectName} projectName)<br>
+      list(APPEND list_of_implicit_subdirs ${projectName})<br>
+    endif()<br>
+  endforeach()<br>
+<br>
+  list(REMOVE_DUPLICATES list_of_implicit_subdirs)<br>
   foreach(external_proj ${list_of_implicit_subdirs})<br>
     add_llvm_external_project("${external_proj}")<br>
   endforeach()<br>
-endfunction(add_llvm_implicit_external_projects)<br>
+endfunction(add_llvm_implicit_projects)<br>
<br>
 # Generic support for adding a unittest.<br>
 function(add_unittest test_suite test_name)<br>
<br>
Modified: llvm/trunk/tools/CMakeLists.txt<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_CMakeLists.txt-3Frev-3D242705-26r1-3D242704-26r2-3D242705-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=2xIx8Qbf0nEqV1GWemoGhwuLrq7pb-cej1EFUc4mBU0&s=E_LtMbyR9UYAmbxT7PyuAMHGqXOqhoWl4gIEf8kDwVw&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/CMakeLists.txt?rev=242705&r1=242704&r2=242705&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/CMakeLists.txt (original)<br>
+++ llvm/trunk/tools/CMakeLists.txt Mon Jul 20 15:36:06 2015<br>
@@ -1,85 +1,37 @@<br>
-add_llvm_tool_subdirectory(llvm-config)<br>
+# This file will recurse into all subdirectories that contain CMakeLists.txt<br>
+# Setting variables that match the pattern LLVM_TOOL_{NAME}_BUILD to Off will<br>
+# prevent traversing into a directory.<br>
+#<br>
+# The only tools that need to be explicitly added are ones that have explicit<br>
+# ordering requirements.<br>
+<br>
+# Iterates all the subdirectories to create CMake options to enable/disable<br>
+# traversing each directory.<br>
+create_llvm_tool_options()<br>
<br>
 # Build polly before the tools: the tools link against polly when<br>
 # LINK_POLLY_INTO_TOOLS is set.<br>
 if(WITH_POLLY)<br>
   add_llvm_external_project(polly)<br>
-else(WITH_POLLY)<br>
-  list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly")<br>
-endif(WITH_POLLY)<br>
-<br>
-if( LLVM_BUILD_LLVM_DYLIB )<br>
-  add_llvm_tool_subdirectory(llvm-shlib)<br>
 else()<br>
-  ignore_llvm_tool_subdirectory(llvm-shlib)<br>
+  set(LLVM_TOOL_POLLY_BUILD Off)<br>
 endif()<br>
<br>
-add_llvm_tool_subdirectory(opt)<br>
-add_llvm_tool_subdirectory(llvm-as)<br>
-add_llvm_tool_subdirectory(llvm-dis)<br>
-add_llvm_tool_subdirectory(llvm-mc)<br>
-<br>
-add_llvm_tool_subdirectory(llc)<br>
-add_llvm_tool_subdirectory(llvm-ar)<br>
-add_llvm_tool_subdirectory(llvm-nm)<br>
-add_llvm_tool_subdirectory(llvm-size)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-cov)<br>
-add_llvm_tool_subdirectory(llvm-profdata)<br>
-add_llvm_tool_subdirectory(llvm-link)<br>
-add_llvm_tool_subdirectory(lli)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-extract)<br>
-add_llvm_tool_subdirectory(llvm-diff)<br>
-add_llvm_tool_subdirectory(macho-dump)<br>
-add_llvm_tool_subdirectory(llvm-objdump)<br>
-add_llvm_tool_subdirectory(llvm-readobj)<br>
-add_llvm_tool_subdirectory(llvm-rtdyld)<br>
-add_llvm_tool_subdirectory(llvm-dwarfdump)<br>
-add_llvm_tool_subdirectory(dsymutil)<br>
-add_llvm_tool_subdirectory(llvm-cxxdump)<br>
-if( LLVM_USE_INTEL_JITEVENTS )<br>
-  add_llvm_tool_subdirectory(llvm-jitlistener)<br>
-else()<br>
-  ignore_llvm_tool_subdirectory(llvm-jitlistener)<br>
-endif( LLVM_USE_INTEL_JITEVENTS )<br>
-<br>
-add_llvm_tool_subdirectory(bugpoint)<br>
-add_llvm_tool_subdirectory(bugpoint-passes)<br>
-add_llvm_tool_subdirectory(llvm-bcanalyzer)<br>
-add_llvm_tool_subdirectory(llvm-stress)<br>
-add_llvm_tool_subdirectory(llvm-mcmarkup)<br>
-<br>
-add_llvm_tool_subdirectory(verify-uselistorder)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-symbolizer)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-c-test)<br>
-<br>
-add_llvm_tool_subdirectory(obj2yaml)<br>
-add_llvm_tool_subdirectory(yaml2obj)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-go)<br>
-<br>
-add_llvm_tool_subdirectory(llvm-pdbdump)<br>
-<br>
-if(NOT CYGWIN AND LLVM_ENABLE_PIC)<br>
-  add_llvm_tool_subdirectory(lto)<br>
-  add_llvm_tool_subdirectory(llvm-lto)<br>
-else()<br>
-  ignore_llvm_tool_subdirectory(lto)<br>
-  ignore_llvm_tool_subdirectory(llvm-lto)<br>
+if(NOT LLVM_BUILD_LLVM_DYLIB )<br>
+  set(LLVM_TOOL_LLVM_SHLIB_BUILD Off)<br>
 endif()<br>
<br>
-add_llvm_tool_subdirectory(gold)<br>
+if(NOT LLVM_USE_INTEL_JITEVENTS )<br>
+  set(LLVM_TOOL_LLVM_JITLISTENER_BUILD Off)<br>
+endif()<br>
<br>
-add_llvm_external_project(clang)<br>
-add_llvm_external_project(llgo)<br>
-add_llvm_external_project(lld)<br>
-add_llvm_external_project(lldb)<br>
+if(CYGWIN OR NOT LLVM_ENABLE_PIC)<br>
+  set(LLVM_TOOL_LTO_BUILD Off)<br>
+  set(LLVM_TOOL_LLVM_LTO_BUILD Off)<br>
+endif()<br>
<br>
 # Automatically add remaining sub-directories containing a 'CMakeLists.txt'<br>
 # file as external projects.<br>
-add_llvm_implicit_external_projects()<br>
+add_llvm_implicit_projects()<br>
<br>
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>