Teach LLVMConfig to avoid modifying CMAKE_MODULE_PATH
authorNAKAMURA Takumi <geek4civic@gmail.com>
Sun, 9 Feb 2014 16:35:40 +0000 (16:35 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Sun, 9 Feb 2014 16:35:40 +0000 (16:35 +0000)
Do not modify this value on the application's behalf and just ensure API
modules are always available next to the LLVMConfig module.  This is
already the case in the install tree so use file(COPY) to make it so in
the build tree.  Include the LLVM-Config API module from next to the
LLVMConfig location.

Contributed by Brad King.

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

cmake/modules/CMakeLists.txt
cmake/modules/LLVMConfig.cmake.in

index b48018d51f91130b7aea4fc34c5587af1c552732..169418c6b9beccab2b66faf81de77f6a7a6b2e7e 100644 (file)
@@ -15,6 +15,16 @@ configure_file(
   ${llvm_cmake_builddir}/LLVMConfig.cmake
   @ONLY)
 
+# For compatibility with projects that include(LLVMConfig)
+# via CMAKE_MODULE_PATH, place API modules next to it.
+# This should be removed in the future.
+file(COPY .
+  DESTINATION ${llvm_cmake_builddir}
+  FILES_MATCHING PATTERN *.cmake
+  PATTERN .svn EXCLUDE
+  PATTERN CMakeFiles EXCLUDE
+  )
+
 configure_file(
   LLVMConfigVersion.cmake.in
   ${llvm_cmake_builddir}/LLVMConfigVersion.cmake
index 5e38d82f599e1d9a99b573726cf832f8fa5a92db..224a26352d37ee7822b16f697fb2c52c18ea96cb 100644 (file)
@@ -41,16 +41,6 @@ set(LLVM_INCLUDE_DIRS ${LLVM_INSTALL_PREFIX}/include)
 set(LLVM_LIBRARY_DIRS ${LLVM_INSTALL_PREFIX}/lib)
 set(LLVM_DEFINITIONS "-D__STDC_LIMIT_MACROS" "-D__STDC_CONSTANT_MACROS")
 
-# We try to include using the current setting of CMAKE_MODULE_PATH,
-# which suppossedly was filled by the user with the directory where
-# this file was installed:
-include( LLVM-Config OPTIONAL RESULT_VARIABLE LLVMCONFIG_INCLUDED )
-
-# If failed, we assume that this is an un-installed build:
-if( NOT LLVMCONFIG_INCLUDED )
-  set(CMAKE_MODULE_PATH
-    ${CMAKE_MODULE_PATH}
-    "@LLVM_SOURCE_DIR@/cmake/modules")
-  include( LLVM-Config )
-endif()
-
+get_filename_component(_SELF_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
+include(${_SELF_DIR}/LLVM-Config.cmake)
+unset(_SELF_DIR)