[Bf-blender-cvs] [1282be0f827] master: update llvm + clang to 6.0.1 and add openmp for macOS

Arto Kitula noreply at git.blender.org
Thu Aug 9 16:57:23 CEST 2018


Commit: 1282be0f8278d24809d1781713c5adcf0ef5e936
Author: Arto Kitula
Date:   Thu Aug 9 17:57:12 2018 +0300
Branches: master
https://developer.blender.org/rB1282be0f8278d24809d1781713c5adcf0ef5e936

update llvm + clang to 6.0.1 and add openmp for macOS

===================================================================

M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/clang.cmake
M	build_files/build_environment/cmake/llvm.cmake
A	build_files/build_environment/cmake/openmp.cmake
M	build_files/build_environment/cmake/versions.cmake
D	build_files/build_environment/patches/clang.diff
D	build_files/build_environment/patches/llvm-alloca-fix.diff
M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/tools

===================================================================

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index f177560c5f6..4643c48fa72 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -68,6 +68,9 @@ include(cmake/opencollada.cmake)
 include(cmake/opencolorio.cmake)
 include(cmake/llvm.cmake)
 include(cmake/clang.cmake)
+if(APPLE)
+  include(cmake/openmp.cmake)
+endif()
 include(cmake/openimageio.cmake)
 include(cmake/tiff.cmake)
 include(cmake/flexbison.cmake)
@@ -77,6 +80,7 @@ include(cmake/openvdb.cmake)
 include(cmake/python.cmake)
 include(cmake/python_site_packages.cmake)
 include(cmake/numpy.cmake)
+
 if(WITH_WEBP)
 	include(cmake/webp.cmake)
 endif()
