Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/build_environment/cmake/clang.cmake')
-rw-r--r--build_files/build_environment/cmake/clang.cmake34
1 files changed, 32 insertions, 2 deletions
diff --git a/build_files/build_environment/cmake/clang.cmake b/build_files/build_environment/cmake/clang.cmake
index 9de0ec1b182..d8d83619e1a 100644
--- a/build_files/build_environment/cmake/clang.cmake
+++ b/build_files/build_environment/cmake/clang.cmake
@@ -17,13 +17,14 @@
# ***** END GPL LICENSE BLOCK *****
set(CLANG_EXTRA_ARGS
- -DCLANG_PATH_TO_LLVM_SOURCE=${BUILD_DIR}/ll/src/ll
- -DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm
+ -DLLVM_DIR="${LIBDIR}/llvm/lib/cmake/llvm/"
-DLLVM_USE_CRT_RELEASE=MD
-DLLVM_USE_CRT_DEBUG=MDd
-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
)
+set(BUILD_CLANG_TOOLS OFF)
+
if(WIN32)
set(CLANG_GENERATOR "Ninja")
else()
@@ -31,11 +32,32 @@ else()
endif()
if(APPLE)
+ set(BUILD_CLANG_TOOLS ON)
set(CLANG_EXTRA_ARGS ${CLANG_EXTRA_ARGS}
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
)
endif()
+if(BUILD_CLANG_TOOLS)
+ # ExternalProject_Add does not allow multiple tarballs to be
+ # downloaded. Work around this by having an empty build action
+ # for the extra tools, and referring the clang build to the location
+ # of the clang-tools-extra source.
+ ExternalProject_Add(external_clang_tools
+ URL ${CLANG_TOOLS_URI}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH MD5=${CLANG_TOOLS_HASH}
+ INSTALL_DIR ${LIBDIR}/clang_tools
+ PREFIX ${BUILD_DIR}/clang_tools
+ CONFIGURE_COMMAND echo "."
+ BUILD_COMMAND echo "."
+ INSTALL_COMMAND echo "."
+ )
+ list(APPEND CLANG_EXTRA_ARGS
+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=${BUILD_DIR}/clang_tools/src/external_clang_tools/
+ )
+endif()
+
ExternalProject_Add(external_clang
URL ${CLANG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
@@ -65,6 +87,14 @@ add_dependencies(
ll
)
+if(BUILD_CLANG_TOOLS)
+ # `external_clang_tools` is for downloading the source, not compiling it.
+ add_dependencies(
+ external_clang
+ external_clang_tools
+ )
+endif()
+
# We currently do not build libxml2 on Windows.
if(NOT WIN32)
add_dependencies(