diff --git a/build_files/build_environment/cmake/clang.cmake b/build_files/build_environment/cmake/clang.cmake
index 9a2705bc8be..b2e6da73793 100644
--- a/build_files/build_environment/cmake/clang.cmake
+++ b/build_files/build_environment/cmake/clang.cmake
@@ -21,12 +21,12 @@ set(CLANG_EXTRA_ARGS
 	-DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm
 	-DLLVM_USE_CRT_RELEASE=MT
 	-DLLVM_USE_CRT_DEBUG=MTd
+	-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
 )
 ExternalProject_Add(external_clang
 	URL ${CLANG_URI}
 	DOWNLOAD_DIR ${DOWNLOAD_DIR}
 	URL_HASH MD5=${CLANG_HASH}
-	PATCH_COMMAND ${PATCH_CMD} -p 2 -N -R -d ${BUILD_DIR}/clang/src/external_clang < ${PATCH_DIR}/clang.diff
 	PREFIX ${BUILD_DIR}/clang
 	CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clang ${DEFAULT_CMAKE_FLAGS} ${CLANG_EXTRA_ARGS}
 	INSTALL_DIR ${LIBDIR}/clang
diff --git a/build_files/build_environment/cmake/llvm.cmake b/build_files/build_environment/cmake/llvm.cmake
index 6c59101f543..d6f1920a114 100644
--- a/build_files/build_environment/cmake/llvm.cmake
+++ b/build_files/build_environment/cmake/llvm.cmake
@@ -38,7 +38,6 @@ ExternalProject_Add(ll
 	URL_HASH MD5=${LLVM_HASH}
 	CMAKE_GENERATOR ${LLVM_GENERATOR}
 	PREFIX ${BUILD_DIR}/ll
-	PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ll/src/ll < ${PATCH_DIR}/llvm-alloca-fix.diff
 	CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
 	INSTALL_DIR ${LIBDIR}/llvm
 )
diff --git a/build_files/build_environment/cmake/openmp.cmake b/build_files/build_environment/cmake/openmp.cmake
new file mode 100644
index 00000000000..ba8e6248126
--- /dev/null
+++ b/build_files/build_environment/cmake/openmp.cmake
@@ -0,0 +1,32 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+
+ExternalProject_Add(external_openmp
+	URL ${OPENMP_URI}
+	DOWNLOAD_DIR ${DOWNLOAD_DIR}
+	URL_HASH MD5=${OPENMP_HASH}
+	PREFIX ${BUILD_DIR}/openmp
+	CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
+	INSTALL_DIR ${LIBDIR}/clang
+)
+
+add_dependencies(
+	external_openmp
+	external_clang
+)
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index 361787fa956..fc58a0a8cc8 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -103,12 +103,15 @@ set(OPENCOLLADA_HASH 23db5087faed4bc4cc1dfe456c0d4701)
 set(OPENCOLORIO_URI https://github.com/imageworks/OpenColorIO/archive/6de971097c7f552300f669ed69ca0b6cf5a70843.zip)
 set(OPENCOLORIO_HASH c9de0fd98f26ce6f2e08d617ca68b8e4)
 
-set(LLVM_VERSION 3.4.2)
-set(LLVM_URI http://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.gz)
-set(LLVM_HASH a20669f75967440de949ac3b1bad439c)
+set(LLVM_VERSION 6.0.1)
+set(LLVM_URI http://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz)
+set(LLVM_HASH c88c98709300ce2c285391f387fecce0)
 
-set(CLANG_URI http://releases.llvm.org/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.gz)
-set(CLANG_HASH 87945973b7c73038871c5f849a818588)
+set(CLANG_URI http://releases.llvm.org/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.xz)
+set(CLANG_HASH 4e419bd4e3b55aa06d872320f754bd85)
+
+set(OPENMP_URI http://releases.llvm.org/${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
+set(OPENMP_HASH 4826402ae3633c36c51ba4d0e5527d30)
 
 set(OPENIMAGEIO_VERSION 1.7.15)
 set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.zip)
diff --git a/build_files/build_environment/patches/clang.diff b/build_files/build_environment/patches/clang.diff
deleted file mode 100644
index 724e92f8163..00000000000
--- a/build_files/build_environment/patches/clang.diff
+++ /dev/null
@@ -1,127 +0,0 @@
---- cfe/trunk/lib/Serialization/ASTWriter.cpp
-+++ cfe/trunk/lib/Serialization/ASTWriter.cpp
-@@ -56,14 +56,14 @@
- using namespace clang::serialization;
- 
- template <typename T, typename Allocator>
--static StringRef bytes(const std::vector<T, Allocator> &v) {
-+static StringRef data(const std::vector<T, Allocator> &v) {
-   if (v.empty()) return StringRef();
-   return StringRef(reinterpret_cast<const char*>(&v[0]),
-                          sizeof(T) * v.size());
- }
- 
- template <typename T>
--static StringRef bytes(const SmallVectorImpl<T> &v) {
-+static StringRef data(const SmallVectorImpl<T> &v) {
-   return StringRef(reinterpret_cast<const char*>(v.data()),
-                          sizeof(T) * v.size());
- }
-@@ -1385,7 +1385,7 @@
-   Record.push_back(INPUT_FILE_OFFSETS);
-   Record.push_back(InputFileOffsets.size());
-   Record.push_back(UserFilesNum);
--  Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, bytes(InputFileOffsets));
-+  Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, data(InputFileOffsets));
- }
- 
- //===----------------------------------------------------------------------===//
-@@ -1771,7 +1771,7 @@
-   Record.push_back(SOURCE_LOCATION_OFFSETS);
-   Record.push_back(SLocEntryOffsets.size());
-   Record.push_back(SourceMgr.getNextLocalOffset() - 1); // skip dummy
--  Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, bytes(SLocEntryOffsets));
-+  Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, data(SLocEntryOffsets));
- 
-   // Write the source location entry preloads array, telling the AST
-   // reader which source locations entries it should load eagerly.
-@@ -2087,7 +2087,7 @@
-   Record.push_back(MacroOffsets.size());
-   Record.push_back(FirstMacroID - NUM_PREDEF_MACRO_IDS);
-   Stream.EmitRecordWithBlob(MacroOffsetAbbrev, Record,
--                            bytes(MacroOffsets));
-+                            data(MacroOffsets));
- }
- 
- void ASTWriter::WritePreprocessorDetail(PreprocessingRecord &PPRec) {
-@@ -2185,7 +2185,7 @@
-     Record.push_back(PPD_ENTITIES_OFFSETS);
-     Record.push_back(FirstPreprocessorEntityID - NUM_PREDEF_PP_ENTITY_IDS);
-     Stream.EmitRecordWithBlob(PPEOffsetAbbrev, Record,
--                              bytes(PreprocessedEntityOffsets));
-+                              data(PreprocessedEntityOffsets));
-   }
- }
- 
-@@ -2548,7 +2548,7 @@
-   Record.push_back(CXX_BASE_SPECIFIER_OFFSETS);
-   Record.push_back(CXXBaseSpecifiersOffsets.size());
-   Stream.EmitRecordWithBlob(BaseSpecifierOffsetAbbrev, Record,
--                            bytes(CXXBaseSpecifiersOffsets));
-+                            data(CXXBaseSpecifiersOffsets));
- }
- 
- //===----------------------------------------------------------------------===//
-@@ -2623,7 +2623,7 @@
-     Decls.push_back(std::make_pair((*D)->getKind(), GetDeclRef(*D)));
- 
-   ++NumLexicalDeclContexts;
--  Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, bytes(Decls));
-+  Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, data(Decls));
-   return Offset;
- }
- 
-@@ -2642,7 +2642,7 @@
-   Record.push_back(TYPE_OFFSET);
-   Record.push_back(TypeOffsets.size());
-   Record.push_back(FirstTypeID - NUM_PREDEF_TYPE_IDS);
--  Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, bytes(TypeOffsets));
-+  Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, data(TypeOffsets));
- 
-   // Write the declaration offsets array
-   Abbrev = new BitCodeAbbrev();
-@@ -2655,7 +2655,7 @@
-   Record.push_back(DECL_OFFSET);
-   Record.push_back(DeclOffsets.size());
-   Record.push_back(FirstDeclID - NUM_PREDEF_DECL_IDS);
--  Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, bytes(DeclOffsets));
-+  Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, data(DeclOffsets));
- }
- 
- void ASTWriter::WriteFileDeclIDsMap() {
-@@ -2680,7 +2680,7 @@
-   unsigned AbbrevCode = Stream.EmitAbbrev(Abbrev);
-   Record.push_back(FILE_SORTED_DECLS);
-   Record.push_back(FileSortedIDs.size());
--  Stream.EmitRecordWithBlob(AbbrevCode, Record, bytes(FileSortedIDs));
-+  Stream.EmitRecordWithBlob(AbbrevCode, Record, data(FileSortedIDs));
- }
- 
- void ASTWriter::WriteComments() {
-@@ -2893,7 +2893,7 @@
-     Record.push_back(SelectorOffsets.size());
-     Record.push_back(FirstSelectorID - NUM_PREDEF_SELECTOR_IDS);
-     Stream.EmitRecordWithBlob(SelectorOffsetAbbrev, Record,
--                              bytes(SelectorOffsets));
-+                              data(SelectorOffsets));
-   }
- }
- 
-@@ -3253,7 +3253,7 @@
-   Record.push_back(IdentifierOffsets.size());
-   Record.push_back(FirstIdentID - NUM_PREDEF_IDENT_IDS);
-   Stream.EmitRecordWithBlob(IdentifierOffsetAbbrev, Record,
--                            bytes(IdentifierOffsets));
-+                            data(IdentifierOffsets));
- }
- 
- //===----------------------------------------------------------------------===//
-@@ -4046,7 +4046,7 @@
-   Record.clear();
-   Record.push_back(TU_UPDATE_LEXICAL);
-   Stream.EmitRecordWithBlob(TuUpdateLexicalAbbrev, Record,
--                    

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list