Compare commits
2 Commits
eevee-dof-
...
buildbot-l
Author | SHA1 | Date | |
---|---|---|---|
2cbc328bdc | |||
314783f2e7 |
@@ -238,7 +238,6 @@ ForEachMacros:
|
|||||||
- LISTBASE_FOREACH_BACKWARD
|
- LISTBASE_FOREACH_BACKWARD
|
||||||
- LISTBASE_FOREACH_MUTABLE
|
- LISTBASE_FOREACH_MUTABLE
|
||||||
- LISTBASE_FOREACH_BACKWARD_MUTABLE
|
- LISTBASE_FOREACH_BACKWARD_MUTABLE
|
||||||
- LISTBASE_FOREACH_INDEX
|
|
||||||
- MAN_ITER_AXES_BEGIN
|
- MAN_ITER_AXES_BEGIN
|
||||||
- NODE_INSTANCE_HASH_ITER
|
- NODE_INSTANCE_HASH_ITER
|
||||||
- NODE_SOCKET_TYPES_BEGIN
|
- NODE_SOCKET_TYPES_BEGIN
|
||||||
@@ -253,8 +252,8 @@ ForEachMacros:
|
|||||||
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
|
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
|
||||||
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
|
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
|
||||||
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
|
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
|
||||||
- SEQ_ALL_BEGIN
|
- SEQP_BEGIN
|
||||||
- SEQ_CURRENT_BEGIN
|
- SEQ_BEGIN
|
||||||
- SURFACE_QUAD_ITER_BEGIN
|
- SURFACE_QUAD_ITER_BEGIN
|
||||||
- foreach
|
- foreach
|
||||||
- ED_screen_areas_iter
|
- ED_screen_areas_iter
|
||||||
|
47
.clang-tidy
47
.clang-tidy
@@ -1,47 +0,0 @@
|
|||||||
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
|
||||||
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
|
||||||
|
|
||||||
Checks: >
|
|
||||||
-*,
|
|
||||||
readability-*,
|
|
||||||
-readability-uppercase-literal-suffix,
|
|
||||||
-readability-magic-numbers,
|
|
||||||
-readability-isolate-declaration,
|
|
||||||
-readability-convert-member-functions-to-static,
|
|
||||||
-readability-implicit-bool-conversion,
|
|
||||||
-readability-avoid-const-params-in-decls,
|
|
||||||
-readability-simplify-boolean-expr,
|
|
||||||
-readability-make-member-function-const,
|
|
||||||
|
|
||||||
-readability-misleading-indentation,
|
|
||||||
|
|
||||||
-readability-use-anyofallof,
|
|
||||||
|
|
||||||
-readability-function-cognitive-complexity,
|
|
||||||
|
|
||||||
bugprone-*,
|
|
||||||
-bugprone-narrowing-conversions,
|
|
||||||
-bugprone-unhandled-self-assignment,
|
|
||||||
-bugprone-branch-clone,
|
|
||||||
-bugprone-macro-parentheses,
|
|
||||||
-bugprone-reserved-identifier,
|
|
||||||
|
|
||||||
-bugprone-sizeof-expression,
|
|
||||||
-bugprone-integer-division,
|
|
||||||
|
|
||||||
-bugprone-redundant-branch-condition,
|
|
||||||
|
|
||||||
modernize-*,
|
|
||||||
-modernize-use-auto,
|
|
||||||
-modernize-use-trailing-return-type,
|
|
||||||
-modernize-avoid-c-arrays,
|
|
||||||
-modernize-use-equals-default,
|
|
||||||
-modernize-use-nodiscard,
|
|
||||||
-modernize-loop-convert,
|
|
||||||
-modernize-pass-by-value,
|
|
||||||
-modernize-use-default-member-init,
|
|
||||||
-modernize-raw-string-literal,
|
|
||||||
-modernize-avoid-bind,
|
|
||||||
-modernize-use-transparent-functors,
|
|
||||||
|
|
||||||
WarningsAsErrors: '*'
|
|
@@ -1,104 +0,0 @@
|
|||||||
# git config blame.ignoreRevsFile .git-blame-ignore-revs
|
|
||||||
#
|
|
||||||
# After running the above, commits listed in this file will be
|
|
||||||
# ignored by git blame. The blame will be shifted to the person
|
|
||||||
# who edited the line(s) before the ignored commit.
|
|
||||||
#
|
|
||||||
# To disable this ignorance for a command, run as follows
|
|
||||||
# git blame --ignore-revs-file="" <other options>
|
|
||||||
#
|
|
||||||
# Changes that belong here:
|
|
||||||
# - Massive comment, doxy-sections, or spelling corrections.
|
|
||||||
# - Clang-format, PEP8 or other automated changes which are *strictly* "no functional change".
|
|
||||||
# - Several commits should be added to this list at once, because adding
|
|
||||||
# one extra commit (to edit this file) after every cleanup is noisy.
|
|
||||||
# - No clang-tidy changes.
|
|
||||||
#
|
|
||||||
# Note:
|
|
||||||
# - The comment above the SHA should be the first line of the commit.
|
|
||||||
# - It is fine to pack together similar commits if they have the same explanatory comment.
|
|
||||||
# - Use only 40 character git SHAs; not smaller ones, not prefixed with rB.
|
|
||||||
#
|
|
||||||
# https://git-scm.com/docs/git-blame/2.23.0
|
|
||||||
|
|
||||||
# white space commit. (2 spaces -> tab).
|
|
||||||
0a3694cd6ebec710da7110e9f168a72d47c71ee0
|
|
||||||
|
|
||||||
# Cycles: Cleanup, spacing after preprocessor
|
|
||||||
cb4b5e12abf1fc6cf9ffc0944e0a1bc406286c63
|
|
||||||
|
|
||||||
# ClangFormat: apply to source, most of intern
|
|
||||||
e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1
|
|
||||||
|
|
||||||
# Code Style: use "#pragma once" in source directory
|
|
||||||
91694b9b58ab953f3b313be9389cc1303e472fc2
|
|
||||||
|
|
||||||
# Code Style: use "#pragma once" in some newer headers
|
|
||||||
8198dbb888856b8c11757586df02aca15f132f90
|
|
||||||
|
|
||||||
# Code Style: use "#pragma once" in intern/ghost
|
|
||||||
1b1129f82a9cf316b54fbc025f8cfcc1a74b8589
|
|
||||||
|
|
||||||
# Cleanup: mostly comments, use doxy syntax & typos
|
|
||||||
e0cb02587012b4b2f4b18363dc7d0a7da2c02093
|
|
||||||
|
|
||||||
# Cleanup: use C comments for descriptive text
|
|
||||||
2abfcebb0eb7989e3d1e7d03f37ecf5c088210af
|
|
||||||
|
|
||||||
# use lowercase for cmake builtin names and macros, remove contents in else() and endif() which is no longer needed.
|
|
||||||
afacd184982e58a9c830a3d5366e25983939a7ba
|
|
||||||
|
|
||||||
# Spelling: It's Versus Its
|
|
||||||
3a7fd309fce89213b0224b3c6807adb2d1fe7ca8
|
|
||||||
|
|
||||||
# Spelling: Then Versus Than
|
|
||||||
d1eefc421544e2ea632fb35cb6bcaade4c39ce6b
|
|
||||||
|
|
||||||
# Spelling: Miscellaneous
|
|
||||||
84ef3b80de4915a24a9fd2fd214d0fa44e59b854
|
|
||||||
|
|
||||||
# Spelling: Loose Versus Lose
|
|
||||||
c0a6bc19794c69843c38451c762e91bc10136e0f
|
|
||||||
|
|
||||||
# Spelling: Apart Versus A Part
|
|
||||||
3d26cd01b9ba6381eb165e11536345ae652dfb41
|
|
||||||
|
|
||||||
# Cleanup: use 2 space indentation for CMake
|
|
||||||
3076d95ba441cd32706a27d18922a30f8fd28b8a
|
|
||||||
|
|
||||||
# Cleanup: use over-line for doxy comments
|
|
||||||
4b188bb08cf5aaae3c68ab57bbcfa037eef1ac10
|
|
||||||
|
|
||||||
# Cleanup: General comment style clean up of graph_edit.c and fcurve.c
|
|
||||||
0105f146bb40bd609ccbda3d3f6aeb8e14ad3f9e
|
|
||||||
|
|
||||||
# Cleanup: pep8 (indentation, spacing, long lines)
|
|
||||||
41d2d6da0c96d351b47acb64d3e0decdba16cb16
|
|
||||||
|
|
||||||
# Cleanup: pep8, blank lines
|
|
||||||
bab9de2a52929fe2b45ecddb1eb09da3378e303b
|
|
||||||
|
|
||||||
# Cleanup: PEP8 for python changes
|
|
||||||
1e7e94588daa66483190f45a9de5e98228f80e05
|
|
||||||
|
|
||||||
# GPencil: Cleanup pep8
|
|
||||||
a09cc3ee1a99f2cd5040bbf30c8ab8c588bb2bb1
|
|
||||||
|
|
||||||
# Cleanup: trailing space, remove tabs, pep8
|
|
||||||
c42a6b77b52560d257279de2cb624b4ef2c0d24c
|
|
||||||
|
|
||||||
# Cleanup: use C style doxygen comments
|
|
||||||
8c1726918374e1d2d2123e17bae8db5aadde3433
|
|
||||||
|
|
||||||
# Cleanup: use doxy sections for imbuf
|
|
||||||
c207f7c22e1439e0b285fba5d2c072bdae23f981
|
|
||||||
|
|
||||||
# Cleanup: clang-format
|
|
||||||
c4d8f6a4a8ddc29ed27311ed7578b3c8c31399d2
|
|
||||||
b5d310b569e07a937798a2d38539cfd290149f1c
|
|
||||||
8c846cccd6bdfd3e90a695fabbf05f53e5466a57
|
|
||||||
4eac03d821fa17546f562485f7d073813a5e5943
|
|
||||||
1166110a9d66af9c5a47cee2be591f50fdc445e8
|
|
||||||
|
|
||||||
# Cleanup: clang-format.
|
|
||||||
40d4a4cb1a6b4c3c2a486e8f2868f547530e0811
|
|
299
CMakeLists.txt
299
CMakeLists.txt
@@ -41,10 +41,10 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
# Prefer LEGACY OpenGL to be compatible with all the existing releases and
|
# Prever LEGACY OpenGL to eb compatible with all the existing releases and
|
||||||
# platforms which don't have GLVND yet. Only do it if preference was not set
|
# platforms which don't hare GLVND yet. Only do it if preference was not set
|
||||||
# externally.
|
# externally.
|
||||||
if(NOT DEFINED OpenGL_GL_PREFERENCE)
|
if(NOT DEFINED OpenGL_GL_PREFERENCE)
|
||||||
set(OpenGL_GL_PREFERENCE "LEGACY")
|
set(OpenGL_GL_PREFERENCE "LEGACY")
|
||||||
@@ -102,11 +102,6 @@ if(POLICY CMP0068)
|
|||||||
cmake_policy(SET CMP0068 NEW)
|
cmake_policy(SET CMP0068 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# find_package() uses <PackageName>_ROOT variables.
|
|
||||||
if(POLICY CMP0074)
|
|
||||||
cmake_policy(SET CMP0074 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Load some macros.
|
# Load some macros.
|
||||||
include(build_files/cmake/macros.cmake)
|
include(build_files/cmake/macros.cmake)
|
||||||
@@ -128,9 +123,7 @@ enable_testing()
|
|||||||
|
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
|
||||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
|
||||||
|
if(MSVC)
|
||||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
|
||||||
if(GENERATOR_IS_MULTI_CONFIG)
|
|
||||||
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE)
|
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE)
|
||||||
else()
|
else()
|
||||||
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE)
|
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE)
|
||||||
@@ -178,7 +171,6 @@ mark_as_advanced(BUILDINFO_OVERRIDE_TIME)
|
|||||||
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
|
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
|
||||||
option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
|
option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
|
||||||
option(WITH_FFTW3 "Enable FFTW3 support (Used for smoke, ocean sim, and audio effects)" ON)
|
option(WITH_FFTW3 "Enable FFTW3 support (Used for smoke, ocean sim, and audio effects)" ON)
|
||||||
option(WITH_PUGIXML "Enable PugiXML support (Used for OpenImageIO, Grease Pencil SVG export)" ON)
|
|
||||||
option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
|
option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
|
||||||
option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
|
option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
|
||||||
mark_as_advanced(WITH_SYSTEM_BULLET)
|
mark_as_advanced(WITH_SYSTEM_BULLET)
|
||||||
@@ -191,7 +183,6 @@ if(APPLE)
|
|||||||
else()
|
else()
|
||||||
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
|
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
|
||||||
endif()
|
endif()
|
||||||
option(WITH_GMP "Enable features depending on GMP (Exact Boolean)" ON)
|
|
||||||
|
|
||||||
# Compositor
|
# Compositor
|
||||||
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
|
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
|
||||||
@@ -199,13 +190,10 @@ option(WITH_OPENIMAGEDENOISE "Enable the OpenImageDenoise compositing node" ON
|
|||||||
|
|
||||||
option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" ON)
|
option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" ON)
|
||||||
|
|
||||||
option(WITH_POTRACE "Enable features relying on potrace" ON)
|
|
||||||
option(WITH_OPENVDB "Enable features relying on OpenVDB" ON)
|
option(WITH_OPENVDB "Enable features relying on OpenVDB" ON)
|
||||||
option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" ON)
|
option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" ON)
|
||||||
option(WITH_OPENVDB_3_ABI_COMPATIBLE "Assume OpenVDB library has been compiled with version 3 ABI compatibility" OFF)
|
option(WITH_OPENVDB_3_ABI_COMPATIBLE "Assume OpenVDB library has been compiled with version 3 ABI compatibility" OFF)
|
||||||
mark_as_advanced(WITH_OPENVDB_3_ABI_COMPATIBLE)
|
mark_as_advanced(WITH_OPENVDB_3_ABI_COMPATIBLE)
|
||||||
option(WITH_NANOVDB "Enable usage of NanoVDB data structure for rendering on the GPU" ON)
|
|
||||||
option(WITH_HARU "Enable features relying on Libharu (Grease pencil PDF export)" ON)
|
|
||||||
|
|
||||||
# GHOST Windowing Library Options
|
# GHOST Windowing Library Options
|
||||||
option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
|
option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
|
||||||
@@ -348,21 +336,16 @@ if(UNIX AND NOT APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
|
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
|
||||||
|
|
||||||
if((WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE) OR WITH_MOD_FLUID)
|
|
||||||
option(WITH_PYTHON_NUMPY "Include NumPy in Blender (used by Audaspace and Mantaflow)" ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32 OR APPLE)
|
if(WIN32 OR APPLE)
|
||||||
# Windows and macOS have this bundled with Python libraries.
|
# Windows and macOS have this bundled with Python libraries.
|
||||||
elseif(WITH_PYTHON_INSTALL OR WITH_PYTHON_NUMPY)
|
elseif(WITH_PYTHON_INSTALL OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
|
||||||
set(PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module")
|
set(PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module")
|
||||||
mark_as_advanced(PYTHON_NUMPY_PATH)
|
mark_as_advanced(PYTHON_NUMPY_PATH)
|
||||||
set(PYTHON_NUMPY_INCLUDE_DIRS "" CACHE PATH "Path to the include directory of the NumPy module")
|
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
|
||||||
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
|
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
|
||||||
endif()
|
endif()
|
||||||
if(WITH_PYTHON_INSTALL)
|
if(WITH_PYTHON_INSTALL)
|
||||||
option(WITH_PYTHON_INSTALL_NUMPY "Copy system NumPy into the blender install folder" ON)
|
option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON)
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
option(WITH_PYTHON_INSTALL_REQUESTS "Copy system requests into the blender install folder" ON)
|
option(WITH_PYTHON_INSTALL_REQUESTS "Copy system requests into the blender install folder" ON)
|
||||||
@@ -384,8 +367,7 @@ option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF)
|
|||||||
option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF)
|
option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF)
|
||||||
option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF)
|
option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF)
|
||||||
mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL)
|
mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL)
|
||||||
set(CYCLES_TEST_DEVICES CPU CACHE STRING "Run regression tests on the specified device types (CPU CUDA OPTIX OPENCL)" )
|
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 CACHE STRING "CUDA architectures to build binaries for")
|
||||||
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 compute_75 CACHE STRING "CUDA architectures to build binaries for")
|
|
||||||
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
|
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
|
||||||
unset(PLATFORM_DEFAULT)
|
unset(PLATFORM_DEFAULT)
|
||||||
option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON)
|
option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON)
|
||||||
@@ -433,11 +415,6 @@ mark_as_advanced(WITH_CXX_GUARDEDALLOC)
|
|||||||
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON)
|
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON)
|
||||||
mark_as_advanced(WITH_ASSERT_ABORT)
|
mark_as_advanced(WITH_ASSERT_ABORT)
|
||||||
|
|
||||||
if((UNIX AND NOT APPLE) OR (CMAKE_GENERATOR MATCHES "^Visual Studio.+"))
|
|
||||||
option(WITH_CLANG_TIDY "Use Clang Tidy to analyze the source code (only enable for development on Linux using Clang, or Windows using the Visual Studio IDE)" OFF)
|
|
||||||
mark_as_advanced(WITH_CLANG_TIDY)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(WITH_BOOST "Enable features depending on boost" ON)
|
option(WITH_BOOST "Enable features depending on boost" ON)
|
||||||
option(WITH_TBB "Enable features depending on TBB (OpenVDB, OpenImageDenoise, sculpt multithreading)" ON)
|
option(WITH_TBB "Enable features depending on TBB (OpenVDB, OpenImageDenoise, sculpt multithreading)" ON)
|
||||||
|
|
||||||
@@ -446,14 +423,6 @@ if(WIN32)
|
|||||||
option(WITH_TBB_MALLOC_PROXY "Enable the TBB malloc replacement" ON)
|
option(WITH_TBB_MALLOC_PROXY "Enable the TBB malloc replacement" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This should be turned off when Blender enter beta/rc/release
|
|
||||||
if("${BLENDER_VERSION_CYCLE}" STREQUAL "release" OR
|
|
||||||
"${BLENDER_VERSION_CYCLE}" STREQUAL "rc")
|
|
||||||
set(WITH_EXPERIMENTAL_FEATURES OFF)
|
|
||||||
else()
|
|
||||||
set(WITH_EXPERIMENTAL_FEATURES ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Unit testsing
|
# Unit testsing
|
||||||
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
||||||
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
||||||
@@ -524,22 +493,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
-fno-sanitize=alignment \
|
-fno-sanitize=alignment \
|
||||||
")
|
")
|
||||||
|
|
||||||
if(MSVC)
|
if(NOT MSVC) # not all sanitizers are supported with clang-cl, these two however are very vocal about it
|
||||||
# clang-cl doesn't support all sanitizers, but leak and object-size give errors/warnings.
|
set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size" )
|
||||||
set(_asan_defaults "${_asan_defaults}")
|
|
||||||
elseif(APPLE)
|
|
||||||
# AppleClang doesn't support all sanitizers, but leak gives error.
|
|
||||||
# Build type is not known for multi-config generator, so don't add object-size sanitizer.
|
|
||||||
if(CMAKE_BUILD_TYPE MATCHES "Debug" OR GENERATOR_IS_MULTI_CONFIG)
|
|
||||||
# Silence the warning that object-size is not effective in -O0.
|
|
||||||
set(_asan_defaults "${_asan_defaults}")
|
|
||||||
else()
|
|
||||||
string(APPEND _asan_defaults " -fsanitize=object-size")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
string(APPEND _asan_defaults " -fsanitize=leak -fsanitize=object-size")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer")
|
set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer")
|
||||||
mark_as_advanced(COMPILER_ASAN_CFLAGS)
|
mark_as_advanced(COMPILER_ASAN_CFLAGS)
|
||||||
set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer")
|
set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer")
|
||||||
@@ -547,42 +503,20 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
|
|
||||||
unset(_asan_defaults)
|
unset(_asan_defaults)
|
||||||
|
|
||||||
if(MSVC)
|
if(NOT MSVC)
|
||||||
find_library(
|
find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
|
||||||
COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
|
else()
|
||||||
|
find_library(
|
||||||
|
COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
|
||||||
PATHS
|
PATHS
|
||||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows
|
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows
|
||||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows
|
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows
|
||||||
)
|
)
|
||||||
elseif(APPLE)
|
|
||||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER}
|
|
||||||
-print-file-name=lib
|
|
||||||
OUTPUT_VARIABLE CLANG_LIB_DIR
|
|
||||||
)
|
|
||||||
string(STRIP "${CLANG_LIB_DIR}" CLANG_LIB_DIR)
|
|
||||||
find_library(
|
|
||||||
COMPILER_ASAN_LIBRARY
|
|
||||||
NAMES
|
|
||||||
libclang_rt.asan_osx_dynamic.dylib
|
|
||||||
PATHS
|
|
||||||
"${CLANG_LIB_DIR}/darwin/"
|
|
||||||
)
|
|
||||||
unset(CLANG_LIB_DIR)
|
|
||||||
else()
|
|
||||||
find_library(
|
|
||||||
COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
mark_as_advanced(COMPILER_ASAN_LIBRARY)
|
mark_as_advanced(COMPILER_ASAN_LIBRARY)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|
||||||
option(WITH_COMPILER_SHORT_FILE_MACRO "Make paths in macros like __FILE__ relative to top level source and build directories." ON)
|
|
||||||
mark_as_advanced(WITH_COMPILER_SHORT_FILE_MACRO)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# Use hardcoded paths or find_package to find externals
|
# Use hardcoded paths or find_package to find externals
|
||||||
option(WITH_WINDOWS_FIND_MODULES "Use find_package to locate libraries" OFF)
|
option(WITH_WINDOWS_FIND_MODULES "Use find_package to locate libraries" OFF)
|
||||||
@@ -611,11 +545,6 @@ if(WIN32)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
# See WITH_WINDOWS_SCCACHE for Windows.
|
|
||||||
option(WITH_COMPILER_CCACHE "Use ccache to improve rebuild times (Works with Ninja, Makefiles and Xcode)" OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# The following only works with the Ninja generator in CMake >= 3.0.
|
# The following only works with the Ninja generator in CMake >= 3.0.
|
||||||
if("${CMAKE_GENERATOR}" MATCHES "Ninja")
|
if("${CMAKE_GENERATOR}" MATCHES "Ninja")
|
||||||
option(WITH_NINJA_POOL_JOBS
|
option(WITH_NINJA_POOL_JOBS
|
||||||
@@ -710,8 +639,6 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF)
|
|||||||
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
||||||
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
||||||
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
||||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
|
||||||
set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF)
|
|
||||||
|
|
||||||
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
||||||
WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD OR WITH_ALEMBIC))
|
WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD OR WITH_ALEMBIC))
|
||||||
@@ -725,15 +652,9 @@ set_and_warn_dependency(WITH_TBB WITH_OPENIMAGEDENOISE OFF)
|
|||||||
set_and_warn_dependency(WITH_TBB WITH_OPENVDB OFF)
|
set_and_warn_dependency(WITH_TBB WITH_OPENVDB OFF)
|
||||||
set_and_warn_dependency(WITH_TBB WITH_MOD_FLUID OFF)
|
set_and_warn_dependency(WITH_TBB WITH_MOD_FLUID OFF)
|
||||||
|
|
||||||
# NanoVDB requires OpenVDB to convert the data structure
|
|
||||||
set_and_warn_dependency(WITH_OPENVDB WITH_NANOVDB OFF)
|
|
||||||
|
|
||||||
# OpenVDB uses 'half' type from OpenEXR & fails to link without OpenEXR enabled.
|
# OpenVDB uses 'half' type from OpenEXR & fails to link without OpenEXR enabled.
|
||||||
set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENVDB OFF)
|
set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENVDB OFF)
|
||||||
|
|
||||||
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
|
||||||
set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
|
||||||
|
|
||||||
# auto enable openimageio for cycles
|
# auto enable openimageio for cycles
|
||||||
if(WITH_CYCLES)
|
if(WITH_CYCLES)
|
||||||
set(WITH_OPENIMAGEIO ON)
|
set(WITH_OPENIMAGEIO ON)
|
||||||
@@ -865,10 +786,11 @@ set(CXX_WARNINGS)
|
|||||||
set(C_REMOVE_STRICT_FLAGS)
|
set(C_REMOVE_STRICT_FLAGS)
|
||||||
set(CXX_REMOVE_STRICT_FLAGS)
|
set(CXX_REMOVE_STRICT_FLAGS)
|
||||||
|
|
||||||
# Libraries to link to targets in setup_platform_linker_libs
|
# libraries to link the binary with passed to target_link_libraries()
|
||||||
|
# known as LLIBS to scons
|
||||||
set(PLATFORM_LINKLIBS "")
|
set(PLATFORM_LINKLIBS "")
|
||||||
|
|
||||||
# Added to target linker flags in setup_platform_linker_flags
|
# Added to linker flags in setup_liblinks
|
||||||
# - CMAKE_EXE_LINKER_FLAGS
|
# - CMAKE_EXE_LINKER_FLAGS
|
||||||
# - CMAKE_EXE_LINKER_FLAGS_DEBUG
|
# - CMAKE_EXE_LINKER_FLAGS_DEBUG
|
||||||
set(PLATFORM_LINKFLAGS "")
|
set(PLATFORM_LINKFLAGS "")
|
||||||
@@ -876,29 +798,15 @@ set(PLATFORM_LINKFLAGS_DEBUG "")
|
|||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
|
if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
|
||||||
if(WITH_COMPILER_ASAN)
|
if(WITH_COMPILER_ASAN)
|
||||||
if(NOT APPLE)
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}")
|
||||||
# Avoid passing address sanitizer compiler flags to `try_compile`.
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}")
|
||||||
# Since linker flags are not set, all compiler checks and `find_package`
|
|
||||||
# calls that rely on `try_compile` will fail.
|
|
||||||
# See CMP0066 also.
|
|
||||||
string(APPEND CMAKE_C_FLAGS_DEBUG " ${COMPILER_ASAN_CFLAGS}")
|
|
||||||
string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " ${COMPILER_ASAN_CFLAGS}")
|
|
||||||
|
|
||||||
string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMPILER_ASAN_CXXFLAGS}")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}")
|
||||||
string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${COMPILER_ASAN_CXXFLAGS}")
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}")
|
||||||
endif()
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
|
set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
|
||||||
endif()
|
endif()
|
||||||
|
if(COMPILER_ASAN_LIBRARY)
|
||||||
if(APPLE AND COMPILER_ASAN_LIBRARY)
|
|
||||||
string(REPLACE " " ";" _list_COMPILER_ASAN_CFLAGS ${COMPILER_ASAN_CFLAGS})
|
|
||||||
set(_is_CONFIG_DEBUG "$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>")
|
|
||||||
add_compile_options("$<${_is_CONFIG_DEBUG}:${_list_COMPILER_ASAN_CFLAGS}>")
|
|
||||||
add_link_options("$<${_is_CONFIG_DEBUG}:-fno-omit-frame-pointer;-fsanitize=address>")
|
|
||||||
unset(_list_COMPILER_ASAN_CFLAGS)
|
|
||||||
unset(_is_CONFIG_DEBUG)
|
|
||||||
elseif(COMPILER_ASAN_LIBRARY)
|
|
||||||
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
|
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
|
||||||
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
|
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
|
||||||
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
|
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
|
||||||
@@ -966,11 +874,11 @@ endif()
|
|||||||
# Do it globally, SSE2 is required for quite some time now.
|
# Do it globally, SSE2 is required for quite some time now.
|
||||||
# Doing it now allows to use SSE/SSE2 in inline headers.
|
# Doing it now allows to use SSE/SSE2 in inline headers.
|
||||||
if(SUPPORT_SSE_BUILD)
|
if(SUPPORT_SSE_BUILD)
|
||||||
string(PREPEND PLATFORM_CFLAGS "${COMPILER_SSE_FLAG} ")
|
set(PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}")
|
||||||
add_definitions(-D__SSE__ -D__MMX__)
|
add_definitions(-D__SSE__ -D__MMX__)
|
||||||
endif()
|
endif()
|
||||||
if(SUPPORT_SSE2_BUILD)
|
if(SUPPORT_SSE2_BUILD)
|
||||||
string(APPEND PLATFORM_CFLAGS " ${COMPILER_SSE2_FLAG}")
|
set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}")
|
||||||
add_definitions(-D__SSE2__)
|
add_definitions(-D__SSE2__)
|
||||||
if(NOT SUPPORT_SSE_BUILD) # don't double up
|
if(NOT SUPPORT_SSE_BUILD) # don't double up
|
||||||
add_definitions(-D__MMX__)
|
add_definitions(-D__MMX__)
|
||||||
@@ -987,7 +895,7 @@ if(MSVC)
|
|||||||
# endianess-detection and auto-setting is counterproductive
|
# endianess-detection and auto-setting is counterproductive
|
||||||
# so we just set endianness according CMAKE_OSX_ARCHITECTURES
|
# so we just set endianness according CMAKE_OSX_ARCHITECTURES
|
||||||
|
|
||||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR CMAKE_OSX_ARCHITECTURES MATCHES arm64)
|
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
|
||||||
add_definitions(-D__LITTLE_ENDIAN__)
|
add_definitions(-D__LITTLE_ENDIAN__)
|
||||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64)
|
elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64)
|
||||||
add_definitions(-D__BIG_ENDIAN__)
|
add_definitions(-D__BIG_ENDIAN__)
|
||||||
@@ -1182,8 +1090,8 @@ if(WITH_OPENMP)
|
|||||||
|
|
||||||
if(OPENMP_FOUND)
|
if(OPENMP_FOUND)
|
||||||
if(NOT WITH_OPENMP_STATIC)
|
if(NOT WITH_OPENMP_STATIC)
|
||||||
string(APPEND CMAKE_C_FLAGS " ${OpenMP_C_FLAGS}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
string(APPEND CMAKE_CXX_FLAGS " ${OpenMP_CXX_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
else()
|
else()
|
||||||
# Typically avoid adding flags as defines but we can't
|
# Typically avoid adding flags as defines but we can't
|
||||||
# pass OpenMP flags to the linker for static builds, meaning
|
# pass OpenMP flags to the linker for static builds, meaning
|
||||||
@@ -1500,12 +1408,10 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
|||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_IN_BOOL_CONTEXT -Wno-int-in-bool-context)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_IN_BOOL_CONTEXT -Wno-int-in-bool-context)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_FORMAT -Wno-format)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_FORMAT -Wno-format)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_SWITCH -Wno-switch)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_SWITCH -Wno-switch)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
|
||||||
|
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CLASS_MEMACCESS -Wno-class-memaccess)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CLASS_MEMACCESS -Wno-class-memaccess)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0"))
|
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0"))
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough)
|
||||||
@@ -1544,7 +1450,6 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISLEADING_INDENTATION -Wno-misleading-indentation)
|
|
||||||
|
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers)
|
||||||
@@ -1555,18 +1460,15 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
|
||||||
|
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNDEFINED_VAR_TEMPLATE -Wno-undefined-var-template)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNDEFINED_VAR_TEMPLATE -Wno-undefined-var-template)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_INSTANTIATION_AFTER_SPECIALIZATION -Wno-instantiation-after-specialization)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_INSTANTIATION_AFTER_SPECIALIZATION -Wno-instantiation-after-specialization)
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_MISLEADING_INDENTATION -Wno-misleading-indentation)
|
|
||||||
|
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
||||||
|
|
||||||
@@ -1579,8 +1481,8 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
|||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
|
||||||
|
|
||||||
# disable numbered, false positives
|
# disable numbered, false positives
|
||||||
string(APPEND C_WARNINGS " -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
|
set(C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
|
||||||
string(APPEND CXX_WARNINGS " -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
|
set(CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
||||||
# most msvc warnings are C & C++
|
# most msvc warnings are C & C++
|
||||||
set(_WARNINGS
|
set(_WARNINGS
|
||||||
@@ -1611,7 +1513,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|||||||
|
|
||||||
if(MSVC_VERSION GREATER_EQUAL 1911)
|
if(MSVC_VERSION GREATER_EQUAL 1911)
|
||||||
# see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5038?view=vs-2017
|
# see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5038?view=vs-2017
|
||||||
string(APPEND _WARNINGS " /w35038") # order of initialization in c++ constructors
|
set(_WARNINGS "${_WARNINGS} /w35038") # order of initialization in c++ constructors
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
string(REPLACE ";" " " _WARNINGS "${_WARNINGS}")
|
string(REPLACE ";" " " _WARNINGS "${_WARNINGS}")
|
||||||
@@ -1635,33 +1537,30 @@ if(WITH_PYTHON)
|
|||||||
|
|
||||||
if(WIN32 OR APPLE)
|
if(WIN32 OR APPLE)
|
||||||
# Windows and macOS have this bundled with Python libraries.
|
# Windows and macOS have this bundled with Python libraries.
|
||||||
elseif((WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) OR WITH_PYTHON_NUMPY)
|
elseif((WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
|
||||||
if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
|
if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
|
||||||
find_python_package(numpy "core/include")
|
find_python_package(numpy)
|
||||||
|
unset(PYTHON_NUMPY_INCLUDE_DIRS CACHE)
|
||||||
|
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
|
||||||
|
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32 OR APPLE)
|
if(WIN32 OR APPLE)
|
||||||
# pass, we have this in lib/python/site-packages
|
# pass, we have this in lib/python/site-packages
|
||||||
elseif(WITH_PYTHON_INSTALL_REQUESTS)
|
elseif(WITH_PYTHON_INSTALL_REQUESTS)
|
||||||
find_python_package(requests "")
|
find_python_package(requests)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
string(APPEND CMAKE_CXX_FLAGS " /std:c++17")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
|
||||||
# Make MSVC properly report the value of the __cplusplus preprocessor macro
|
|
||||||
# Available MSVC 15.7 (1914) and up, without this it reports 199711L regardless
|
|
||||||
# of the C++ standard chosen above
|
|
||||||
if(MSVC_VERSION GREATER 1913)
|
|
||||||
string(APPEND CMAKE_CXX_FLAGS " /Zc:__cplusplus")
|
|
||||||
endif()
|
|
||||||
elseif(
|
elseif(
|
||||||
CMAKE_COMPILER_IS_GNUCC OR
|
CMAKE_COMPILER_IS_GNUCC OR
|
||||||
CMAKE_C_COMPILER_ID MATCHES "Clang" OR
|
CMAKE_C_COMPILER_ID MATCHES "Clang" OR
|
||||||
CMAKE_C_COMPILER_ID MATCHES "Intel"
|
CMAKE_C_COMPILER_ID MATCHES "Intel"
|
||||||
)
|
)
|
||||||
string(APPEND CMAKE_CXX_FLAGS " -std=c++17")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++17 build")
|
message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++17 build")
|
||||||
endif()
|
endif()
|
||||||
@@ -1674,47 +1573,12 @@ if(
|
|||||||
(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
||||||
)
|
)
|
||||||
# Use C11 + GNU extensions, works with GCC, Clang, ICC
|
# Use C11 + GNU extensions, works with GCC, Clang, ICC
|
||||||
string(APPEND CMAKE_C_FLAGS " -std=gnu11")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
if(NOT WITH_CXX11_ABI)
|
if(NOT WITH_CXX11_ABI)
|
||||||
string(APPEND PLATFORM_CFLAGS " -D_GLIBCXX_USE_CXX11_ABI=0")
|
set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_COMPILER_SHORT_FILE_MACRO)
|
|
||||||
# Use '-fmacro-prefix-map' for Clang and GCC (MSVC doesn't support this).
|
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_PREFIX_MAP_FLAGS C_MACRO_PREFIX_MAP -fmacro-prefix-map=foo=bar)
|
|
||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_PREFIX_MAP_FLAGS CXX_MACRO_PREFIX_MAP -fmacro-prefix-map=foo=bar)
|
|
||||||
if(C_MACRO_PREFIX_MAP AND CXX_MACRO_PREFIX_MAP)
|
|
||||||
if(APPLE)
|
|
||||||
if(XCODE AND ${XCODE_VERSION} VERSION_LESS 12.0)
|
|
||||||
# Developers may have say LLVM Clang-10.0.1 toolchain (which supports the flag)
|
|
||||||
# with Xcode-11 (the Clang of which doesn't support the flag).
|
|
||||||
message(WARNING
|
|
||||||
"-fmacro-prefix-map flag is NOT supported by Clang shipped with Xcode-${XCODE_VERSION}."
|
|
||||||
" Some Xcode functionality in Product menu may not work. Disabling WITH_COMPILER_SHORT_FILE_MACRO."
|
|
||||||
)
|
|
||||||
set(WITH_COMPILER_SHORT_FILE_MACRO OFF)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(WITH_COMPILER_SHORT_FILE_MACRO)
|
|
||||||
path_ensure_trailing_slash(_src_dir "${CMAKE_SOURCE_DIR}")
|
|
||||||
path_ensure_trailing_slash(_bin_dir "${CMAKE_BINARY_DIR}")
|
|
||||||
# Keep this variable so it can be stripped from build-info.
|
|
||||||
set(PLATFORM_CFLAGS_FMACRO_PREFIX_MAP
|
|
||||||
"-fmacro-prefix-map=\"${_src_dir}\"=\"\" -fmacro-prefix-map=\"${_bin_dir}\"=\"\"")
|
|
||||||
string(APPEND PLATFORM_CFLAGS " ${PLATFORM_CFLAGS_FMACRO_PREFIX_MAP}")
|
|
||||||
unset(_src_dir)
|
|
||||||
unset(_bin_dir)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(WARNING
|
|
||||||
"-fmacro-prefix-map flag is NOT supported by C/C++ compiler."
|
|
||||||
" Disabling WITH_COMPILER_SHORT_FILE_MACRO."
|
|
||||||
)
|
|
||||||
set(WITH_COMPILER_SHORT_FILE_MACRO OFF)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -1759,6 +1623,10 @@ endif()
|
|||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Libraries
|
# Libraries
|
||||||
|
|
||||||
|
if(WITH_GTESTS)
|
||||||
|
include(GTestTesting)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_BLENDER)
|
if(WITH_BLENDER)
|
||||||
add_subdirectory(intern)
|
add_subdirectory(intern)
|
||||||
add_subdirectory(extern)
|
add_subdirectory(extern)
|
||||||
@@ -1767,20 +1635,8 @@ if(WITH_BLENDER)
|
|||||||
# internal and external library information first, for test linking
|
# internal and external library information first, for test linking
|
||||||
add_subdirectory(source)
|
add_subdirectory(source)
|
||||||
elseif(WITH_CYCLES_STANDALONE)
|
elseif(WITH_CYCLES_STANDALONE)
|
||||||
add_subdirectory(intern/glew-mx)
|
|
||||||
add_subdirectory(intern/guardedalloc)
|
|
||||||
add_subdirectory(intern/libc_compat)
|
|
||||||
add_subdirectory(intern/numaapi)
|
|
||||||
add_subdirectory(intern/sky)
|
|
||||||
|
|
||||||
add_subdirectory(intern/cycles)
|
add_subdirectory(intern/cycles)
|
||||||
add_subdirectory(extern/clew)
|
add_subdirectory(extern/clew)
|
||||||
if(WITH_CYCLES_LOGGING)
|
|
||||||
if(NOT WITH_SYSTEM_GFLAGS)
|
|
||||||
add_subdirectory(extern/gflags)
|
|
||||||
endif()
|
|
||||||
add_subdirectory(extern/glog)
|
|
||||||
endif()
|
|
||||||
if(WITH_CUDA_DYNLOAD)
|
if(WITH_CUDA_DYNLOAD)
|
||||||
add_subdirectory(extern/cuew)
|
add_subdirectory(extern/cuew)
|
||||||
endif()
|
endif()
|
||||||
@@ -1789,10 +1645,6 @@ elseif(WITH_CYCLES_STANDALONE)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
|
||||||
# Testing
|
|
||||||
add_subdirectory(tests)
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Blender Application
|
# Blender Application
|
||||||
if(WITH_BLENDER)
|
if(WITH_BLENDER)
|
||||||
@@ -1800,6 +1652,11 @@ if(WITH_BLENDER)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Testing
|
||||||
|
add_subdirectory(tests)
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Define 'heavy' submodules (for Ninja builder when using pools).
|
# Define 'heavy' submodules (for Ninja builder when using pools).
|
||||||
setup_heavy_lib_pool()
|
setup_heavy_lib_pool()
|
||||||
@@ -1829,7 +1686,7 @@ if(FIRST_RUN)
|
|||||||
set(_msg " - ${_setting}")
|
set(_msg " - ${_setting}")
|
||||||
string(LENGTH "${_msg}" _len)
|
string(LENGTH "${_msg}" _len)
|
||||||
while("32" GREATER "${_len}")
|
while("32" GREATER "${_len}")
|
||||||
string(APPEND _msg " ")
|
set(_msg "${_msg} ")
|
||||||
math(EXPR _len "${_len} + 1")
|
math(EXPR _len "${_len} + 1")
|
||||||
endwhile()
|
endwhile()
|
||||||
|
|
||||||
@@ -1847,27 +1704,23 @@ if(FIRST_RUN)
|
|||||||
message(STATUS "C++ Compiler: \"${CMAKE_CXX_COMPILER_ID}\"")
|
message(STATUS "C++ Compiler: \"${CMAKE_CXX_COMPILER_ID}\"")
|
||||||
|
|
||||||
info_cfg_text("Build Options:")
|
info_cfg_text("Build Options:")
|
||||||
info_cfg_option(WITH_ALEMBIC)
|
|
||||||
info_cfg_option(WITH_BULLET)
|
info_cfg_option(WITH_BULLET)
|
||||||
info_cfg_option(WITH_CYCLES)
|
|
||||||
info_cfg_option(WITH_FFTW3)
|
|
||||||
info_cfg_option(WITH_FREESTYLE)
|
|
||||||
info_cfg_option(WITH_GMP)
|
|
||||||
info_cfg_option(WITH_HARU)
|
|
||||||
info_cfg_option(WITH_IK_ITASC)
|
|
||||||
info_cfg_option(WITH_IK_SOLVER)
|
info_cfg_option(WITH_IK_SOLVER)
|
||||||
info_cfg_option(WITH_INPUT_NDOF)
|
info_cfg_option(WITH_IK_ITASC)
|
||||||
info_cfg_option(WITH_INTERNATIONAL)
|
|
||||||
info_cfg_option(WITH_OPENCOLLADA)
|
info_cfg_option(WITH_OPENCOLLADA)
|
||||||
|
info_cfg_option(WITH_FFTW3)
|
||||||
|
info_cfg_option(WITH_INTERNATIONAL)
|
||||||
|
info_cfg_option(WITH_INPUT_NDOF)
|
||||||
|
info_cfg_option(WITH_CYCLES)
|
||||||
|
info_cfg_option(WITH_FREESTYLE)
|
||||||
info_cfg_option(WITH_OPENCOLORIO)
|
info_cfg_option(WITH_OPENCOLORIO)
|
||||||
|
info_cfg_option(WITH_XR_OPENXR)
|
||||||
info_cfg_option(WITH_OPENIMAGEDENOISE)
|
info_cfg_option(WITH_OPENIMAGEDENOISE)
|
||||||
info_cfg_option(WITH_OPENVDB)
|
info_cfg_option(WITH_OPENVDB)
|
||||||
info_cfg_option(WITH_POTRACE)
|
info_cfg_option(WITH_ALEMBIC)
|
||||||
info_cfg_option(WITH_PUGIXML)
|
|
||||||
info_cfg_option(WITH_QUADRIFLOW)
|
info_cfg_option(WITH_QUADRIFLOW)
|
||||||
info_cfg_option(WITH_TBB)
|
|
||||||
info_cfg_option(WITH_USD)
|
info_cfg_option(WITH_USD)
|
||||||
info_cfg_option(WITH_XR_OPENXR)
|
info_cfg_option(WITH_TBB)
|
||||||
|
|
||||||
info_cfg_text("Compiler Options:")
|
info_cfg_text("Compiler Options:")
|
||||||
info_cfg_option(WITH_BUILDINFO)
|
info_cfg_option(WITH_BUILDINFO)
|
||||||
@@ -1875,58 +1728,58 @@ if(FIRST_RUN)
|
|||||||
|
|
||||||
info_cfg_text("System Options:")
|
info_cfg_text("System Options:")
|
||||||
info_cfg_option(WITH_INSTALL_PORTABLE)
|
info_cfg_option(WITH_INSTALL_PORTABLE)
|
||||||
info_cfg_option(WITH_MEM_JEMALLOC)
|
|
||||||
info_cfg_option(WITH_MEM_VALGRIND)
|
|
||||||
info_cfg_option(WITH_SYSTEM_GLEW)
|
|
||||||
info_cfg_option(WITH_X11_ALPHA)
|
info_cfg_option(WITH_X11_ALPHA)
|
||||||
info_cfg_option(WITH_X11_XF86VMODE)
|
info_cfg_option(WITH_X11_XF86VMODE)
|
||||||
info_cfg_option(WITH_X11_XFIXES)
|
info_cfg_option(WITH_X11_XFIXES)
|
||||||
info_cfg_option(WITH_X11_XINPUT)
|
info_cfg_option(WITH_X11_XINPUT)
|
||||||
|
info_cfg_option(WITH_MEM_JEMALLOC)
|
||||||
|
info_cfg_option(WITH_MEM_VALGRIND)
|
||||||
|
info_cfg_option(WITH_SYSTEM_GLEW)
|
||||||
|
|
||||||
info_cfg_text("Image Formats:")
|
info_cfg_text("Image Formats:")
|
||||||
|
info_cfg_option(WITH_OPENIMAGEIO)
|
||||||
info_cfg_option(WITH_IMAGE_CINEON)
|
info_cfg_option(WITH_IMAGE_CINEON)
|
||||||
info_cfg_option(WITH_IMAGE_DDS)
|
info_cfg_option(WITH_IMAGE_DDS)
|
||||||
info_cfg_option(WITH_IMAGE_HDR)
|
info_cfg_option(WITH_IMAGE_HDR)
|
||||||
info_cfg_option(WITH_IMAGE_OPENEXR)
|
info_cfg_option(WITH_IMAGE_OPENEXR)
|
||||||
info_cfg_option(WITH_IMAGE_OPENJPEG)
|
info_cfg_option(WITH_IMAGE_OPENJPEG)
|
||||||
info_cfg_option(WITH_IMAGE_TIFF)
|
info_cfg_option(WITH_IMAGE_TIFF)
|
||||||
info_cfg_option(WITH_OPENIMAGEIO)
|
|
||||||
|
|
||||||
info_cfg_text("Audio:")
|
info_cfg_text("Audio:")
|
||||||
info_cfg_option(WITH_CODEC_AVI)
|
|
||||||
info_cfg_option(WITH_CODEC_FFMPEG)
|
|
||||||
info_cfg_option(WITH_CODEC_SNDFILE)
|
|
||||||
info_cfg_option(WITH_JACK)
|
|
||||||
info_cfg_option(WITH_JACK_DYNLOAD)
|
|
||||||
info_cfg_option(WITH_OPENAL)
|
info_cfg_option(WITH_OPENAL)
|
||||||
info_cfg_option(WITH_SDL)
|
info_cfg_option(WITH_SDL)
|
||||||
info_cfg_option(WITH_SDL_DYNLOAD)
|
info_cfg_option(WITH_SDL_DYNLOAD)
|
||||||
|
info_cfg_option(WITH_JACK)
|
||||||
|
info_cfg_option(WITH_JACK_DYNLOAD)
|
||||||
|
info_cfg_option(WITH_CODEC_AVI)
|
||||||
|
info_cfg_option(WITH_CODEC_FFMPEG)
|
||||||
|
info_cfg_option(WITH_CODEC_SNDFILE)
|
||||||
|
|
||||||
info_cfg_text("Compression:")
|
info_cfg_text("Compression:")
|
||||||
info_cfg_option(WITH_LZMA)
|
info_cfg_option(WITH_LZMA)
|
||||||
info_cfg_option(WITH_LZO)
|
info_cfg_option(WITH_LZO)
|
||||||
|
|
||||||
info_cfg_text("Python:")
|
info_cfg_text("Python:")
|
||||||
if(APPLE)
|
|
||||||
info_cfg_option(WITH_PYTHON_FRAMEWORK)
|
|
||||||
endif()
|
|
||||||
info_cfg_option(WITH_PYTHON_INSTALL)
|
info_cfg_option(WITH_PYTHON_INSTALL)
|
||||||
info_cfg_option(WITH_PYTHON_INSTALL_NUMPY)
|
info_cfg_option(WITH_PYTHON_INSTALL_NUMPY)
|
||||||
info_cfg_option(WITH_PYTHON_MODULE)
|
info_cfg_option(WITH_PYTHON_MODULE)
|
||||||
info_cfg_option(WITH_PYTHON_SAFETY)
|
info_cfg_option(WITH_PYTHON_SAFETY)
|
||||||
|
if(APPLE)
|
||||||
|
info_cfg_option(WITH_PYTHON_FRAMEWORK)
|
||||||
|
endif()
|
||||||
|
|
||||||
info_cfg_text("Modifiers:")
|
info_cfg_text("Modifiers:")
|
||||||
|
info_cfg_option(WITH_MOD_REMESH)
|
||||||
info_cfg_option(WITH_MOD_FLUID)
|
info_cfg_option(WITH_MOD_FLUID)
|
||||||
info_cfg_option(WITH_MOD_OCEANSIM)
|
info_cfg_option(WITH_MOD_OCEANSIM)
|
||||||
info_cfg_option(WITH_MOD_REMESH)
|
|
||||||
|
|
||||||
info_cfg_text("OpenGL:")
|
info_cfg_text("OpenGL:")
|
||||||
|
info_cfg_option(WITH_GLEW_ES)
|
||||||
|
info_cfg_option(WITH_GL_EGL)
|
||||||
|
info_cfg_option(WITH_GL_PROFILE_ES20)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
info_cfg_option(WITH_GL_ANGLE)
|
info_cfg_option(WITH_GL_ANGLE)
|
||||||
endif()
|
endif()
|
||||||
info_cfg_option(WITH_GL_EGL)
|
|
||||||
info_cfg_option(WITH_GL_PROFILE_ES20)
|
|
||||||
info_cfg_option(WITH_GLEW_ES)
|
|
||||||
|
|
||||||
info_cfg_text("")
|
info_cfg_text("")
|
||||||
|
|
||||||
|
48
GNUmakefile
48
GNUmakefile
@@ -41,7 +41,6 @@ Convenience Targets
|
|||||||
* developer: Enable faster builds, error checking and tests, recommended for developers.
|
* developer: Enable faster builds, error checking and tests, recommended for developers.
|
||||||
* config: Run cmake configuration tool to set build options.
|
* config: Run cmake configuration tool to set build options.
|
||||||
* ninja: Use ninja build tool for faster builds.
|
* ninja: Use ninja build tool for faster builds.
|
||||||
* ccache: Use ccache for faster rebuilds.
|
|
||||||
|
|
||||||
Note: passing the argument 'BUILD_DIR=path' when calling make will override the default build dir.
|
Note: passing the argument 'BUILD_DIR=path' when calling make will override the default build dir.
|
||||||
Note: passing the argument 'BUILD_CMAKE_ARGS=args' lets you add cmake arguments.
|
Note: passing the argument 'BUILD_CMAKE_ARGS=args' lets you add cmake arguments.
|
||||||
@@ -82,19 +81,11 @@ Static Source Code Checking
|
|||||||
* check_splint: Run blenders source through splint (C only).
|
* check_splint: Run blenders source through splint (C only).
|
||||||
* check_sparse: Run blenders source through sparse (C only).
|
* check_sparse: Run blenders source through sparse (C only).
|
||||||
* check_smatch: Run blenders source through smatch (C only).
|
* check_smatch: Run blenders source through smatch (C only).
|
||||||
* check_descriptions: Check for duplicate/invalid descriptions.
|
* check_spelling_c: Check for spelling errors (C/C++ only).
|
||||||
|
* check_spelling_c_qtc: Same as check_spelling_c but outputs QtCreator tasks format.
|
||||||
Spell Checkers
|
|
||||||
|
|
||||||
* check_spelling_c: Check for spelling errors (C/C++ only),
|
|
||||||
* check_spelling_osl: Check for spelling errors (OSL only).
|
* check_spelling_osl: Check for spelling errors (OSL only).
|
||||||
* check_spelling_py: Check for spelling errors (Python only).
|
* check_spelling_py: Check for spelling errors (Python only).
|
||||||
|
* check_descriptions: Check for duplicate/invalid descriptions.
|
||||||
Note that spell checkers can take a 'CHECK_SPELLING_CACHE' filepath argument,
|
|
||||||
so re-running does not need to re-check unchanged files.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
make check_spelling_c CHECK_SPELLING_CACHE=../spelling_cache.data
|
|
||||||
|
|
||||||
Utilities
|
Utilities
|
||||||
Not associated with building Blender.
|
Not associated with building Blender.
|
||||||
@@ -183,13 +174,8 @@ endif
|
|||||||
ifndef DEPS_INSTALL_DIR
|
ifndef DEPS_INSTALL_DIR
|
||||||
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
|
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
|
||||||
|
|
||||||
# Add processor type to directory name, except for darwin x86_64
|
ifneq ($(OS_NCASE),darwin)
|
||||||
# which by convention does not have it.
|
# Add processor type to directory name
|
||||||
ifeq ($(OS_NCASE),darwin)
|
|
||||||
ifneq ($(CPU),x86_64)
|
|
||||||
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
|
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -203,7 +189,7 @@ endif
|
|||||||
# in libraries, or python 2 for running make update to get it.
|
# in libraries, or python 2 for running make update to get it.
|
||||||
ifeq ($(OS_NCASE),darwin)
|
ifeq ($(OS_NCASE),darwin)
|
||||||
ifeq (, $(shell command -v $(PYTHON)))
|
ifeq (, $(shell command -v $(PYTHON)))
|
||||||
PYTHON:=$(DEPS_INSTALL_DIR)/python/bin/python3.7m
|
PYTHON:=../lib/darwin/python/bin/python3.7m
|
||||||
ifeq (, $(shell command -v $(PYTHON)))
|
ifeq (, $(shell command -v $(PYTHON)))
|
||||||
PYTHON:=python
|
PYTHON:=python
|
||||||
endif
|
endif
|
||||||
@@ -247,10 +233,6 @@ ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
|
|||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq "$(findstring ccache, $(MAKECMDGOALS))" ""
|
|
||||||
CMAKE_CONFIG_ARGS:=-DWITH_COMPILER_CCACHE=YES $(CMAKE_CONFIG_ARGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# build tool
|
# build tool
|
||||||
|
|
||||||
@@ -350,7 +332,6 @@ headless: all
|
|||||||
bpy: all
|
bpy: all
|
||||||
developer: all
|
developer: all
|
||||||
ninja: all
|
ninja: all
|
||||||
ccache: all
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Build dependencies
|
# Build dependencies
|
||||||
@@ -476,17 +457,26 @@ check_spelling_c: .FORCE
|
|||||||
cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
|
||||||
"$(BLENDER_DIR)/source" \
|
"$(BLENDER_DIR)/source" \
|
||||||
"$(BLENDER_DIR)/intern/cycles" \
|
"$(BLENDER_DIR)/intern/cycles" \
|
||||||
"$(BLENDER_DIR)/intern/guardedalloc" \
|
"$(BLENDER_DIR)/intern/guardedalloc" \
|
||||||
"$(BLENDER_DIR)/intern/ghost" \
|
"$(BLENDER_DIR)/intern/ghost" \
|
||||||
|
|
||||||
|
check_spelling_c_qtc: .FORCE
|
||||||
|
cd "$(BUILD_DIR)" ; USE_QTC_TASK=1 \
|
||||||
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
|
"$(BLENDER_DIR)/source" \
|
||||||
|
"$(BLENDER_DIR)/intern/cycles" \
|
||||||
|
"$(BLENDER_DIR)/intern/guardedalloc" \
|
||||||
|
"$(BLENDER_DIR)/intern/ghost" \
|
||||||
|
> \
|
||||||
|
"$(BLENDER_DIR)/check_spelling_c.tasks"
|
||||||
|
|
||||||
check_spelling_osl: .FORCE
|
check_spelling_osl: .FORCE
|
||||||
cd "$(BUILD_DIR)" ;\
|
cd "$(BUILD_DIR)" ;\
|
||||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
|
||||||
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
|
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
|
||||||
|
|
||||||
check_descriptions: .FORCE
|
check_descriptions: .FORCE
|
||||||
@@ -525,10 +515,10 @@ format: .FORCE
|
|||||||
|
|
||||||
# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation.
|
# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation.
|
||||||
doc_py: .FORCE
|
doc_py: .FORCE
|
||||||
ASAN_OPTIONS=halt_on_error=0:${ASAN_OPTIONS} \
|
ASAN_OPTIONS=halt_on_error=0 \
|
||||||
$(BLENDER_BIN) --background -noaudio --factory-startup \
|
$(BLENDER_BIN) --background -noaudio --factory-startup \
|
||||||
--python doc/python_api/sphinx_doc_gen.py
|
--python doc/python_api/sphinx_doc_gen.py
|
||||||
sphinx-build -b html -j $(NPROCS) doc/python_api/sphinx-in doc/python_api/sphinx-out
|
cd doc/python_api ; sphinx-build -b html sphinx-in sphinx-out
|
||||||
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/index.html'"
|
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/index.html'"
|
||||||
|
|
||||||
doc_doxy: .FORCE
|
doc_doxy: .FORCE
|
||||||
|
@@ -30,11 +30,11 @@
|
|||||||
# build_deps 2015 x64 / build_deps 2015 x86
|
# build_deps 2015 x64 / build_deps 2015 x86
|
||||||
#
|
#
|
||||||
# MAC OS X USAGE:
|
# MAC OS X USAGE:
|
||||||
# Install with homebrew: brew install autoconf automake bison cmake libtool pkg-config yasm
|
# Install with homebrew: brew install cmake autoconf automake libtool yasm nasm
|
||||||
# Run "make deps" from main Blender directory
|
# Run "make deps" from main Blender directory
|
||||||
#
|
#
|
||||||
# LINUX USAGE:
|
# LINUX USAGE:
|
||||||
# Install compiler cmake autoconf automake libtool yasm tcl
|
# Install compiler cmake autoconf automake libtool yasm nasm tcl
|
||||||
# Run "make deps" from main Blender directory
|
# Run "make deps" from main Blender directory
|
||||||
#
|
#
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
@@ -57,6 +57,7 @@ include(cmake/zlib.cmake)
|
|||||||
include(cmake/openal.cmake)
|
include(cmake/openal.cmake)
|
||||||
include(cmake/png.cmake)
|
include(cmake/png.cmake)
|
||||||
include(cmake/jpeg.cmake)
|
include(cmake/jpeg.cmake)
|
||||||
|
include(cmake/boost.cmake)
|
||||||
include(cmake/blosc.cmake)
|
include(cmake/blosc.cmake)
|
||||||
include(cmake/pthreads.cmake)
|
include(cmake/pthreads.cmake)
|
||||||
include(cmake/openexr.cmake)
|
include(cmake/openexr.cmake)
|
||||||
@@ -76,31 +77,25 @@ include(cmake/clang.cmake)
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
include(cmake/openmp.cmake)
|
include(cmake/openmp.cmake)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX)
|
|
||||||
include(cmake/nasm.cmake)
|
|
||||||
endif()
|
|
||||||
include(cmake/openimageio.cmake)
|
include(cmake/openimageio.cmake)
|
||||||
include(cmake/tiff.cmake)
|
include(cmake/tiff.cmake)
|
||||||
include(cmake/flexbison.cmake)
|
include(cmake/flexbison.cmake)
|
||||||
include(cmake/osl.cmake)
|
include(cmake/osl.cmake)
|
||||||
include(cmake/tbb.cmake)
|
include(cmake/tbb.cmake)
|
||||||
include(cmake/openvdb.cmake)
|
include(cmake/openvdb.cmake)
|
||||||
include(cmake/nanovdb.cmake)
|
|
||||||
include(cmake/python.cmake)
|
include(cmake/python.cmake)
|
||||||
include(cmake/python_site_packages.cmake)
|
include(cmake/python_site_packages.cmake)
|
||||||
include(cmake/package_python.cmake)
|
include(cmake/package_python.cmake)
|
||||||
include(cmake/numpy.cmake)
|
include(cmake/numpy.cmake)
|
||||||
include(cmake/usd.cmake)
|
include(cmake/usd.cmake)
|
||||||
include(cmake/potrace.cmake)
|
if(UNIX)
|
||||||
include(cmake/haru.cmake)
|
# Rely on PugiXML compiled with OpenImageIO
|
||||||
# Boost needs to be included after python.cmake due to the PYTHON_BINARY variable being needed.
|
else()
|
||||||
include(cmake/boost.cmake)
|
include(cmake/pugixml.cmake)
|
||||||
include(cmake/pugixml.cmake)
|
|
||||||
if((NOT APPLE) OR ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
|
||||||
include(cmake/ispc.cmake)
|
|
||||||
include(cmake/openimagedenoise.cmake)
|
|
||||||
include(cmake/embree.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
|
include(cmake/ispc.cmake)
|
||||||
|
include(cmake/openimagedenoise.cmake)
|
||||||
|
include(cmake/embree.cmake)
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/xr_openxr.cmake)
|
include(cmake/xr_openxr.cmake)
|
||||||
endif()
|
endif()
|
||||||
@@ -115,10 +110,10 @@ if(WIN32)
|
|||||||
include(cmake/yamlcpp.cmake)
|
include(cmake/yamlcpp.cmake)
|
||||||
# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
|
# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
|
||||||
# include(cmake/lcms.cmake)
|
# include(cmake/lcms.cmake)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||||
include(cmake/gmp.cmake)
|
|
||||||
include(cmake/openjpeg.cmake)
|
include(cmake/openjpeg.cmake)
|
||||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -19,6 +19,17 @@
|
|||||||
set(BOOST_ADDRESS_MODEL 64)
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(PYTHON_ARCH x64)
|
||||||
|
set(PYTHON_ARCH2 win-AMD64)
|
||||||
|
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/amd64/)
|
||||||
|
else()
|
||||||
|
set(PYTHON_ARCH x86)
|
||||||
|
set(PYTHON_ARCH2 win32)
|
||||||
|
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/win32/)
|
||||||
|
set(BOOST_ADDRESS_MODEL 32)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||||
set(BOOST_COMPILER_STRING -vc141)
|
set(BOOST_COMPILER_STRING -vc141)
|
||||||
|
|
||||||
@@ -33,7 +44,7 @@ if(WIN32)
|
|||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
||||||
set(BOOST_BUILD_COMMAND ./b2)
|
set(BOOST_BUILD_COMMAND ./b2)
|
||||||
set(BOOST_BUILD_OPTIONS toolset=clang-darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} visibility=global --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} visibility=global --disable-icu boost.locale.icu=off)
|
||||||
set(BOOST_HARVEST_CMD echo .)
|
set(BOOST_HARVEST_CMD echo .)
|
||||||
set(BOOST_PATCH_COMMAND echo .)
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
else()
|
else()
|
||||||
@@ -49,21 +60,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BOOST_PYTHON)
|
|
||||||
set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
|
|
||||||
configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
|
|
||||||
set(BOOST_PYTHON_OPTIONS
|
|
||||||
--with-python
|
|
||||||
--user-config=${JAM_FILE}
|
|
||||||
)
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
|
||||||
set(BOOST_PYTHON_OPTIONS
|
|
||||||
${BOOST_PYTHON_OPTIONS}
|
|
||||||
define=BOOST_DEBUG_PYTHON
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(BOOST_OPTIONS
|
set(BOOST_OPTIONS
|
||||||
--with-filesystem
|
--with-filesystem
|
||||||
--with-locale
|
--with-locale
|
||||||
@@ -80,7 +76,6 @@ set(BOOST_OPTIONS
|
|||||||
-sNO_LZMA=1
|
-sNO_LZMA=1
|
||||||
-sNO_ZSTD=1
|
-sNO_ZSTD=1
|
||||||
${BOOST_TOOLSET}
|
${BOOST_TOOLSET}
|
||||||
${BOOST_PYTHON_OPTIONS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
|
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
|
||||||
@@ -97,11 +92,3 @@ ExternalProject_Add(external_boost
|
|||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WITH_BOOST_PYTHON)
|
|
||||||
add_dependencies(
|
|
||||||
external_boost
|
|
||||||
external_python
|
|
||||||
external_numpy
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
@@ -26,11 +26,10 @@ if(UNIX)
|
|||||||
set(_required_software
|
set(_required_software
|
||||||
autoconf
|
autoconf
|
||||||
automake
|
automake
|
||||||
bison
|
|
||||||
${_libtoolize_name}
|
${_libtoolize_name}
|
||||||
pkg-config
|
nasm
|
||||||
tclsh
|
|
||||||
yasm
|
yasm
|
||||||
|
tclsh
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach(_software ${_required_software})
|
foreach(_software ${_required_software})
|
||||||
@@ -41,18 +40,6 @@ if(UNIX)
|
|||||||
unset(_software_find CACHE)
|
unset(_software_find CACHE)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
# Homebrew has different default locations for ARM and Intel macOS.
|
|
||||||
if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
|
||||||
set(HOMEBREW_LOCATION "/opt/homebrew")
|
|
||||||
else()
|
|
||||||
set(HOMEBREW_LOCATION "/usr/local")
|
|
||||||
endif()
|
|
||||||
if(NOT EXISTS "${HOMEBREW_LOCATION}/opt/bison/bin/bison")
|
|
||||||
string(APPEND _software_missing " bison")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(_software_missing)
|
if(_software_missing)
|
||||||
message(
|
message(
|
||||||
"\n"
|
"\n"
|
||||||
@@ -60,10 +47,10 @@ if(UNIX)
|
|||||||
" ${_software_missing}\n"
|
" ${_software_missing}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On Debian and Ubuntu:\n"
|
"On Debian and Ubuntu:\n"
|
||||||
" apt install autoconf automake libtool yasm tcl\n"
|
" apt install autoconf automake libtool yasm nasm tcl\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On macOS (with homebrew):\n"
|
"On macOS (with homebrew):\n"
|
||||||
" brew install autoconf automake bison libtool pkg-config yasm\n"
|
" brew install cmake autoconf automake libtool yasm nasm\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Other platforms:\n"
|
"Other platforms:\n"
|
||||||
" Install equivalent packages.\n")
|
" Install equivalent packages.\n")
|
||||||
|
@@ -17,46 +17,19 @@
|
|||||||
# ***** END GPL LICENSE BLOCK *****
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(CLANG_EXTRA_ARGS
|
set(CLANG_EXTRA_ARGS
|
||||||
-DLLVM_DIR="${LIBDIR}/llvm/lib/cmake/llvm/"
|
-DCLANG_PATH_TO_LLVM_SOURCE=${BUILD_DIR}/ll/src/ll
|
||||||
|
-DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm
|
||||||
-DLLVM_USE_CRT_RELEASE=MD
|
-DLLVM_USE_CRT_RELEASE=MD
|
||||||
-DLLVM_USE_CRT_DEBUG=MDd
|
-DLLVM_USE_CRT_DEBUG=MDd
|
||||||
-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
|
-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
|
||||||
)
|
)
|
||||||
|
|
||||||
set(BUILD_CLANG_TOOLS OFF)
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(CLANG_GENERATOR "Ninja")
|
set(CLANG_GENERATOR "Ninja")
|
||||||
else()
|
else()
|
||||||
set(CLANG_GENERATOR "Unix Makefiles")
|
set(CLANG_GENERATOR "Unix Makefiles")
|
||||||
endif()
|
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
|
ExternalProject_Add(external_clang
|
||||||
URL ${CLANG_URI}
|
URL ${CLANG_URI}
|
||||||
@@ -86,19 +59,3 @@ add_dependencies(
|
|||||||
external_clang
|
external_clang
|
||||||
ll
|
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(
|
|
||||||
external_clang
|
|
||||||
external_xml2
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
@@ -50,13 +50,7 @@ if(APPLE)
|
|||||||
set(FFMPEG_EXTRA_FLAGS
|
set(FFMPEG_EXTRA_FLAGS
|
||||||
${FFMPEG_EXTRA_FLAGS}
|
${FFMPEG_EXTRA_FLAGS}
|
||||||
--target-os=darwin
|
--target-os=darwin
|
||||||
--x86asmexe=${LIBDIR}/nasm/bin/nasm
|
)
|
||||||
)
|
|
||||||
elseif(UNIX)
|
|
||||||
set(FFMPEG_EXTRA_FLAGS
|
|
||||||
${FFMPEG_EXTRA_FLAGS}
|
|
||||||
--x86asmexe=${LIBDIR}/nasm/bin/nasm
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_ffmpeg
|
ExternalProject_Add(external_ffmpeg
|
||||||
@@ -100,6 +94,8 @@ ExternalProject_Add(external_ffmpeg
|
|||||||
--disable-version3
|
--disable-version3
|
||||||
--disable-debug
|
--disable-debug
|
||||||
--enable-optimizations
|
--enable-optimizations
|
||||||
|
--disable-sse
|
||||||
|
--disable-ssse3
|
||||||
--enable-ffplay
|
--enable-ffplay
|
||||||
--disable-openssl
|
--disable-openssl
|
||||||
--disable-securetransport
|
--disable-securetransport
|
||||||
@@ -147,12 +143,6 @@ if(WIN32)
|
|||||||
external_zlib_mingw
|
external_zlib_mingw
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX)
|
|
||||||
add_dependencies(
|
|
||||||
external_ffmpeg
|
|
||||||
external_nasm
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||||
ExternalProject_Add_Step(external_ffmpeg after_install
|
ExternalProject_Add_Step(external_ffmpeg after_install
|
||||||
|
@@ -24,8 +24,7 @@ set(FREETYPE_EXTRA_ARGS
|
|||||||
-DFT_WITH_HARFBUZZ=OFF
|
-DFT_WITH_HARFBUZZ=OFF
|
||||||
-DFT_WITH_BZIP2=OFF
|
-DFT_WITH_BZIP2=OFF
|
||||||
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
|
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
|
||||||
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE
|
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE)
|
||||||
-DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_freetype
|
ExternalProject_Add(external_freetype
|
||||||
URL ${FREETYPE_URI}
|
URL ${FREETYPE_URI}
|
||||||
|
@@ -1,108 +0,0 @@
|
|||||||
# ***** 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 *****
|
|
||||||
|
|
||||||
set(GMP_EXTRA_ARGS -enable-cxx)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# Shared for windows because static libs will drag in a libgcc dependency.
|
|
||||||
set(GMP_OPTIONS --disable-static --enable-shared --enable-fat --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32)
|
|
||||||
else()
|
|
||||||
set(GMP_OPTIONS --enable-static --disable-shared )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
||||||
set(GMP_OPTIONS
|
|
||||||
${GMP_OPTIONS}
|
|
||||||
--disable-assembly
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(GMP_OPTIONS
|
|
||||||
${GMP_OPTIONS}
|
|
||||||
--with-pic
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
elseif(UNIX)
|
|
||||||
set(GMP_OPTIONS
|
|
||||||
${GMP_OPTIONS}
|
|
||||||
--with-pic
|
|
||||||
--enable-fat
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_gmp
|
|
||||||
URL ${GMP_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${GMP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/gmp
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make -j${MAKE_THREADS}
|
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
|
||||||
INSTALL_DIR ${LIBDIR}/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set_target_properties(external_gmp PROPERTIES FOLDER Mingw)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/gmp/bin/libgmp-10.dll ${HARVEST_TARGET}/gmp/lib/libgmp-10.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib ${HARVEST_TARGET}/gmp/lib/libgmp-10.lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmp/include ${HARVEST_TARGET}/gmp/include
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Debug AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# gmpxx is somewhat special, it builds on top of the C style gmp library but exposes C++ bindings
|
|
||||||
# given the C++ ABI between MSVC and mingw is not compatible, we need to build the bindings
|
|
||||||
# with MSVC, while GMP can only be build with mingw.
|
|
||||||
ExternalProject_Add(external_gmpxx
|
|
||||||
URL ${GMP_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${GMP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/gmpxx
|
|
||||||
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_gmpxx.txt ${BUILD_DIR}/gmpxx/src/external_gmpxx/CMakeLists.txt &&
|
|
||||||
${CMAKE_COMMAND} -E copy ${PATCH_DIR}/config_gmpxx.h ${BUILD_DIR}/gmpxx/src/external_gmpxx/config.h
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmpxx ${DEFAULT_CMAKE_FLAGS} -DGMP_LIBRARY=${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib -DGMP_INCLUDE_DIR=${BUILD_DIR}/gmp/src/external_gmp -DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
INSTALL_DIR ${LIBDIR}/gmpxx
|
|
||||||
)
|
|
||||||
set_target_properties(external_gmpxx PROPERTIES FOLDER Mingw)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_gmpxx
|
|
||||||
external_gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add_Step(external_gmpxx after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmpxx/ ${HARVEST_TARGET}/gmp
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
|
|
||||||
endif()
|
|
@@ -1,46 +0,0 @@
|
|||||||
# ***** 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 *****
|
|
||||||
|
|
||||||
set(HARU_EXTRA_ARGS
|
|
||||||
-DLIBHPDF_SHARED=OFF
|
|
||||||
-DLIBHPDF_STATIC=ON
|
|
||||||
-DLIBHPDF_EXAMPLES=OFF
|
|
||||||
-DLIBHPDF_ENABLE_EXCEPTIONS=ON
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_haru
|
|
||||||
URL ${HARU_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${HARU_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/haru
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/haru/src/external_haru < ${PATCH_DIR}/haru.diff
|
|
||||||
CMAKE_ARGS
|
|
||||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/haru
|
|
||||||
${DEFAULT_CMAKE_FLAGS} ${HARU_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/haru
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_haru after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/haru/include ${HARVEST_TARGET}/haru/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/haru/lib/libhpdfs.lib ${HARVEST_TARGET}/haru/lib/libhpdfs.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@@ -26,7 +26,6 @@ endif()
|
|||||||
message("HARVEST_TARGET = ${HARVEST_TARGET}")
|
message("HARVEST_TARGET = ${HARVEST_TARGET}")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
add_custom_target(Harvest_Release_Results
|
add_custom_target(Harvest_Release_Results
|
||||||
COMMAND # jpeg rename libfile + copy include
|
COMMAND # jpeg rename libfile + copy include
|
||||||
@@ -43,7 +42,7 @@ if(BUILD_MODE STREQUAL Release)
|
|||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||||
# tiff
|
# tiff
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ &&
|
||||||
DEPENDS
|
DEPENDS
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
@@ -90,18 +89,12 @@ harvest(freetype/include freetype/include "*.h")
|
|||||||
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||||
harvest(glew/include glew/include "*.h")
|
harvest(glew/include glew/include "*.h")
|
||||||
harvest(glew/lib glew/lib "*.a")
|
harvest(glew/lib glew/lib "*.a")
|
||||||
harvest(gmp/include gmp/include "*.h")
|
|
||||||
harvest(gmp/lib gmp/lib "*.a")
|
|
||||||
harvest(jemalloc/include jemalloc/include "*.h")
|
harvest(jemalloc/include jemalloc/include "*.h")
|
||||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||||
harvest(jpg/include jpeg/include "*.h")
|
harvest(jpg/include jpeg/include "*.h")
|
||||||
harvest(jpg/lib jpeg/lib "libjpeg.a")
|
harvest(jpg/lib jpeg/lib "libjpeg.a")
|
||||||
harvest(lame/lib ffmpeg/lib "*.a")
|
harvest(lame/lib ffmpeg/lib "*.a")
|
||||||
harvest(clang/bin llvm/bin "clang-format")
|
harvest(clang/bin llvm/bin "clang-format")
|
||||||
if(BUILD_CLANG_TOOLS)
|
|
||||||
harvest(clang/bin llvm/bin "clang-tidy")
|
|
||||||
harvest(clang/share/clang llvm/share "run-clang-tidy.py")
|
|
||||||
endif()
|
|
||||||
harvest(clang/include llvm/include "*")
|
harvest(clang/include llvm/include "*")
|
||||||
harvest(llvm/include llvm/include "*")
|
harvest(llvm/include llvm/include "*")
|
||||||
harvest(llvm/bin llvm/bin "llvm-config")
|
harvest(llvm/bin llvm/bin "llvm-config")
|
||||||
@@ -139,19 +132,14 @@ harvest(openimageio/bin openimageio/bin "maketx")
|
|||||||
harvest(openimageio/bin openimageio/bin "oiiotool")
|
harvest(openimageio/bin openimageio/bin "oiiotool")
|
||||||
harvest(openimageio/include openimageio/include "*")
|
harvest(openimageio/include openimageio/include "*")
|
||||||
harvest(openimageio/lib openimageio/lib "*.a")
|
harvest(openimageio/lib openimageio/lib "*.a")
|
||||||
if((NOT APPLE) OR ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
|
||||||
harvest(embree/include embree/include "*.h")
|
|
||||||
harvest(embree/lib embree/lib "*.a")
|
|
||||||
endif()
|
|
||||||
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
||||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||||
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||||
harvest(openvdb/lib openvdb/lib "*.a")
|
harvest(openvdb/lib openvdb/lib "*.a")
|
||||||
harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
|
|
||||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||||
harvest(osl/bin osl/bin "oslc")
|
harvest(osl/bin osl/bin "oslc")
|
||||||
@@ -160,8 +148,6 @@ harvest(osl/lib osl/lib "*.a")
|
|||||||
harvest(osl/shaders osl/shaders "*.h")
|
harvest(osl/shaders osl/shaders "*.h")
|
||||||
harvest(png/include png/include "*.h")
|
harvest(png/include png/include "*.h")
|
||||||
harvest(png/lib png/lib "*.a")
|
harvest(png/lib png/lib "*.a")
|
||||||
harvest(pugixml/include pugixml/include "*.hpp")
|
|
||||||
harvest(pugixml/lib pugixml/lib "*.a")
|
|
||||||
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m")
|
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m")
|
||||||
harvest(python/include python/include "*h")
|
harvest(python/include python/include "*h")
|
||||||
harvest(python/lib python/lib "*")
|
harvest(python/lib python/lib "*")
|
||||||
@@ -182,13 +168,11 @@ harvest(vpx/lib ffmpeg/lib "*.a")
|
|||||||
harvest(webp/lib ffmpeg/lib "*.a")
|
harvest(webp/lib ffmpeg/lib "*.a")
|
||||||
harvest(x264/lib ffmpeg/lib "*.a")
|
harvest(x264/lib ffmpeg/lib "*.a")
|
||||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(embree/include embree/include "*.h")
|
||||||
|
harvest(embree/lib embree/lib "*.a")
|
||||||
harvest(usd/include usd/include "*.h")
|
harvest(usd/include usd/include "*.h")
|
||||||
harvest(usd/lib/usd usd/lib/usd "*")
|
harvest(usd/lib/usd usd/lib/usd "*")
|
||||||
harvest(usd/plugin usd/plugin "*")
|
harvest(usd/plugin usd/plugin "*")
|
||||||
harvest(potrace/include potrace/include "*.h")
|
|
||||||
harvest(potrace/lib potrace/lib "*.a")
|
|
||||||
harvest(haru/include haru/include "*.h")
|
|
||||||
harvest(haru/lib haru/lib "*.a")
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
harvest(libglu/lib mesa/lib "*.so*")
|
harvest(libglu/lib mesa/lib "*.so*")
|
||||||
|
@@ -22,22 +22,6 @@ if(WIN32)
|
|||||||
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
||||||
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
||||||
)
|
)
|
||||||
elseif(APPLE)
|
|
||||||
# Use bison installed via Homebrew.
|
|
||||||
# The one which comes which Xcode toolset is too old.
|
|
||||||
if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
|
||||||
set(HOMEBREW_LOCATION "/opt/homebrew")
|
|
||||||
else()
|
|
||||||
set(HOMEBREW_LOCATION "/usr/local")
|
|
||||||
endif()
|
|
||||||
set(ISPC_EXTRA_ARGS_APPLE
|
|
||||||
-DBISON_EXECUTABLE=${HOMEBREW_LOCATION}/opt/bison/bin/bison
|
|
||||||
)
|
|
||||||
elseif(UNIX)
|
|
||||||
set(ISPC_EXTRA_ARGS_UNIX
|
|
||||||
-DCMAKE_C_COMPILER=${LIBDIR}/clang/bin/clang
|
|
||||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/clang/bin/clang++
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ISPC_EXTRA_ARGS
|
set(ISPC_EXTRA_ARGS
|
||||||
@@ -48,13 +32,10 @@ set(ISPC_EXTRA_ARGS
|
|||||||
-DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm
|
-DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm
|
||||||
-DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
-DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||||
-DCLANG_EXECUTABLE=${LIBDIR}/clang/bin/clang
|
-DCLANG_EXECUTABLE=${LIBDIR}/clang/bin/clang
|
||||||
-DCLANGPP_EXECUTABLE=${LIBDIR}/clang/bin/clang++
|
|
||||||
-DISPC_INCLUDE_TESTS=Off
|
-DISPC_INCLUDE_TESTS=Off
|
||||||
-DCLANG_LIBRARY_DIR=${LIBDIR}/clang/lib
|
-DCLANG_LIBRARY_DIR=${LIBDIR}/clang/lib
|
||||||
-DCLANG_INCLUDE_DIRS=${LIBDIR}/clang/include
|
-DCLANG_INCLUDE_DIRS=${LIBDIR}/clang/include
|
||||||
${ISPC_EXTRA_ARGS_WIN}
|
${ISPC_EXTRA_ARGS_WIN}
|
||||||
${ISPC_EXTRA_ARGS_APPLE}
|
|
||||||
${ISPC_EXTRA_ARGS_UNIX}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_ispc
|
ExternalProject_Add(external_ispc
|
||||||
@@ -79,3 +60,4 @@ if(WIN32)
|
|||||||
external_flexbison
|
external_flexbison
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@@ -59,4 +59,4 @@ else(WIN32)
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
||||||
endif()
|
endif(WIN32)
|
||||||
|
@@ -16,17 +16,11 @@
|
|||||||
#
|
#
|
||||||
# ***** END GPL LICENSE BLOCK *****
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
||||||
set(LLVM_TARGETS AArch64)
|
|
||||||
else()
|
|
||||||
set(LLVM_TARGETS X86)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(LLVM_EXTRA_ARGS
|
set(LLVM_EXTRA_ARGS
|
||||||
-DLLVM_USE_CRT_RELEASE=MD
|
-DLLVM_USE_CRT_RELEASE=MD
|
||||||
-DLLVM_USE_CRT_DEBUG=MDd
|
-DLLVM_USE_CRT_DEBUG=MDd
|
||||||
-DLLVM_INCLUDE_TESTS=OFF
|
-DLLVM_INCLUDE_TESTS=OFF
|
||||||
-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS}
|
-DLLVM_TARGETS_TO_BUILD=X86
|
||||||
-DLLVM_INCLUDE_EXAMPLES=OFF
|
-DLLVM_INCLUDE_EXAMPLES=OFF
|
||||||
-DLLVM_ENABLE_TERMINFO=OFF
|
-DLLVM_ENABLE_TERMINFO=OFF
|
||||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||||
|
@@ -1,54 +0,0 @@
|
|||||||
# ***** 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 *****
|
|
||||||
|
|
||||||
set(NANOVDB_EXTRA_ARGS
|
|
||||||
# NanoVDB is header-only, so only need the install target
|
|
||||||
-DNANOVDB_BUILD_UNITTESTS=OFF
|
|
||||||
-DNANOVDB_BUILD_EXAMPLES=OFF
|
|
||||||
-DNANOVDB_BUILD_BENCHMARK=OFF
|
|
||||||
-DNANOVDB_BUILD_DOCS=OFF
|
|
||||||
-DNANOVDB_BUILD_TOOLS=OFF
|
|
||||||
-DNANOVDB_CUDA_KEEP_PTX=OFF
|
|
||||||
# Do not need to include any of the dependencies because of this
|
|
||||||
-DNANOVDB_USE_OPENVDB=OFF
|
|
||||||
-DNANOVDB_USE_OPENGL=OFF
|
|
||||||
-DNANOVDB_USE_OPENCL=OFF
|
|
||||||
-DNANOVDB_USE_CUDA=OFF
|
|
||||||
-DNANOVDB_USE_TBB=OFF
|
|
||||||
-DNANOVDB_USE_BLOSC=OFF
|
|
||||||
-DNANOVDB_USE_ZLIB=OFF
|
|
||||||
-DNANOVDB_USE_OPTIX=OFF
|
|
||||||
-DNANOVDB_ALLOW_FETCHCONTENT=OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(nanovdb
|
|
||||||
URL ${NANOVDB_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${NANOVDB_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/nanovdb
|
|
||||||
SOURCE_SUBDIR nanovdb
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/nanovdb
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(nanovdb after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,29 +0,0 @@
|
|||||||
# ***** 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_nasm
|
|
||||||
URL ${NASM_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH SHA256=${NASM_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/nasm
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/nasm/src/external_nasm < ${PATCH_DIR}/nasm.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/nasm/src/external_nasm/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/nasm
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/nasm/src/external_nasm/ && make -j${MAKE_THREADS}
|
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/nasm/src/external_nasm/ && make install
|
|
||||||
INSTALL_DIR ${LIBDIR}/nasm
|
|
||||||
)
|
|
@@ -38,7 +38,6 @@ ExternalProject_Add(external_numpy
|
|||||||
PREFIX ${BUILD_DIR}/numpy
|
PREFIX ${BUILD_DIR}/numpy
|
||||||
PATCH_COMMAND ${NUMPY_PATCH}
|
PATCH_COMMAND ${NUMPY_PATCH}
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff
|
|
||||||
LOG_BUILD 1
|
LOG_BUILD 1
|
||||||
BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable
|
BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
|
@@ -21,7 +21,6 @@ ExternalProject_Add(external_ogg
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH SHA256=${OGG_HASH}
|
URL_HASH SHA256=${OGG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/ogg
|
PREFIX ${BUILD_DIR}/ogg
|
||||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/ogg/src/external_ogg < ${PATCH_DIR}/ogg.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ogg --disable-shared --enable-static
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ogg --disable-shared --enable-static
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make install
|
||||||
|
@@ -30,13 +30,6 @@ set(OPENCOLORIO_EXTRA_ARGS
|
|||||||
-DOCIO_STATIC_JNIGLUE=OFF
|
-DOCIO_STATIC_JNIGLUE=OFF
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE AND NOT("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
|
||||||
-DOCIO_USE_SSE=OFF
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OCIO_PATCH opencolorio_win.diff)
|
set(OCIO_PATCH opencolorio_win.diff)
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
|
@@ -112,9 +112,6 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DSTOP_ON_WARNING=OFF
|
-DSTOP_ON_WARNING=OFF
|
||||||
-DUSE_EXTERNAL_PUGIXML=ON
|
|
||||||
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
|
||||||
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
|
||||||
${WEBP_FLAGS}
|
${WEBP_FLAGS}
|
||||||
${OIIO_SIMD_FLAGS}
|
${OIIO_SIMD_FLAGS}
|
||||||
)
|
)
|
||||||
@@ -137,7 +134,6 @@ add_dependencies(
|
|||||||
external_jpeg
|
external_jpeg
|
||||||
external_boost
|
external_boost
|
||||||
external_tiff
|
external_tiff
|
||||||
external_pugixml
|
|
||||||
external_openjpeg${OPENJPEG_POSTFIX}
|
external_openjpeg${OPENJPEG_POSTFIX}
|
||||||
${WEBP_DEP}
|
${WEBP_DEP}
|
||||||
)
|
)
|
||||||
|
@@ -22,7 +22,6 @@ ExternalProject_Add(external_openmp
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH MD5=${OPENMP_HASH}
|
URL_HASH MD5=${OPENMP_HASH}
|
||||||
PREFIX ${BUILD_DIR}/openmp
|
PREFIX ${BUILD_DIR}/openmp
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openmp/src/external_openmp < ${PATCH_DIR}/openmp.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
|
||||||
INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id @executable_path/../Resources/lib/libomp.dylib runtime/src/libomp.dylib && make install
|
INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id @executable_path/../Resources/lib/libomp.dylib runtime/src/libomp.dylib && make install
|
||||||
INSTALL_DIR ${LIBDIR}/openmp
|
INSTALL_DIR ${LIBDIR}/openmp
|
||||||
|
@@ -20,14 +20,6 @@ if(BUILD_MODE STREQUAL Debug)
|
|||||||
set(BLOSC_POST _d)
|
set(BLOSC_POST _d)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(OPENVDB_SHARED ON)
|
|
||||||
set(OPENVDB_STATIC OFF)
|
|
||||||
else()
|
|
||||||
set(OPENVDB_SHARED OFF)
|
|
||||||
set(OPENVDB_STATIC ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(OPENVDB_EXTRA_ARGS
|
set(OPENVDB_EXTRA_ARGS
|
||||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
-DBoost_USE_MULTITHREADED=ON
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
@@ -50,10 +42,8 @@ set(OPENVDB_EXTRA_ARGS
|
|||||||
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
# All libs live in openexr, even the ilmbase ones
|
# All libs live in openexr, even the ilmbase ones
|
||||||
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
-DOPENVDB_CORE_SHARED=Off
|
||||||
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
|
||||||
-DOPENVDB_BUILD_BINARIES=Off
|
-DOPENVDB_BUILD_BINARIES=Off
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -96,16 +86,14 @@ add_dependencies(
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include/openvdb ${HARVEST_TARGET}/openvdb/include/openvdb
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll ${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -20,7 +20,6 @@ if(WIN32)
|
|||||||
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
||||||
endif()
|
endif()
|
||||||
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
|
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
|
||||||
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
|
||||||
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
|
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
|
||||||
|
|
||||||
if(NOT BUILD_MODE)
|
if(NOT BUILD_MODE)
|
||||||
@@ -56,7 +55,7 @@ if(WIN32)
|
|||||||
if(MSVC_VERSION GREATER 1909)
|
if(MSVC_VERSION GREATER 1909)
|
||||||
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
||||||
endif()
|
endif()
|
||||||
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
set(COMMON_MSVC_FLAGS "${COMMON_MSVC_FLAGS} /bigobj")
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
if(WITH_OPTIMIZED_DEBUG)
|
||||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
else()
|
else()
|
||||||
@@ -114,32 +113,16 @@ else()
|
|||||||
COMMAND xcode-select --print-path
|
COMMAND xcode-select --print-path
|
||||||
OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
execute_process(
|
set(OSX_ARCHITECTURES x86_64)
|
||||||
COMMAND xcodebuild -version -sdk macosx SDKVersion
|
set(OSX_DEPLOYMENT_TARGET 10.11)
|
||||||
OUTPUT_VARIABLE MACOSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
if(NOT CMAKE_OSX_ARCHITECTURES)
|
|
||||||
execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
message(STATUS "Detected native architecture ${ARCHITECTURE}.")
|
|
||||||
set(CMAKE_OSX_ARCHITECTURES "${ARCHITECTURE}")
|
|
||||||
endif()
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
|
||||||
set(OSX_DEPLOYMENT_TARGET 10.13)
|
|
||||||
else()
|
|
||||||
set(OSX_DEPLOYMENT_TARGET 11.00)
|
|
||||||
endif()
|
|
||||||
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
|
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
|
||||||
|
|
||||||
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
|
||||||
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++")
|
||||||
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin15.0.0) # OS X 10.11
|
||||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
|
||||||
else()
|
|
||||||
set(PLATFORM_BUILD_TARGET --build=aarch64-apple-darwin20.0.0) # macOS 11.00
|
|
||||||
endif()
|
|
||||||
set(PLATFORM_CMAKE_FLAGS
|
set(PLATFORM_CMAKE_FLAGS
|
||||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
-DCMAKE_OSX_ARCHITECTURES:STRING=${OSX_ARCHITECTURES}
|
||||||
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
|
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
|
||||||
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
|
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
|
||||||
)
|
)
|
||||||
@@ -172,7 +155,6 @@ else()
|
|||||||
|
|
||||||
set(CONFIGURE_ENV
|
set(CONFIGURE_ENV
|
||||||
export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} &&
|
export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} &&
|
||||||
export MACOSX_SDK_VERSION=${OSX_DEPLOYMENT_TARGET} &&
|
|
||||||
export CFLAGS=${PLATFORM_CFLAGS} &&
|
export CFLAGS=${PLATFORM_CFLAGS} &&
|
||||||
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
||||||
export LDFLAGS=${PLATFORM_LDFLAGS}
|
export LDFLAGS=${PLATFORM_LDFLAGS}
|
||||||
@@ -195,6 +177,18 @@ set(DEFAULT_CMAKE_FLAGS
|
|||||||
${PLATFORM_CMAKE_FLAGS}
|
${PLATFORM_CMAKE_FLAGS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# We need both flavors to build the thumbnail dlls
|
||||||
|
if(MSVC12)
|
||||||
|
set(GENERATOR_32 "Visual Studio 12 2013")
|
||||||
|
set(GENERATOR_64 "Visual Studio 12 2013 Win64")
|
||||||
|
elseif(MSVC14)
|
||||||
|
set(GENERATOR_32 "Visual Studio 14 2015")
|
||||||
|
set(GENERATOR_64 "Visual Studio 14 2015 Win64")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
|
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
|
||||||
|
@@ -78,10 +78,14 @@ set(OSL_EXTRA_ARGS
|
|||||||
-DINSTALL_DOCS=OFF
|
-DINSTALL_DOCS=OFF
|
||||||
${OSL_SIMD_FLAGS}
|
${OSL_SIMD_FLAGS}
|
||||||
-DPARTIO_LIBRARIES=
|
-DPARTIO_LIBRARIES=
|
||||||
-DPUGIXML_HOME=${LIBDIR}/pugixml
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
if(WIN32)
|
||||||
|
set(OSL_EXTRA_ARGS
|
||||||
|
${OSL_EXTRA_ARGS}
|
||||||
|
-DPUGIXML_HOME=${LIBDIR}/pugixml
|
||||||
|
)
|
||||||
|
elseif(APPLE)
|
||||||
# Make symbol hiding consistent with OIIO which defaults to OFF,
|
# Make symbol hiding consistent with OIIO which defaults to OFF,
|
||||||
# avoids linker warnings on macOS
|
# avoids linker warnings on macOS
|
||||||
set(OSL_EXTRA_ARGS
|
set(OSL_EXTRA_ARGS
|
||||||
@@ -110,9 +114,17 @@ add_dependencies(
|
|||||||
external_zlib
|
external_zlib
|
||||||
external_flexbison
|
external_flexbison
|
||||||
external_openimageio
|
external_openimageio
|
||||||
external_pugixml
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
# Rely on PugiXML compiled with OpenImageIO
|
||||||
|
else()
|
||||||
|
add_dependencies(
|
||||||
|
external_osl
|
||||||
|
external_pugixml
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(external_osl after_install
|
ExternalProject_Add_Step(external_osl after_install
|
||||||
|
@@ -22,10 +22,6 @@ set(PNG_EXTRA_ARGS
|
|||||||
-DPNG_STATIC=ON
|
-DPNG_STATIC=ON
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64"))
|
|
||||||
set(PNG_EXTRA_ARGS ${PNG_EXTRA_ARGS} -DPNG_HARDWARE_OPTIMIZATIONS=ON -DPNG_ARM_NEON=on -DCMAKE_SYSTEM_PROCESSOR="aarch64")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_png
|
ExternalProject_Add(external_png
|
||||||
URL ${PNG_URI}
|
URL ${PNG_URI}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
@@ -1,38 +0,0 @@
|
|||||||
# ***** 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 *****
|
|
||||||
|
|
||||||
set(POTRACE_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
if((WIN32 AND BUILD_MODE STREQUAL Release) OR UNIX)
|
|
||||||
ExternalProject_Add(external_potrace
|
|
||||||
URL ${POTRACE_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${POTRACE_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/potrace
|
|
||||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_potrace.txt ${BUILD_DIR}/potrace/src/external_potrace/CMakeLists.txt
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/potrace ${DEFAULT_CMAKE_FLAGS} ${POTRACE_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/potrace
|
|
||||||
)
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(external_potrace after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/potrace ${HARVEST_TARGET}/potrace
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@@ -30,14 +30,14 @@ ExternalProject_Add(external_pugixml
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(external_pugixml after_install
|
ExternalProject_Add_Step(external_pugixml after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pugixml ${HARVEST_TARGET}/pugixml
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_pugixml after_install
|
ExternalProject_Add_Step(external_pugixml after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/pugixml/lib/pugixml_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
@@ -42,18 +42,13 @@ if(WIN32)
|
|||||||
URL_HASH MD5=${PYTHON_HASH}
|
URL_HASH MD5=${PYTHON_HASH}
|
||||||
PREFIX ${BUILD_DIR}/python
|
PREFIX ${BUILD_DIR}/python
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
|
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE}
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
||||||
)
|
)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
# disable functions that can be in 10.13 sdk but aren't available on 10.9 target
|
||||||
#
|
|
||||||
# Disable libintl (gettext library) as it might come from Homebrew, which makes
|
|
||||||
# it so test program compiles, but the Python does not. This is because for Python
|
|
||||||
# we use isysroot, which seems to forbid using libintl.h.
|
|
||||||
# The gettext functionality seems to come from CoreFoundation, so should be all fine.
|
|
||||||
set(PYTHON_FUNC_CONFIGS
|
set(PYTHON_FUNC_CONFIGS
|
||||||
export ac_cv_func_futimens=no &&
|
export ac_cv_func_futimens=no &&
|
||||||
export ac_cv_func_utimensat=no &&
|
export ac_cv_func_utimensat=no &&
|
||||||
@@ -65,21 +60,13 @@ else()
|
|||||||
export ac_cv_func_getentropy=no &&
|
export ac_cv_func_getentropy=no &&
|
||||||
export ac_cv_func_mkostemp=no &&
|
export ac_cv_func_mkostemp=no &&
|
||||||
export ac_cv_func_mkostemps=no &&
|
export ac_cv_func_mkostemps=no &&
|
||||||
export ac_cv_func_timingsafe_bcmp=no &&
|
export ac_cv_func_timingsafe_bcmp=no)
|
||||||
export ac_cv_header_libintl_h=no &&
|
|
||||||
export ac_cv_lib_intl_textdomain=no
|
|
||||||
)
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
||||||
set(PYTHON_FUNC_CONFIGS ${PYTHON_FUNC_CONFIGS} && export PYTHON_DECIMAL_WITH_MACHINE=ansi64)
|
|
||||||
endif()
|
|
||||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
||||||
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
|
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
|
||||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_macos.diff)
|
|
||||||
else()
|
else()
|
||||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||||
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
||||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
||||||
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
|
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
|
||||||
@@ -89,6 +76,7 @@ else()
|
|||||||
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
||||||
export LDFLAGS=${PYTHON_LDFLAGS} &&
|
export LDFLAGS=${PYTHON_LDFLAGS} &&
|
||||||
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig)
|
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig)
|
||||||
|
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
|
||||||
|
|
||||||
ExternalProject_Add(external_python
|
ExternalProject_Add(external_python
|
||||||
URL ${PYTHON_URI}
|
URL ${PYTHON_URI}
|
||||||
|
@@ -42,7 +42,7 @@ if(UNIX)
|
|||||||
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \
|
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \
|
||||||
-fPIC")
|
-fPIC")
|
||||||
set(SQLITE_CONFIGURE_ENV ${SQLITE_CONFIGURE_ENV} && export LDFLAGS=${SQLITE_LDFLAGS} && export CFLAGS=${SQLITE_CFLAGS})
|
set(SQLITE_CONFIGURE_ENV ${SQLITE_CONFIGURE_ENV} && export LDFLAGS=${SQLITE_LDFLAGS} && export CFLAGS=${SQLITE_CFLAGS})
|
||||||
set(SQLITE_CONFIGURATION_ARGS ${SQLITE_CONFIGURATION_ARGS} --enable-threadsafe --enable-load-extension --enable-json1 --enable-fts4 --enable-fts5 --disable-tcl
|
set(SQLITE_CONFIGURATION_ARGS ${SQLITE_CONFIGURATION_ARGS} --enable-threadsafe --enable-load-extension --enable-json1 --enable-fts4 --enable-fts5
|
||||||
--enable-shared=no)
|
--enable-shared=no)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ ExternalProject_Add(external_sqlite
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH SHA1=${SQLITE_HASH}
|
URL_HASH SHA1=${SQLITE_HASH}
|
||||||
PREFIX ${BUILD_DIR}/sqlite
|
PREFIX ${BUILD_DIR}/sqlite
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/sqlite/src/external_sqlite < ${PATCH_DIR}/sqlite.diff
|
PATCH_COMMAND ${SQLITE_PATCH_CMD}
|
||||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
||||||
|
@@ -20,7 +20,7 @@ set(SSL_CONFIGURE_COMMAND ./Configure)
|
|||||||
set(SSL_PATCH_CMD echo .)
|
set(SSL_PATCH_CMD echo .)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
set(SSL_OS_COMPILER "blender-darwin-x86_64")
|
||||||
else()
|
else()
|
||||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
||||||
|
@@ -12,9 +12,4 @@ my %targets = (
|
|||||||
inherit_from => [ "darwin64-x86_64-cc" ],
|
inherit_from => [ "darwin64-x86_64-cc" ],
|
||||||
cflags => add("-fPIC"),
|
cflags => add("-fPIC"),
|
||||||
},
|
},
|
||||||
"blender-darwin-arm64" => {
|
|
||||||
inherit_from => [ "darwin-common" ],
|
|
||||||
cxxflags => add("-fPIC -arch arm64"),
|
|
||||||
cflags => add("-fPIC -arch arm64"),
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
|
@@ -27,7 +27,6 @@ ExternalProject_Add(external_theora
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH SHA256=${THEORA_HASH}
|
URL_HASH SHA256=${THEORA_HASH}
|
||||||
PREFIX ${BUILD_DIR}/theora
|
PREFIX ${BUILD_DIR}/theora
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/theora/src/external_theora < ${PATCH_DIR}/theora.diff
|
|
||||||
CONFIGURE_COMMAND ${THEORA_CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/theora
|
CONFIGURE_COMMAND ${THEORA_CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/theora
|
||||||
--disable-shared
|
--disable-shared
|
||||||
--enable-static
|
--enable-static
|
||||||
|
@@ -16,12 +16,6 @@
|
|||||||
#
|
#
|
||||||
# ***** END GPL LICENSE BLOCK *****
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WITH_WEBP)
|
|
||||||
set(WITH_TIFF_WEBP ON)
|
|
||||||
else()
|
|
||||||
set(WITH_TIFF_WEBP OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(TIFF_EXTRA_ARGS
|
set(TIFF_EXTRA_ARGS
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||||
@@ -29,8 +23,6 @@ set(TIFF_EXTRA_ARGS
|
|||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-Dlzma=OFF
|
-Dlzma=OFF
|
||||||
-Djbig=OFF
|
-Djbig=OFF
|
||||||
-Dzstd=OFF
|
|
||||||
-Dwebp=${WITH_TIFF_WEBP}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_tiff
|
ExternalProject_Add(external_tiff
|
||||||
|
@@ -120,9 +120,6 @@ set(LLVM_HASH 31eb9ce73dd2a0f8dcab8319fb03f8fc)
|
|||||||
set(CLANG_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang-${LLVM_VERSION}.src.tar.xz)
|
set(CLANG_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang-${LLVM_VERSION}.src.tar.xz)
|
||||||
set(CLANG_HASH 13468e4a44940efef1b75e8641752f90)
|
set(CLANG_HASH 13468e4a44940efef1b75e8641752f90)
|
||||||
|
|
||||||
set(CLANG_TOOLS_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang-tools-extra-${LLVM_VERSION}.src.tar.xz)
|
|
||||||
set(CLANG_TOOLS_HASH c76293870b564c6a7968622b475b7646)
|
|
||||||
|
|
||||||
set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
|
set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
|
||||||
set(OPENMP_HASH 6eade16057edbdecb3c4eef9daa2bfcf)
|
set(OPENMP_HASH 6eade16057edbdecb3c4eef9daa2bfcf)
|
||||||
|
|
||||||
@@ -149,13 +146,9 @@ set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
|
|||||||
set(TBB_HASH 26263622e9187212ec240dcf01b66207)
|
set(TBB_HASH 26263622e9187212ec240dcf01b66207)
|
||||||
|
|
||||||
set(OPENVDB_VERSION 7.0.0)
|
set(OPENVDB_VERSION 7.0.0)
|
||||||
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
set(OPENVDB_URI https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
||||||
set(OPENVDB_HASH fd6c4f168282f7e0e494d290cd531fa8)
|
set(OPENVDB_HASH fd6c4f168282f7e0e494d290cd531fa8)
|
||||||
|
|
||||||
set(NANOVDB_GIT_UID e62f7a0bf1e27397223c61ddeaaf57edf111b77f)
|
|
||||||
set(NANOVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${NANOVDB_GIT_UID}.tar.gz)
|
|
||||||
set(NANOVDB_HASH 90919510bc6ccd630fedc56f748cb199)
|
|
||||||
|
|
||||||
set(IDNA_VERSION 2.9)
|
set(IDNA_VERSION 2.9)
|
||||||
set(CHARDET_VERSION 3.0.4)
|
set(CHARDET_VERSION 3.0.4)
|
||||||
set(URLLIB3_VERSION 1.25.9)
|
set(URLLIB3_VERSION 1.25.9)
|
||||||
@@ -300,9 +293,9 @@ set(USD_VERSION 20.05)
|
|||||||
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
||||||
set(USD_HASH 6d679e739e7f65725d9c029e37dda9fc)
|
set(USD_HASH 6d679e739e7f65725d9c029e37dda9fc)
|
||||||
|
|
||||||
set(OIDN_VERSION 1.2.3)
|
set(OIDN_VERSION 1.2.1)
|
||||||
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||||
set(OIDN_HASH 1f11466c2c3efc27faba5ec7078d12b2)
|
set(OIDN_HASH cbebc1a25eb6de62af3a59e943063608)
|
||||||
|
|
||||||
set(LIBGLU_VERSION 9.0.1)
|
set(LIBGLU_VERSION 9.0.1)
|
||||||
set(LIBGLU_URI ftp://ftp.freedesktop.org/pub/mesa/glu/glu-${LIBGLU_VERSION}.tar.xz)
|
set(LIBGLU_URI ftp://ftp.freedesktop.org/pub/mesa/glu/glu-${LIBGLU_VERSION}.tar.xz)
|
||||||
@@ -312,26 +305,9 @@ set(MESA_VERSION 18.3.1)
|
|||||||
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa//mesa-${MESA_VERSION}.tar.xz)
|
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa//mesa-${MESA_VERSION}.tar.xz)
|
||||||
set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be)
|
set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be)
|
||||||
|
|
||||||
set(NASM_VERSION 2.15.02)
|
|
||||||
set(NASM_URI https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VERSION}/nasm-${NASM_VERSION}.tar.xz)
|
|
||||||
set(NASM_HASH f4fd1329b1713e1ccd34b2fc121c4bcd278c9f91cc4cb205ae8fcd2e4728dd14)
|
|
||||||
|
|
||||||
set(XR_OPENXR_SDK_VERSION 1.0.8)
|
set(XR_OPENXR_SDK_VERSION 1.0.8)
|
||||||
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||||
set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
||||||
|
set(ISPC_VERSION v1.13.0)
|
||||||
set(ISPC_VERSION v1.14.1)
|
|
||||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||||
set(ISPC_HASH 968fbc8dfd16a60ba4e32d2e0e03ea7a)
|
set(ISPC_HASH 4bf5e8d0020c4b9980faa702c1a6f25f)
|
||||||
|
|
||||||
set(GMP_VERSION 6.2.0)
|
|
||||||
set(GMP_URI https://gmplib.org/download/gmp/gmp-${GMP_VERSION}.tar.xz)
|
|
||||||
set(GMP_HASH a325e3f09e6d91e62101e59f9bda3ec1)
|
|
||||||
|
|
||||||
set(POTRACE_VERSION 1.16)
|
|
||||||
set(POTRACE_URI http://potrace.sourceforge.net/download/${POTRACE_VERSION}/potrace-${POTRACE_VERSION}.tar.gz)
|
|
||||||
set(POTRACE_HASH 5f0bd87ddd9a620b0c4e65652ef93d69)
|
|
||||||
|
|
||||||
set(HARU_VERSION 2_3_0)
|
|
||||||
set(HARU_URI https://github.com/libharu/libharu/archive/RELEASE_${HARU_VERSION}.tar.gz)
|
|
||||||
set(HARU_HASH 4f916aa49c3069b3a10850013c507460)
|
|
||||||
|
@@ -24,11 +24,7 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
set(VPX_EXTRA_FLAGS --target=x86_64-darwin13-gcc)
|
||||||
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
|
||||||
else()
|
|
||||||
set(VPX_EXTRA_FLAGS --target=x86_64-darwin17-gcc)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -21,32 +21,12 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
||||||
set(X264_EXTRA_ARGS ${X264_EXTRA_ARGS} "--disable-asm")
|
|
||||||
set(X264_CONFIGURE_ENV echo .)
|
|
||||||
else()
|
|
||||||
set(X264_CONFIGURE_ENV
|
|
||||||
export AS=${LIBDIR}/nasm/bin/nasm
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(X264_CONFIGURE_ENV echo .)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
set(X264_CONFIGURE_ENV
|
|
||||||
export AS=${LIBDIR}/nasm/bin/nasm
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_x264
|
ExternalProject_Add(external_x264
|
||||||
URL ${X264_URI}
|
URL ${X264_URI}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH SHA256=${X264_HASH}
|
URL_HASH SHA256=${X264_HASH}
|
||||||
PREFIX ${BUILD_DIR}/x264
|
PREFIX ${BUILD_DIR}/x264
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && ${X264_CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ &&
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
|
||||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
|
|
||||||
--enable-static
|
--enable-static
|
||||||
--enable-pic
|
--enable-pic
|
||||||
--disable-lavf
|
--disable-lavf
|
||||||
@@ -59,10 +39,3 @@ ExternalProject_Add(external_x264
|
|||||||
if(MSVC)
|
if(MSVC)
|
||||||
set_target_properties(external_x264 PROPERTIES FOLDER Mingw)
|
set_target_properties(external_x264 PROPERTIES FOLDER Mingw)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
add_dependencies(
|
|
||||||
external_x264
|
|
||||||
external_nasm
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -91,41 +91,3 @@ diff -Naur external_blosc.orig/blosc/blosc.c external_blosc/blosc/blosc.c
|
|||||||
|
|
||||||
|
|
||||||
/* Some useful units */
|
/* Some useful units */
|
||||||
diff --git a/blosc/shuffle.c b/blosc/shuffle.c
|
|
||||||
index 84b5095..23053b4 100644
|
|
||||||
--- a/blosc/shuffle.c
|
|
||||||
+++ b/blosc/shuffle.c
|
|
||||||
@@ -490,12 +490,12 @@ void unshuffle(size_t bytesoftype, size_t blocksize,
|
|
||||||
#else /* no __SSE2__ available */
|
|
||||||
|
|
||||||
void shuffle(size_t bytesoftype, size_t blocksize,
|
|
||||||
- uint8_t* _src, uint8_t* _dest) {
|
|
||||||
+ const uint8_t* _src, uint8_t* _dest) {
|
|
||||||
_shuffle(bytesoftype, blocksize, _src, _dest);
|
|
||||||
}
|
|
||||||
|
|
||||||
void unshuffle(size_t bytesoftype, size_t blocksize,
|
|
||||||
- uint8_t* _src, uint8_t* _dest) {
|
|
||||||
+ const uint8_t* _src, uint8_t* _dest) {
|
|
||||||
_unshuffle(bytesoftype, blocksize, _src, _dest);
|
|
||||||
}
|
|
||||||
--- a/cmake/FindSSE.cmake
|
|
||||||
+++ b/cmake/FindSSE.cmake
|
|
||||||
@@ -49,6 +49,17 @@
|
|
||||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
|
||||||
ENDIF (AVX_TRUE)
|
|
||||||
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
||||||
+ execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
+ message(STATUS "Detected architecture ${ARCHITECTURE}")
|
|
||||||
+ IF("${ARCHITECTURE}" STREQUAL "arm64")
|
|
||||||
+ set(SSE2_FOUND false CACHE BOOL "SSE2 available on host")
|
|
||||||
+ set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
|
||||||
+ set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
|
||||||
+ set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
|
||||||
+ set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
|
||||||
+ return()
|
|
||||||
+ ENDIF()
|
|
||||||
+
|
|
||||||
EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE
|
|
||||||
CPUINFO)
|
|
||||||
|
|
@@ -1,4 +0,0 @@
|
|||||||
using python : @PYTHON_SHORT_VERSION@ : @PYTHON_BINARY@
|
|
||||||
: @LIBDIR@/python/include @LIBDIR@/python/include/python@PYTHON_SHORT_VERSION@m/
|
|
||||||
: @LIBDIR@/python/libs
|
|
||||||
;
|
|
@@ -1,22 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
|
||||||
project(libgmpxx)
|
|
||||||
|
|
||||||
include_directories(. cxx ${GMP_INCLUDE_DIR})
|
|
||||||
add_definitions(-D__GMP_WITHIN_GMPXX)
|
|
||||||
add_library(libgmpxx SHARED
|
|
||||||
cxx/dummy.cc
|
|
||||||
cxx/isfuns.cc
|
|
||||||
cxx/ismpf.cc
|
|
||||||
cxx/ismpq.cc
|
|
||||||
cxx/ismpz.cc
|
|
||||||
cxx/ismpznw.cc
|
|
||||||
cxx/limits.cc
|
|
||||||
cxx/osdoprnti.cc
|
|
||||||
cxx/osfuns.cc
|
|
||||||
cxx/osmpf.cc
|
|
||||||
cxx/osmpq.cc
|
|
||||||
cxx/osmpz.cc
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(libgmpxx ${GMP_LIBRARY})
|
|
||||||
install(TARGETS libgmpxx DESTINATION lib)
|
|
@@ -1,54 +0,0 @@
|
|||||||
project(potrace)
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
include_directories(src/include)
|
|
||||||
|
|
||||||
set(SOURCES
|
|
||||||
src/backend_dxf.c
|
|
||||||
src/backend_eps.c
|
|
||||||
src/backend_geojson.c
|
|
||||||
src/backend_pdf.c
|
|
||||||
src/backend_pgm.c
|
|
||||||
src/backend_svg.c
|
|
||||||
src/backend_xfig.c
|
|
||||||
src/bbox.c
|
|
||||||
src/bitmap_io.c
|
|
||||||
src/curve.c
|
|
||||||
src/decompose.c
|
|
||||||
src/flate.c
|
|
||||||
src/greymap.c
|
|
||||||
src/lzw.c
|
|
||||||
src/potracelib.c
|
|
||||||
src/progress_bar.c
|
|
||||||
src/render.c
|
|
||||||
src/trace.c
|
|
||||||
src/trans.c
|
|
||||||
)
|
|
||||||
|
|
||||||
set(HEADERS
|
|
||||||
src/potracelib.h
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
add_definitions(/D_USE_MATH_DEFINES)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_definitions(/DPOTRACE="POTrace")
|
|
||||||
add_definitions(/DVERSION="Blender")
|
|
||||||
add_definitions(/DHAVE_INTTYPES_H)
|
|
||||||
|
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES})
|
|
||||||
|
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
||||||
LIBRARY_OUTPUT_NAME "${PROJECT_NAME}"
|
|
||||||
PUBLIC_HEADER "${HEADERS}"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS ${PROJECT_NAME}
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
LIBRARY DESTINATION lib
|
|
||||||
ARCHIVE DESTINATION lib
|
|
||||||
PUBLIC_HEADER DESTINATION include
|
|
||||||
)
|
|
||||||
|
|
@@ -1,668 +0,0 @@
|
|||||||
/* config.h. Generated from config.in by configure. */
|
|
||||||
/* config.in. Generated from configure.ac by autoheader. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Copyright 1996-2020 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of either:
|
|
||||||
|
|
||||||
* the GNU Lesser General Public License as published by the Free
|
|
||||||
Software Foundation; either version 3 of the License, or (at your
|
|
||||||
option) any later version.
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
or both in parallel, as here.
|
|
||||||
|
|
||||||
The GNU MP Library 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 copies of the GNU General Public License and the
|
|
||||||
GNU Lesser General Public License along with the GNU MP Library. If not,
|
|
||||||
see https://www.gnu.org/licenses/.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Define if building universal (internal helper macro) */
|
|
||||||
/* #undef AC_APPLE_UNIVERSAL_BUILD */
|
|
||||||
|
|
||||||
/* The gmp-mparam.h file (a string) the tune program should suggest updating.
|
|
||||||
*/
|
|
||||||
#define GMP_MPARAM_H_SUGGEST "./mpn/x86_64/coreisbr/gmp-mparam.h"
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `alarm' function. */
|
|
||||||
#define HAVE_ALARM 1
|
|
||||||
|
|
||||||
/* Define to 1 if alloca() works (via gmp-impl.h). */
|
|
||||||
#define HAVE_ALLOCA 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
||||||
*/
|
|
||||||
/* #undef HAVE_ALLOCA_H */
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_CONST 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_MALLOC 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX)))
|
|
||||||
*/
|
|
||||||
//#define HAVE_ATTRIBUTE_MODE 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_NORETURN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `attr_get' function. */
|
|
||||||
/* #undef HAVE_ATTR_GET */
|
|
||||||
|
|
||||||
/* Define to 1 if tests/libtests has calling conventions checking for the CPU
|
|
||||||
*/
|
|
||||||
/* #undef HAVE_CALLING_CONVENTIONS */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `clock' function. */
|
|
||||||
#define HAVE_CLOCK 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `clock_gettime' function */
|
|
||||||
/* #undef HAVE_CLOCK_GETTIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `cputime' function. */
|
|
||||||
/* #undef HAVE_CPUTIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_FGETC 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_FSCANF 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_OPTARG 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_SYS_ERRLIST 0
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_SYS_NERR 0
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_UNGETC 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_VFPRINTF 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
||||||
/* #undef HAVE_DLFCN_H */
|
|
||||||
|
|
||||||
/* Define one of the following to 1 for the format of a `double'.
|
|
||||||
If your format is not among these choices, or you don't know what it is,
|
|
||||||
then leave all undefined.
|
|
||||||
IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves
|
|
||||||
swapped, as used by ARM CPUs in little endian mode. */
|
|
||||||
/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */
|
|
||||||
#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1
|
|
||||||
/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */
|
|
||||||
/* #undef HAVE_DOUBLE_VAX_D */
|
|
||||||
/* #undef HAVE_DOUBLE_VAX_G */
|
|
||||||
/* #undef HAVE_DOUBLE_CRAY_CFP */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
|
||||||
#define HAVE_FCNTL_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <float.h> header file. */
|
|
||||||
#define HAVE_FLOAT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getpagesize' function. */
|
|
||||||
#define HAVE_GETPAGESIZE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getrusage' function. */
|
|
||||||
/* #undef HAVE_GETRUSAGE */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getsysinfo' function. */
|
|
||||||
/* #undef HAVE_GETSYSINFO */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `gettimeofday' function. */
|
|
||||||
#define HAVE_GETTIMEOFDAY 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility))
|
|
||||||
and __attribute__ ((alias)) */
|
|
||||||
#define HAVE_HIDDEN_ALIAS 1
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the host CPU family.
|
|
||||||
If your CPU is not in any of these families, leave all undefined.
|
|
||||||
For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_alpha */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_m68k */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_power */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_powerpc */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_x86 */
|
|
||||||
#define HAVE_HOST_CPU_FAMILY_x86_64 1
|
|
||||||
|
|
||||||
/* Define one of the following to 1 for the host CPU, as per the output of
|
|
||||||
./config.guess. If your CPU is not listed here, leave all undefined. */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev67 */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev68 */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev7 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68020 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68030 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68040 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68060 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68360 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc604 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc604e */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc750 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc7400 */
|
|
||||||
/* #undef HAVE_HOST_CPU_supersparc */
|
|
||||||
/* #undef HAVE_HOST_CPU_i386 */
|
|
||||||
/* #undef HAVE_HOST_CPU_i586 */
|
|
||||||
/* #undef HAVE_HOST_CPU_i686 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentiummmx */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentiumpro */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium2 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium3 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium4 */
|
|
||||||
/* #undef HAVE_HOST_CPU_core2 */
|
|
||||||
/* #undef HAVE_HOST_CPU_nehalem */
|
|
||||||
/* #undef HAVE_HOST_CPU_westmere */
|
|
||||||
/* #undef HAVE_HOST_CPU_sandybridge */
|
|
||||||
#define HAVE_HOST_CPU_ivybridge 1
|
|
||||||
/* #undef HAVE_HOST_CPU_haswell */
|
|
||||||
/* #undef HAVE_HOST_CPU_broadwell */
|
|
||||||
/* #undef HAVE_HOST_CPU_skylake */
|
|
||||||
/* #undef HAVE_HOST_CPU_silvermont */
|
|
||||||
/* #undef HAVE_HOST_CPU_goldmont */
|
|
||||||
/* #undef HAVE_HOST_CPU_k8 */
|
|
||||||
/* #undef HAVE_HOST_CPU_k10 */
|
|
||||||
/* #undef HAVE_HOST_CPU_bulldozer */
|
|
||||||
/* #undef HAVE_HOST_CPU_piledriver */
|
|
||||||
/* #undef HAVE_HOST_CPU_steamroller */
|
|
||||||
/* #undef HAVE_HOST_CPU_excavator */
|
|
||||||
/* #undef HAVE_HOST_CPU_zen */
|
|
||||||
/* #undef HAVE_HOST_CPU_bobcat */
|
|
||||||
/* #undef HAVE_HOST_CPU_jaguar */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z900 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z990 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z9 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z10 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z196 */
|
|
||||||
|
|
||||||
/* Define to 1 iff we have a s390 with 64-bit registers. */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_zarch */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `intmax_t'. */
|
|
||||||
#define HAVE_INTMAX_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `intptr_t'. */
|
|
||||||
#define HAVE_INTPTR_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#define HAVE_INTTYPES_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <invent.h> header file. */
|
|
||||||
/* #undef HAVE_INVENT_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
|
||||||
/* #undef HAVE_LANGINFO_H */
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the endianness of `mp_limb_t'.
|
|
||||||
If the endianness is not a simple big or little, or you don't know what
|
|
||||||
it is, then leave both undefined. */
|
|
||||||
/* #undef HAVE_LIMB_BIG_ENDIAN */
|
|
||||||
#define HAVE_LIMB_LITTLE_ENDIAN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `localeconv' function. */
|
|
||||||
#define HAVE_LOCALECONV 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
|
||||||
#define HAVE_LOCALE_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `long double'. */
|
|
||||||
#define HAVE_LONG_DOUBLE 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `long long'. */
|
|
||||||
#define HAVE_LONG_LONG 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
|
|
||||||
/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
|
||||||
#define HAVE_MEMORY_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `memset' function. */
|
|
||||||
#define HAVE_MEMSET 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `mmap' function. */
|
|
||||||
/* #undef HAVE_MMAP */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `mprotect' function. */
|
|
||||||
#define HAVE_MPROTECT 1
|
|
||||||
|
|
||||||
/* Define to 1 each of the following for which a native (ie. CPU specific)
|
|
||||||
implementation of the corresponding routine exists. */
|
|
||||||
#define HAVE_NATIVE_mpn_add_n 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_add_n_sub_n */
|
|
||||||
#define HAVE_NATIVE_mpn_add_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh2_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh1_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh2_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_addmul_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_3 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_4 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_5 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_6 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_7 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_8 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_2s */
|
|
||||||
#define HAVE_NATIVE_mpn_and_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_andn_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_bdiv_dbm1c 1
|
|
||||||
#define HAVE_NATIVE_mpn_bdiv_q_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_cnd_add_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_cnd_sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_com 1
|
|
||||||
#define HAVE_NATIVE_mpn_copyd 1
|
|
||||||
#define HAVE_NATIVE_mpn_copyi 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_div_qr_1n_pi1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_div_qr_2 */
|
|
||||||
#define HAVE_NATIVE_mpn_divexact_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_divexact_by3c */
|
|
||||||
#define HAVE_NATIVE_mpn_divrem_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_divrem_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_divrem_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_gcd_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_gcd_11 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_gcd_22 */
|
|
||||||
#define HAVE_NATIVE_mpn_hamdist 1
|
|
||||||
#define HAVE_NATIVE_mpn_invert_limb 1
|
|
||||||
#define HAVE_NATIVE_mpn_ior_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_iorn_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_lshift 1
|
|
||||||
#define HAVE_NATIVE_mpn_lshiftc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_lshsub_n */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mod_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1_1p 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mod_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1s_2p 1
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1s_4p 1
|
|
||||||
#define HAVE_NATIVE_mpn_mod_34lsub1 1
|
|
||||||
#define HAVE_NATIVE_mpn_modexact_1_odd 1
|
|
||||||
#define HAVE_NATIVE_mpn_modexact_1c_odd 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_1c 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_3 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_4 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_5 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_6 */
|
|
||||||
#define HAVE_NATIVE_mpn_mul_basecase 1
|
|
||||||
#define HAVE_NATIVE_mpn_mullo_basecase 1
|
|
||||||
#define HAVE_NATIVE_mpn_nand_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_nior_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_popcount 1
|
|
||||||
#define HAVE_NATIVE_mpn_preinv_divrem_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_redc_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_redc_2 */
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh2_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh1_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_rsblsh_nc */
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1add_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1add_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1sub_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_rshift 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */
|
|
||||||
#define HAVE_NATIVE_mpn_sqr_basecase 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sqr_diagonal */
|
|
||||||
#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1
|
|
||||||
#define HAVE_NATIVE_mpn_sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_sub_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_sublsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_sublsh2_n 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_n */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_submul_1c */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_tabselect */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */
|
|
||||||
#define HAVE_NATIVE_mpn_xor_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_xnor_n 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `nl_langinfo' function. */
|
|
||||||
/* #undef HAVE_NL_LANGINFO */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <nl_types.h> header file. */
|
|
||||||
/* #undef HAVE_NL_TYPES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `obstack_vprintf' function. */
|
|
||||||
/* #undef HAVE_OBSTACK_VPRINTF */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `popen' function. */
|
|
||||||
#define HAVE_POPEN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `processor_info' function. */
|
|
||||||
/* #undef HAVE_PROCESSOR_INFO */
|
|
||||||
|
|
||||||
/* Define to 1 if <sys/pstat.h> `struct pst_processor' exists and contains
|
|
||||||
`psp_iticksperclktick'. */
|
|
||||||
/* #undef HAVE_PSP_ITICKSPERCLKTICK */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `pstat_getprocessor' function. */
|
|
||||||
/* #undef HAVE_PSTAT_GETPROCESSOR */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `ptrdiff_t'. */
|
|
||||||
#define HAVE_PTRDIFF_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `quad_t'. */
|
|
||||||
/* #undef HAVE_QUAD_T */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `raise' function. */
|
|
||||||
#define HAVE_RAISE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `read_real_time' function. */
|
|
||||||
/* #undef HAVE_READ_REAL_TIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigaction' function. */
|
|
||||||
/* #undef HAVE_SIGACTION */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigaltstack' function. */
|
|
||||||
/* #undef HAVE_SIGALTSTACK */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigstack' function. */
|
|
||||||
/* #undef HAVE_SIGSTACK */
|
|
||||||
|
|
||||||
/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */
|
|
||||||
#define HAVE_SPEED_CYCLECOUNTER 2
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sstream> header file. */
|
|
||||||
#define HAVE_SSTREAM 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `stack_t'. */
|
|
||||||
/* #undef HAVE_STACK_T */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#define HAVE_STDINT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#define HAVE_STDLIB_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `std::locale'. */
|
|
||||||
#define HAVE_STD__LOCALE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strchr' function. */
|
|
||||||
#define HAVE_STRCHR 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strerror' function. */
|
|
||||||
#define HAVE_STRERROR 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
|
||||||
#define HAVE_STRINGS_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#define HAVE_STRING_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strnlen' function. */
|
|
||||||
#define HAVE_STRNLEN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtol' function. */
|
|
||||||
#define HAVE_STRTOL 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtoul' function. */
|
|
||||||
#define HAVE_STRTOUL 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysconf' function. */
|
|
||||||
/* #undef HAVE_SYSCONF */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysctl' function. */
|
|
||||||
/* #undef HAVE_SYSCTL */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysctlbyname' function. */
|
|
||||||
/* #undef HAVE_SYSCTLBYNAME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `syssgi' function. */
|
|
||||||
/* #undef HAVE_SYSSGI */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/attributes.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_ATTRIBUTES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/iograph.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_IOGRAPH_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_MMAN_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
|
||||||
#define HAVE_SYS_PARAM_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/processor.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_PROCESSOR_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/pstat.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_PSTAT_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_RESOURCE_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
||||||
#define HAVE_SYS_STAT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sysctl.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSCTL_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sysinfo.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSINFO_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/syssgi.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSSGI_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/systemcfg.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSTEMCFG_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/times.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_TIMES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
|
||||||
#define HAVE_SYS_TIME_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
||||||
#define HAVE_SYS_TYPES_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `times' function. */
|
|
||||||
/* #undef HAVE_TIMES */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `uint_least32_t'. */
|
|
||||||
#define HAVE_UINT_LEAST32_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
|
||||||
#define HAVE_UNISTD_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vsnprintf' function and it works properly. */
|
|
||||||
/* #undef HAVE_VSNPRINTF */
|
|
||||||
|
|
||||||
/* Define to 1 for Windos/64 */
|
|
||||||
#define HOST_DOS64 1
|
|
||||||
|
|
||||||
/* Assembler local label prefix */
|
|
||||||
#define LSYM_PREFIX "L"
|
|
||||||
|
|
||||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
||||||
#define LT_OBJDIR ".libs/"
|
|
||||||
|
|
||||||
/* Define to 1 to disable the use of inline assembly */
|
|
||||||
/* #undef NO_ASM */
|
|
||||||
|
|
||||||
/* Name of package */
|
|
||||||
#define PACKAGE "gmp"
|
|
||||||
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html"
|
|
||||||
|
|
||||||
/* Define to the full name of this package. */
|
|
||||||
#define PACKAGE_NAME "GNU MP"
|
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
|
||||||
#define PACKAGE_STRING "GNU MP 6.2.0"
|
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#define PACKAGE_TARNAME "gmp"
|
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
|
||||||
#define PACKAGE_URL "http://www.gnu.org/software/gmp/"
|
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#define PACKAGE_VERSION "6.2.0"
|
|
||||||
|
|
||||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
|
||||||
#define RETSIGTYPE void
|
|
||||||
|
|
||||||
/* The size of `mp_limb_t', as computed by sizeof. */
|
|
||||||
#define SIZEOF_MP_LIMB_T 8
|
|
||||||
|
|
||||||
/* The size of `unsigned', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED 4
|
|
||||||
|
|
||||||
/* The size of `unsigned long', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED_LONG 4
|
|
||||||
|
|
||||||
/* The size of `unsigned short', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED_SHORT 2
|
|
||||||
|
|
||||||
/* The size of `void *', as computed by sizeof. */
|
|
||||||
#define SIZEOF_VOID_P 8
|
|
||||||
|
|
||||||
/* Define to 1 if sscanf requires writable inputs */
|
|
||||||
/* #undef SSCANF_WRITABLE_INPUT */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#define STDC_HEADERS 1
|
|
||||||
|
|
||||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
|
||||||
#define TIME_WITH_SYS_TIME 1
|
|
||||||
|
|
||||||
/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */
|
|
||||||
/* #undef TUNE_SQR_TOOM2_MAX */
|
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#define VERSION "6.2.0"
|
|
||||||
|
|
||||||
/* Define to 1 to enable ASSERT checking, per --enable-assert */
|
|
||||||
/* #undef WANT_ASSERT */
|
|
||||||
|
|
||||||
/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */
|
|
||||||
/* #undef WANT_FAKE_CPUID */
|
|
||||||
|
|
||||||
/* Define to 1 when building a fat binary. */
|
|
||||||
/* #undef WANT_FAT_BINARY */
|
|
||||||
|
|
||||||
/* Define to 1 to enable FFTs for multiplication, per --enable-fft */
|
|
||||||
#define WANT_FFT 1
|
|
||||||
|
|
||||||
/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per
|
|
||||||
--enable-old-fft-full */
|
|
||||||
/* #undef WANT_OLD_FFT_FULL */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=gprof */
|
|
||||||
/* #undef WANT_PROFILING_GPROF */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=instrument */
|
|
||||||
/* #undef WANT_PROFILING_INSTRUMENT */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=prof */
|
|
||||||
/* #undef WANT_PROFILING_PROF */
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the desired temporary memory allocation
|
|
||||||
method, per --enable-alloca. */
|
|
||||||
#define WANT_TMP_ALLOCA 1
|
|
||||||
/* #undef WANT_TMP_REENTRANT */
|
|
||||||
/* #undef WANT_TMP_NOTREENTRANT */
|
|
||||||
/* #undef WANT_TMP_DEBUG */
|
|
||||||
|
|
||||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
||||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
||||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
||||||
# if defined __BIG_ENDIAN__
|
|
||||||
# define WORDS_BIGENDIAN 1
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# ifndef WORDS_BIGENDIAN
|
|
||||||
/* # undef WORDS_BIGENDIAN */
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to 1 if the assembler understands the mulx instruction */
|
|
||||||
/* #undef X86_ASM_MULX */
|
|
||||||
|
|
||||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
|
||||||
`char[]'. */
|
|
||||||
/* #undef YYTEXT_POINTER */
|
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
/* #undef inline */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
|
||||||
nothing if this is not supported. Do not define if restrict is
|
|
||||||
supported directly. */
|
|
||||||
#define restrict __restrict
|
|
||||||
/* Work around a bug in Sun C++: it does not support _Restrict or
|
|
||||||
__restrict__, even though the corresponding Sun C compiler ends up with
|
|
||||||
"#define restrict _Restrict" or "#define restrict __restrict__" in the
|
|
||||||
previous line. Perhaps some future version of Sun C++ will work with
|
|
||||||
restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
|
|
||||||
#if defined __SUNPRO_CC && !defined __RESTRICT
|
|
||||||
# define _Restrict
|
|
||||||
# define __restrict__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
|
||||||
code using `volatile' can become incorrect without. Disable with care. */
|
|
||||||
/* #undef volatile */
|
|
@@ -9,62 +9,3 @@
|
|||||||
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
|
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
|
||||||
enabled libopus && {
|
enabled libopus && {
|
||||||
enabled libopus_decoder && {
|
enabled libopus_decoder && {
|
||||||
--- a/libavcodec/cfhddata.c
|
|
||||||
+++ b/libavcodec/cfhddata.c
|
|
||||||
@@ -276,10 +276,10 @@
|
|
||||||
av_cold int ff_cfhd_init_vlcs(CFHDContext *s)
|
|
||||||
{
|
|
||||||
int i, j, ret = 0;
|
|
||||||
- uint32_t new_cfhd_vlc_bits[NB_VLC_TABLE_18 * 2];
|
|
||||||
- uint8_t new_cfhd_vlc_len[NB_VLC_TABLE_18 * 2];
|
|
||||||
- uint16_t new_cfhd_vlc_run[NB_VLC_TABLE_18 * 2];
|
|
||||||
- int16_t new_cfhd_vlc_level[NB_VLC_TABLE_18 * 2];
|
|
||||||
+ uint32_t *new_cfhd_vlc_bits = av_calloc(sizeof(uint32_t), NB_VLC_TABLE_18 * 2);
|
|
||||||
+ uint8_t *new_cfhd_vlc_len = av_calloc(sizeof(uint8_t), NB_VLC_TABLE_18 * 2);
|
|
||||||
+ uint16_t *new_cfhd_vlc_run = av_calloc(sizeof(uint16_t), NB_VLC_TABLE_18 * 2);
|
|
||||||
+ int16_t *new_cfhd_vlc_level = av_calloc(sizeof(int16_t), NB_VLC_TABLE_18 * 2);
|
|
||||||
|
|
||||||
/** Similar to dv.c, generate signed VLC tables **/
|
|
||||||
|
|
||||||
@@ -305,8 +305,13 @@
|
|
||||||
|
|
||||||
ret = init_vlc(&s->vlc_9, VLC_BITS, j, new_cfhd_vlc_len,
|
|
||||||
1, 1, new_cfhd_vlc_bits, 4, 4, 0);
|
|
||||||
- if (ret < 0)
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ av_free(new_cfhd_vlc_bits);
|
|
||||||
+ av_free(new_cfhd_vlc_len);
|
|
||||||
+ av_free(new_cfhd_vlc_run);
|
|
||||||
+ av_free(new_cfhd_vlc_level);
|
|
||||||
return ret;
|
|
||||||
+ }
|
|
||||||
for (i = 0; i < s->vlc_9.table_size; i++) {
|
|
||||||
int code = s->vlc_9.table[i][0];
|
|
||||||
int len = s->vlc_9.table[i][1];
|
|
||||||
@@ -346,8 +351,14 @@
|
|
||||||
|
|
||||||
ret = init_vlc(&s->vlc_18, VLC_BITS, j, new_cfhd_vlc_len,
|
|
||||||
1, 1, new_cfhd_vlc_bits, 4, 4, 0);
|
|
||||||
- if (ret < 0)
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ av_free(new_cfhd_vlc_bits);
|
|
||||||
+ av_free(new_cfhd_vlc_len);
|
|
||||||
+ av_free(new_cfhd_vlc_run);
|
|
||||||
+ av_free(new_cfhd_vlc_level);
|
|
||||||
return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
av_assert0(s->vlc_18.table_size == 4572);
|
|
||||||
|
|
||||||
for (i = 0; i < s->vlc_18.table_size; i++) {
|
|
||||||
@@ -367,5 +378,10 @@
|
|
||||||
s->table_18_rl_vlc[i].run = run;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ av_free(new_cfhd_vlc_bits);
|
|
||||||
+ av_free(new_cfhd_vlc_len);
|
|
||||||
+ av_free(new_cfhd_vlc_run);
|
|
||||||
+ av_free(new_cfhd_vlc_level);
|
|
||||||
+
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/src/hpdf_image_ccitt.c b/src/hpdf_image_ccitt.c
|
|
||||||
index 8672763..9be531a 100644
|
|
||||||
--- a/src/hpdf_image_ccitt.c
|
|
||||||
+++ b/src/hpdf_image_ccitt.c
|
|
||||||
@@ -21,7 +21,6 @@
|
|
||||||
#include <memory.h>
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
-#define G3CODES
|
|
||||||
#include "t4.h"
|
|
||||||
|
|
||||||
typedef unsigned int uint32;
|
|
11
build_files/build_environment/patches/hdf5.diff
Normal file
11
build_files/build_environment/patches/hdf5.diff
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
--- UserMacros.cmake
|
||||||
|
+++ UserMacros.cmake
|
||||||
|
@@ -16,6 +16,8 @@
|
||||||
|
if (BUILD_USER_DEFINED_LIBS)
|
||||||
|
MACRO_USER_DEFINED_LIBS ()
|
||||||
|
endif (BUILD_USER_DEFINED_LIBS)
|
||||||
|
+
|
||||||
|
+include(Config/cmake/usermacros/windows_mt.cmake)
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#------------------- E X A M P L E E N D -----------------------------------
|
||||||
|
#-----------------------------------------------------------------------------
|
@@ -19,67 +19,18 @@ diff -Naur orig/CMakeLists.txt external_ispc/CMakeLists.txt
|
|||||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||||
- ${LLVM_INCLUDE_DIRS}
|
- ${LLVM_INCLUDE_DIRS}
|
||||||
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
||||||
${GENX_DEPS_DIR}/include
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||||
|
# Compile options
|
||||||
diff -Naur orig/cmake/GenerateBuiltins.cmake.txt external_ispc/cmake/GenerateBuiltins.cmake.txt
|
diff -Naur orig/cmake/GenerateBuiltins.cmake.txt external_ispc/cmake/GenerateBuiltins.cmake.txt
|
||||||
+++ orig/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
+++ orig/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||||
+++ external_ispc/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
+++ external_ispc/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||||
@@ -97,6 +97,8 @@
|
@@ -97,6 +97,8 @@
|
||||||
|
|
||||||
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
||||||
set(target_arch "i686")
|
set(target_arch "i386")
|
||||||
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
||||||
+ set(SKIP ON)
|
+ set(SKIP ON)
|
||||||
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
||||||
set(target_arch "x86_64")
|
set(target_arch "x86_64")
|
||||||
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index 46a8db8..f53beef 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -36,8 +36,12 @@
|
|
||||||
cmake_minimum_required(VERSION 3.13)
|
|
||||||
|
|
||||||
if (UNIX)
|
|
||||||
- set(CMAKE_C_COMPILER "clang")
|
|
||||||
- set(CMAKE_CXX_COMPILER "clang++")
|
|
||||||
+ if (NOT CMAKE_C_COMPILER)
|
|
||||||
+ set(CMAKE_C_COMPILER "clang")
|
|
||||||
+ endif()
|
|
||||||
+ if (NOT CMAKE_CXX_COMPILER)
|
|
||||||
+ set(CMAKE_CXX_COMPILER "clang++")
|
|
||||||
+ endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PROJECT_NAME ispc)
|
|
||||||
@@ -412,6 +416,29 @@ else()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
+# Link against libstdc++.a which must be provided to the linker after
|
|
||||||
+# LLVM and CLang libraries.
|
|
||||||
+# This is needed because some of LLVM/CLang dependencies are using
|
|
||||||
+# std::make_shared, which is defined in one of those:
|
|
||||||
+# - libclang-cpp.so
|
|
||||||
+# - libstdc++.a
|
|
||||||
+# Using the former one is tricky because then generated binary depends
|
|
||||||
+# on a library which is outside of the LD_LIBRARY_PATH.
|
|
||||||
+#
|
|
||||||
+# Hence, using C++ implementation from G++ which seems to work just fine.
|
|
||||||
+# In fact, from investigation seems that libclang-cpp.so itself is pulling
|
|
||||||
+# std::_Sp_make_shared_tag from G++'s libstdc++.a.
|
|
||||||
+if(UNIX AND NOT APPLE)
|
|
||||||
+ execute_process(
|
|
||||||
+ COMMAND g++ --print-file-name libstdc++.a
|
|
||||||
+ OUTPUT_VARIABLE GCC_LIBSTDCXX_A
|
|
||||||
+ OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
+ )
|
|
||||||
+ if(GCC_LIBSTDCXX_A AND EXISTS ${GCC_LIBSTDCXX_A})
|
|
||||||
+ target_link_libraries(${PROJECT_NAME} ${GCC_LIBSTDCXX_A})
|
|
||||||
+ endif()
|
|
||||||
+endif()
|
|
||||||
+
|
|
||||||
# Build target for utility checking host ISA
|
|
||||||
if (ISPC_INCLUDE_UTILS)
|
|
||||||
add_executable(check_isa "")
|
|
||||||
|
@@ -1,129 +0,0 @@
|
|||||||
diff --git a/output/macho.h b/output/macho.h
|
|
||||||
index 538c531e..fd5e8849 100644
|
|
||||||
--- a/output/macho.h
|
|
||||||
+++ b/output/macho.h
|
|
||||||
@@ -60,6 +60,8 @@
|
|
||||||
#define LC_SEGMENT 0x1
|
|
||||||
#define LC_SEGMENT_64 0x19
|
|
||||||
#define LC_SYMTAB 0x2
|
|
||||||
+#define LC_VERSION_MIN_MACOSX 0x24
|
|
||||||
+#define LC_BUILD_VERSION 0x32
|
|
||||||
|
|
||||||
/* Symbol type bits */
|
|
||||||
#define N_STAB 0xe0
|
|
||||||
diff --git a/output/outmacho.c b/output/outmacho.c
|
|
||||||
index 08147883..de6ec902 100644
|
|
||||||
--- a/output/outmacho.c
|
|
||||||
+++ b/output/outmacho.c
|
|
||||||
@@ -38,6 +38,8 @@
|
|
||||||
|
|
||||||
#include "compiler.h"
|
|
||||||
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+
|
|
||||||
#include "nctype.h"
|
|
||||||
|
|
||||||
#include "nasm.h"
|
|
||||||
@@ -64,6 +66,8 @@
|
|
||||||
#define MACHO_SYMCMD_SIZE 24
|
|
||||||
#define MACHO_NLIST_SIZE 12
|
|
||||||
#define MACHO_RELINFO_SIZE 8
|
|
||||||
+#define MACHO_BUILD_VERSION_SIZE 24
|
|
||||||
+#define MACHO_VERSION_MIN_MACOSX_SIZE 16
|
|
||||||
|
|
||||||
#define MACHO_HEADER64_SIZE 32
|
|
||||||
#define MACHO_SEGCMD64_SIZE 72
|
|
||||||
@@ -1224,6 +1228,46 @@ static void macho_layout_symbols (uint32_t *numsyms,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+static bool get_full_version_from_env (const char *variable_name,
|
|
||||||
+ int *r_major,
|
|
||||||
+ int *r_minor,
|
|
||||||
+ int *r_patch) {
|
|
||||||
+ *r_major = 0;
|
|
||||||
+ *r_minor = 0;
|
|
||||||
+ *r_patch = 0;
|
|
||||||
+
|
|
||||||
+ const char *value = getenv(variable_name);
|
|
||||||
+ if (value == NULL || value[0] == '\0') {
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ const char *current_value = value;
|
|
||||||
+ const char *end_value = value + strlen(value);
|
|
||||||
+
|
|
||||||
+ char *endptr;
|
|
||||||
+
|
|
||||||
+ *r_major = strtol(current_value, &endptr, 10);
|
|
||||||
+ if (endptr >= end_value) {
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ current_value = endptr + 1;
|
|
||||||
+
|
|
||||||
+ *r_minor = strtol(current_value, &endptr, 10);
|
|
||||||
+ if (endptr >= end_value) {
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ current_value = endptr + 1;
|
|
||||||
+
|
|
||||||
+ *r_patch = strtol(current_value, &endptr, 10);
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static bool need_version_min_macosx_command (void) {
|
|
||||||
+ return getenv("MACOSX_DEPLOYMENT_TARGET") &&
|
|
||||||
+ getenv("MACOSX_SDK_VERSION");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Calculate some values we'll need for writing later. */
|
|
||||||
|
|
||||||
static void macho_calculate_sizes (void)
|
|
||||||
@@ -1270,6 +1314,12 @@ static void macho_calculate_sizes (void)
|
|
||||||
head_sizeofcmds += fmt.segcmd_size + seg_nsects * fmt.sectcmd_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* LC_VERSION_MIN_MACOSX */
|
|
||||||
+ if (need_version_min_macosx_command()) {
|
|
||||||
+ ++head_ncmds;
|
|
||||||
+ head_sizeofcmds += MACHO_VERSION_MIN_MACOSX_SIZE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (nsyms > 0) {
|
|
||||||
++head_ncmds;
|
|
||||||
head_sizeofcmds += MACHO_SYMCMD_SIZE;
|
|
||||||
@@ -1653,6 +1703,33 @@ static void macho_write (void)
|
|
||||||
else
|
|
||||||
nasm_warn(WARN_OTHER, "no sections?");
|
|
||||||
|
|
||||||
+#define ENCODE_BUILD_VERSION(major, minor, patch) \
|
|
||||||
+ (((major) << 16) | ((minor) << 8) | (patch))
|
|
||||||
+
|
|
||||||
+ if (0) {
|
|
||||||
+ fwriteint32_t(LC_BUILD_VERSION, ofile); /* cmd == LC_BUILD_VERSION */
|
|
||||||
+ fwriteint32_t(MACHO_BUILD_VERSION_SIZE, ofile); /* size of load command */
|
|
||||||
+ fwriteint32_t(1, ofile); /* platform */
|
|
||||||
+ fwriteint32_t(ENCODE_BUILD_VERSION(10, 13, 0), ofile); /* minos, X.Y.Z is encoded in nibbles xxxx.yy.zz */
|
|
||||||
+ fwriteint32_t(ENCODE_BUILD_VERSION(10, 15, 4), ofile); /* sdk, X.Y.Z is encoded in nibbles xxxx.yy.zz */
|
|
||||||
+ fwriteint32_t(0, ofile); /* number of tool entries following this */
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (need_version_min_macosx_command()) {
|
|
||||||
+ int sdk_major, sdk_minor, sdk_patch;
|
|
||||||
+ get_full_version_from_env("MACOSX_SDK_VERSION", &sdk_major, &sdk_minor, &sdk_patch);
|
|
||||||
+
|
|
||||||
+ int version_major, version_minor, version_patch;
|
|
||||||
+ get_full_version_from_env("MACOSX_DEPLOYMENT_TARGET", &version_major, &version_minor, &version_patch);
|
|
||||||
+
|
|
||||||
+ fwriteint32_t(LC_VERSION_MIN_MACOSX, ofile); /* cmd == LC_VERSION_MIN_MACOSX */
|
|
||||||
+ fwriteint32_t(MACHO_VERSION_MIN_MACOSX_SIZE, ofile); /* size of load command */
|
|
||||||
+ fwriteint32_t(ENCODE_BUILD_VERSION(version_major, version_minor, version_patch), ofile); /* minos, X.Y.Z is encoded in nibbles xxxx.yy.zz */
|
|
||||||
+ fwriteint32_t(ENCODE_BUILD_VERSION(sdk_major, sdk_minor, sdk_patch), ofile); /* sdk, X.Y.Z is encoded in nibbles xxxx.yy.zz */
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+#undef ENCODE_BUILD_VERSION
|
|
||||||
+
|
|
||||||
if (nsyms > 0) {
|
|
||||||
/* write out symbol command */
|
|
||||||
fwriteint32_t(LC_SYMTAB, ofile); /* cmd == LC_SYMTAB */
|
|
@@ -1,27 +0,0 @@
|
|||||||
diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
|
|
||||||
index ba2b1f4..b10f7df 100644
|
|
||||||
--- a/numpy/distutils/system_info.py
|
|
||||||
+++ b/numpy/distutils/system_info.py
|
|
||||||
@@ -2164,8 +2164,8 @@ class accelerate_info(system_info):
|
|
||||||
'accelerate' in libraries):
|
|
||||||
if intel:
|
|
||||||
args.extend(['-msse3'])
|
|
||||||
- else:
|
|
||||||
- args.extend(['-faltivec'])
|
|
||||||
+# else:
|
|
||||||
+# args.extend(['-faltivec'])
|
|
||||||
args.extend([
|
|
||||||
'-I/System/Library/Frameworks/vecLib.framework/Headers'])
|
|
||||||
link_args.extend(['-Wl,-framework', '-Wl,Accelerate'])
|
|
||||||
@@ -2174,8 +2174,8 @@ class accelerate_info(system_info):
|
|
||||||
'veclib' in libraries):
|
|
||||||
if intel:
|
|
||||||
args.extend(['-msse3'])
|
|
||||||
- else:
|
|
||||||
- args.extend(['-faltivec'])
|
|
||||||
+# else:
|
|
||||||
+# args.extend(['-faltivec'])
|
|
||||||
args.extend([
|
|
||||||
'-I/System/Library/Frameworks/vecLib.framework/Headers'])
|
|
||||||
link_args.extend(['-Wl,-framework', '-Wl,vecLib'])
|
|
||||||
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/include/ogg/os_types.h b/include/ogg/os_types.h
|
|
||||||
index eb8a322..6f73b72 100644
|
|
||||||
--- a/include/ogg/os_types.h
|
|
||||||
+++ b/include/ogg/os_types.h
|
|
||||||
@@ -71,6 +71,7 @@
|
|
||||||
#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
|
|
||||||
|
|
||||||
# include <sys/types.h>
|
|
||||||
+# include <stdint.h>
|
|
||||||
typedef int16_t ogg_int16_t;
|
|
||||||
typedef uint16_t ogg_uint16_t;
|
|
||||||
typedef int32_t ogg_int32_t;
|
|
@@ -86,47 +86,3 @@ index 1f9a3ee..d151e9a 100644
|
|||||||
return isnan( value );
|
return isnan( value );
|
||||||
#else
|
#else
|
||||||
return std::isnan(value);
|
return std::isnan(value);
|
||||||
|
|
||||||
|
|
||||||
diff --git a/DAEValidator/library/src/Dae.cpp b/DAEValidator/library/src/Dae.cpp
|
|
||||||
index 9256ee1..241ad67 100644
|
|
||||||
--- a/DAEValidator/library/src/Dae.cpp
|
|
||||||
+++ b/DAEValidator/library/src/Dae.cpp
|
|
||||||
@@ -304,7 +304,7 @@ namespace opencollada
|
|
||||||
if (auto root_node = root())
|
|
||||||
{
|
|
||||||
const auto & nodes = root_node.selectNodes("//*[@id]");
|
|
||||||
- for (const auto & node : nodes)
|
|
||||||
+ for (const auto node : nodes)
|
|
||||||
{
|
|
||||||
string id = node.attribute("id").value();
|
|
||||||
mIdCache.insert(id);
|
|
||||||
@@ -312,4 +312,4 @@ namespace opencollada
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-}
|
|
||||||
\ No newline at end of file
|
|
||||||
+}
|
|
||||||
diff --git a/DAEValidator/library/src/DaeValidator.cpp b/DAEValidator/library/src/DaeValidator.cpp
|
|
||||||
index 715d903..24423ce 100644
|
|
||||||
--- a/DAEValidator/library/src/DaeValidator.cpp
|
|
||||||
+++ b/DAEValidator/library/src/DaeValidator.cpp
|
|
||||||
@@ -162,7 +162,7 @@ namespace opencollada
|
|
||||||
|
|
||||||
// Find xsi:schemaLocation attributes in dae and try to validate against specified xsd documents
|
|
||||||
const auto & elements = dae.root().selectNodes("//*[@xsi:schemaLocation]");
|
|
||||||
- for (const auto & element : elements)
|
|
||||||
+ for (const auto element : elements)
|
|
||||||
{
|
|
||||||
if (auto schemaLocation = element.attribute("schemaLocation"))
|
|
||||||
{
|
|
||||||
@@ -274,7 +274,7 @@ namespace opencollada
|
|
||||||
int result = 0;
|
|
||||||
map<string, size_t> ids;
|
|
||||||
const auto & nodes = dae.root().selectNodes("//*[@id]");
|
|
||||||
- for (const auto & node : nodes)
|
|
||||||
+ for (const auto node : nodes)
|
|
||||||
{
|
|
||||||
string id = node.attribute("id").value();
|
|
||||||
size_t line = node.line();
|
|
||||||
|
@@ -34,24 +34,3 @@ diff -Naur orig/src/include/OpenImageIO/platform.h external_openimageio/src/incl
|
|||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
diff -Naur orig/src/libutil/ustring.cpp external_openimageio/src/libutil/ustring.cpp
|
|
||||||
--- orig/src/libutil/ustring.cpp 2020-05-11 05:43:52.000000000 +0200
|
|
||||||
+++ external_openimageio/src/libutil/ustring.cpp 2020-11-26 12:06:08.000000000 +0100
|
|
||||||
@@ -337,6 +337,8 @@
|
|
||||||
// the std::string to make it point to our chars! In such a case, the
|
|
||||||
// destructor will be careful not to allow a deallocation.
|
|
||||||
|
|
||||||
+ // Disable internal std::string for Apple silicon based Macs
|
|
||||||
+#if !(defined(__APPLE__) && defined(__arm64__))
|
|
||||||
#if defined(__GNUC__) && !defined(_LIBCPP_VERSION) \
|
|
||||||
&& defined(_GLIBCXX_USE_CXX11_ABI) && _GLIBCXX_USE_CXX11_ABI
|
|
||||||
// NEW gcc ABI
|
|
||||||
@@ -382,7 +384,7 @@
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
+#endif
|
|
||||||
// Remaining cases - just assign the internal string. This may result
|
|
||||||
// in double allocation for the chars. If you care about that, do
|
|
||||||
// something special for your platform, much like we did for gcc and
|
|
@@ -1,23 +0,0 @@
|
|||||||
diff --git a/runtime/src/z_Linux_asm.S b/runtime/src/z_Linux_asm.S
|
|
||||||
index 0d8885e..42aa5ad 100644
|
|
||||||
--- a/runtime/src/z_Linux_asm.S
|
|
||||||
+++ b/runtime/src/z_Linux_asm.S
|
|
||||||
@@ -1540,10 +1540,12 @@ __kmp_unnamed_critical_addr:
|
|
||||||
.comm .gomp_critical_user_,32,8
|
|
||||||
.data
|
|
||||||
.align 8
|
|
||||||
- .global __kmp_unnamed_critical_addr
|
|
||||||
-__kmp_unnamed_critical_addr:
|
|
||||||
+ .global ___kmp_unnamed_critical_addr
|
|
||||||
+___kmp_unnamed_critical_addr:
|
|
||||||
.8byte .gomp_critical_user_
|
|
||||||
- .size __kmp_unnamed_critical_addr,8
|
|
||||||
+# if !(KMP_OS_DARWIN)
|
|
||||||
+ .size ___kmp_unnamed_critical_addr,8
|
|
||||||
+# endif
|
|
||||||
#endif /* KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 */
|
|
||||||
|
|
||||||
#if KMP_OS_LINUX
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,6 +1,6 @@
|
|||||||
diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
||||||
--- orig/cmake/FindIlmBase.cmake 2019-12-06 12:11:33 -0700
|
--- orig/cmake/FindIlmBase.cmake 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/cmake/FindIlmBase.cmake 2020-08-12 12:48:44 -0600
|
+++ openvdb/cmake/FindIlmBase.cmake 2020-01-16 09:06:32 -0700
|
||||||
@@ -225,6 +225,12 @@
|
@@ -225,6 +225,12 @@
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
"-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
|
"-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
|
||||||
@@ -15,8 +15,8 @@ diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
|||||||
if(ILMBASE_USE_STATIC_LIBS)
|
if(ILMBASE_USE_STATIC_LIBS)
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
||||||
--- orig/cmake/FindOpenEXR.cmake 2019-12-06 12:11:33 -0700
|
--- orig/cmake/FindOpenEXR.cmake 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/cmake/FindOpenEXR.cmake 2020-08-12 12:48:44 -0600
|
+++ openvdb/cmake/FindOpenEXR.cmake 2020-01-16 09:06:39 -0700
|
||||||
@@ -218,6 +218,12 @@
|
@@ -218,6 +218,12 @@
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
"-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
|
"-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
|
||||||
@@ -31,20 +31,9 @@ diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
|||||||
if(OPENEXR_USE_STATIC_LIBS)
|
if(OPENEXR_USE_STATIC_LIBS)
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
||||||
--- orig/openvdb/CMakeLists.txt 2019-12-06 12:11:33 -0700
|
--- orig/openvdb/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/openvdb/CMakeLists.txt 2020-08-12 14:12:26 -0600
|
+++ openvdb/openvdb/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
@@ -105,7 +105,9 @@
|
@@ -193,11 +193,12 @@
|
||||||
# http://boost.2283326.n4.nabble.com/CMake-config-scripts-broken-in-1-70-td4708957.html
|
|
||||||
# https://github.com/boostorg/boost_install/commit/160c7cb2b2c720e74463865ef0454d4c4cd9ae7c
|
|
||||||
set(BUILD_SHARED_LIBS ON)
|
|
||||||
- set(Boost_USE_STATIC_LIBS OFF)
|
|
||||||
+ if(NOT WIN32) # blender links boost statically on windows
|
|
||||||
+ set(Boost_USE_STATIC_LIBS OFF)
|
|
||||||
+ endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system)
|
|
||||||
@@ -193,6 +195,7 @@
|
|
||||||
if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
|
if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
|
||||||
add_definitions(-DBOOST_ALL_NO_LIB)
|
add_definitions(-DBOOST_ALL_NO_LIB)
|
||||||
endif()
|
endif()
|
||||||
@@ -52,69 +41,33 @@ diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# @todo Should be target definitions
|
# @todo Should be target definitions
|
||||||
@@ -383,7 +386,12 @@
|
if(WIN32)
|
||||||
# imported targets.
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
if(OPENVDB_CORE_SHARED)
|
|
||||||
- add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
|
|
||||||
+ if(WIN32)
|
|
||||||
+ configure_file(version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY)
|
|
||||||
+ add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
|
||||||
+ else()
|
|
||||||
+ add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
|
|
||||||
+ endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(OPENVDB_CORE_STATIC)
|
##### Core library configuration
|
||||||
diff -Naur orig/openvdb/version.rc.in openvdb/openvdb/version.rc.in
|
diff -Naur orig/openvdb/cmd/CMakeLists.txt openvdb/openvdb/cmd/CMakeLists.txt
|
||||||
--- orig/openvdb/version.rc.in 1969-12-31 17:00:00 -0700
|
--- orig/openvdb/cmd/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/openvdb/version.rc.in 2020-08-12 14:15:01 -0600
|
+++ openvdb/openvdb/cmd/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
@@ -0,0 +1,48 @@
|
@@ -53,7 +53,7 @@
|
||||||
+#include <winver.h>
|
endif()
|
||||||
+
|
|
||||||
+#define VER_FILEVERSION @OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
|
if(WIN32)
|
||||||
+#define VER_FILEVERSION_STR "@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@.@OpenVDB_PATCH_VERSION@.0\0"
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
+
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
+#define VER_PRODUCTVERSION @OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
|
endif()
|
||||||
+#define VER_PRODUCTVERSION_STR "@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@\0"
|
|
||||||
+
|
# rpath handling
|
||||||
+#ifndef DEBUG
|
diff -Naur orig/openvdb/unittest/CMakeLists.txt openvdb/openvdb/unittest/CMakeLists.txt
|
||||||
+#define VER_DEBUG 0
|
--- orig/openvdb/unittest/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+#else
|
+++ openvdb/openvdb/unittest/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
+#define VER_DEBUG VS_FF_DEBUG
|
@@ -49,7 +49,7 @@
|
||||||
+#endif
|
endif()
|
||||||
+
|
|
||||||
+VS_VERSION_INFO VERSIONINFO
|
if(WIN32)
|
||||||
+FILEVERSION VER_FILEVERSION
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
+PRODUCTVERSION VER_PRODUCTVERSION
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
endif()
|
||||||
+FILEFLAGS (VER_DEBUG)
|
|
||||||
+FILEOS VOS__WINDOWS32
|
##### VDB unit tests
|
||||||
+FILETYPE VFT_DLL
|
|
||||||
+FILESUBTYPE VFT2_UNKNOWN
|
|
||||||
+BEGIN
|
|
||||||
+ BLOCK "StringFileInfo"
|
|
||||||
+ BEGIN
|
|
||||||
+ BLOCK "040904E4"
|
|
||||||
+ BEGIN
|
|
||||||
+ VALUE "FileDescription", "OpenVDB"
|
|
||||||
+ VALUE "FileVersion", VER_FILEVERSION_STR
|
|
||||||
+ VALUE "InternalName", "OpenVDB"
|
|
||||||
+ VALUE "ProductName", "OpenVDB"
|
|
||||||
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
|
||||||
+ END
|
|
||||||
+ END
|
|
||||||
+
|
|
||||||
+ BLOCK "VarFileInfo"
|
|
||||||
+ BEGIN
|
|
||||||
+ /* The following line should only be modified for localized versions. */
|
|
||||||
+ /* It consists of any number of WORD,WORD pairs, with each pair */
|
|
||||||
+ /* describing a language,codepage combination supported by the file. */
|
|
||||||
+ /* */
|
|
||||||
+ /* For example, a file might have values "0x409,1252" indicating that it */
|
|
||||||
+ /* supports English language (0x409) in the Windows ANSI codepage (1252). */
|
|
||||||
+
|
|
||||||
+ VALUE "Translation", 0x409, 1252
|
|
||||||
+
|
|
||||||
+ END
|
|
||||||
+END
|
|
||||||
|
@@ -1,289 +0,0 @@
|
|||||||
diff -ru a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
|
|
||||||
--- a/Doc/library/ctypes.rst 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/Doc/library/ctypes.rst 2020-07-14 08:10:10.000000000 +0200
|
|
||||||
@@ -1551,6 +1551,13 @@
|
|
||||||
value usable as argument (integer, string, ctypes instance). This allows
|
|
||||||
defining adapters that can adapt custom objects as function parameters.
|
|
||||||
|
|
||||||
+ .. attribute:: variadic
|
|
||||||
+
|
|
||||||
+ Assign a boolean to specify that the function takes a variable number of
|
|
||||||
+ arguments. This does not matter on most platforms, but for Apple arm64
|
|
||||||
+ platforms variadic functions have a different calling convention than
|
|
||||||
+ normal functions.
|
|
||||||
+
|
|
||||||
.. attribute:: errcheck
|
|
||||||
|
|
||||||
Assign a Python function or another callable to this attribute. The
|
|
||||||
diff -ru a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
|
|
||||||
--- a/Modules/_ctypes/_ctypes.c 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/Modules/_ctypes/_ctypes.c 2020-07-14 08:14:41.000000000 +0200
|
|
||||||
@@ -3175,6 +3175,35 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
+PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
|
|
||||||
+{
|
|
||||||
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
|
|
||||||
+ assert(dict);
|
|
||||||
+ int r = PyObject_IsTrue(ob);
|
|
||||||
+ if (r == 1) {
|
|
||||||
+ dict->flags |= FUNCFLAG_VARIADIC;
|
|
||||||
+ return 0;
|
|
||||||
+ } else if (r == 0) {
|
|
||||||
+ dict->flags &= ~FUNCFLAG_VARIADIC;
|
|
||||||
+ return 0;
|
|
||||||
+ } else {
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static PyObject *
|
|
||||||
+PyCFuncPtr_get_variadic(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
|
|
||||||
+{
|
|
||||||
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
|
|
||||||
+ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */
|
|
||||||
+ if (dict->flags & FUNCFLAG_VARIADIC)
|
|
||||||
+ Py_RETURN_TRUE;
|
|
||||||
+ else
|
|
||||||
+ Py_RETURN_FALSE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
|
|
||||||
{
|
|
||||||
PyObject *converters;
|
|
||||||
@@ -5632,6 +5661,7 @@
|
|
||||||
PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO));
|
|
||||||
PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR));
|
|
||||||
PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI));
|
|
||||||
+ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC));
|
|
||||||
PyModule_AddStringConstant(m, "__version__", "1.1.0");
|
|
||||||
|
|
||||||
PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove));
|
|
||||||
diff -ru a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
|
|
||||||
--- a/Modules/_ctypes/callproc.c 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/Modules/_ctypes/callproc.c 2020-07-14 08:18:33.000000000 +0200
|
|
||||||
@@ -767,7 +767,8 @@
|
|
||||||
ffi_type **atypes,
|
|
||||||
ffi_type *restype,
|
|
||||||
void *resmem,
|
|
||||||
- int argcount)
|
|
||||||
+ int argcount,
|
|
||||||
+ int argtypecount)
|
|
||||||
{
|
|
||||||
PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */
|
|
||||||
PyObject *error_object = NULL;
|
|
||||||
@@ -793,15 +794,38 @@
|
|
||||||
if ((flags & FUNCFLAG_CDECL) == 0)
|
|
||||||
cc = FFI_STDCALL;
|
|
||||||
#endif
|
|
||||||
- if (FFI_OK != ffi_prep_cif(&cif,
|
|
||||||
- cc,
|
|
||||||
- argcount,
|
|
||||||
- restype,
|
|
||||||
- atypes)) {
|
|
||||||
- PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
- "ffi_prep_cif failed");
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
+#if HAVE_FFI_PREP_CIF_VAR
|
|
||||||
+ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but
|
|
||||||
+ * lots of existing code will not. If there's at least one arg and more
|
|
||||||
+ * args are passed than are defined in the prototype, then it must be a
|
|
||||||
+ * variadic function. */
|
|
||||||
+ if ((flags & FUNCFLAG_VARIADIC) ||
|
|
||||||
+ (argtypecount != 0 && argcount > argtypecount))
|
|
||||||
+ {
|
|
||||||
+ if (FFI_OK != ffi_prep_cif_var(&cif,
|
|
||||||
+ cc,
|
|
||||||
+ argtypecount,
|
|
||||||
+ argcount,
|
|
||||||
+ restype,
|
|
||||||
+ atypes)) {
|
|
||||||
+ PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
+ "ffi_prep_cif_var failed");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+#endif
|
|
||||||
+ if (FFI_OK != ffi_prep_cif(&cif,
|
|
||||||
+ cc,
|
|
||||||
+ argcount,
|
|
||||||
+ restype,
|
|
||||||
+ atypes)) {
|
|
||||||
+ PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
+ "ffi_prep_cif failed");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+#if HAVE_FFI_PREP_CIF_VAR
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) {
|
|
||||||
error_object = _ctypes_get_errobj(&space);
|
|
||||||
@@ -1185,9 +1209,8 @@
|
|
||||||
|
|
||||||
if (-1 == _call_function_pointer(flags, pProc, avalues, atypes,
|
|
||||||
rtype, resbuf,
|
|
||||||
- Py_SAFE_DOWNCAST(argcount,
|
|
||||||
- Py_ssize_t,
|
|
||||||
- int)))
|
|
||||||
+ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int),
|
|
||||||
+ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int)))
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
diff -ru a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h
|
|
||||||
--- a/Modules/_ctypes/ctypes.h 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/Modules/_ctypes/ctypes.h 2020-07-14 08:30:53.000000000 +0200
|
|
||||||
@@ -285,6 +285,7 @@
|
|
||||||
#define FUNCFLAG_PYTHONAPI 0x4
|
|
||||||
#define FUNCFLAG_USE_ERRNO 0x8
|
|
||||||
#define FUNCFLAG_USE_LASTERROR 0x10
|
|
||||||
+#define FUNCFLAG_VARIADIC 0x20
|
|
||||||
|
|
||||||
#define TYPEFLAG_ISPOINTER 0x100
|
|
||||||
#define TYPEFLAG_HASPOINTER 0x200
|
|
||||||
diff -ru a/configure b/configure
|
|
||||||
--- a/configure 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/configure 2020-07-14 08:03:27.000000000 +0200
|
|
||||||
@@ -3374,7 +3374,7 @@
|
|
||||||
# has no effect, don't bother defining them
|
|
||||||
Darwin/[6789].*)
|
|
||||||
define_xopen_source=no;;
|
|
||||||
- Darwin/1[0-9].*)
|
|
||||||
+ Darwin/[12][0-9].*)
|
|
||||||
define_xopen_source=no;;
|
|
||||||
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
|
|
||||||
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
|
|
||||||
@@ -9251,6 +9251,9 @@
|
|
||||||
ppc)
|
|
||||||
MACOSX_DEFAULT_ARCH="ppc64"
|
|
||||||
;;
|
|
||||||
+ arm64)
|
|
||||||
+ MACOSX_DEFAULT_ARCH="arm64"
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5
|
|
||||||
;;
|
|
||||||
diff -ru a/configure.ac b/configure.ac
|
|
||||||
--- a/configure.ac 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/configure.ac 2020-07-14 08:03:27.000000000 +0200
|
|
||||||
@@ -2456,6 +2456,9 @@
|
|
||||||
ppc)
|
|
||||||
MACOSX_DEFAULT_ARCH="ppc64"
|
|
||||||
;;
|
|
||||||
+ arm64)
|
|
||||||
+ MACOSX_DEFAULT_ARCH="arm64"
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
|
|
||||||
;;
|
|
||||||
diff -ru a/setup.py b/setup.py
|
|
||||||
--- a/setup.py 2020-03-10 07:11:12.000000000 +0100
|
|
||||||
+++ b/setup.py 2020-07-14 08:28:12.000000000 +0200
|
|
||||||
@@ -141,6 +141,13 @@
|
|
||||||
os.unlink(tmpfile)
|
|
||||||
|
|
||||||
return MACOS_SDK_ROOT
|
|
||||||
+
|
|
||||||
+def is_macosx_at_least(vers):
|
|
||||||
+ if host_platform == 'darwin':
|
|
||||||
+ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
|
|
||||||
+ if dep_target:
|
|
||||||
+ return tuple(map(int, dep_target.split('.'))) >= vers
|
|
||||||
+ return False
|
|
||||||
|
|
||||||
def is_macosx_sdk_path(path):
|
|
||||||
"""
|
|
||||||
@@ -150,6 +157,13 @@
|
|
||||||
or path.startswith('/System/')
|
|
||||||
or path.startswith('/Library/') )
|
|
||||||
|
|
||||||
+def grep_headers_for(function, headers):
|
|
||||||
+ for header in headers:
|
|
||||||
+ with open(header, 'r') as f:
|
|
||||||
+ if function in f.read():
|
|
||||||
+ return True
|
|
||||||
+ return False
|
|
||||||
+
|
|
||||||
def find_file(filename, std_dirs, paths):
|
|
||||||
"""Searches for the directory where a given file is located,
|
|
||||||
and returns a possibly-empty list of additional directories, or None
|
|
||||||
@@ -1972,7 +1986,11 @@
|
|
||||||
return True
|
|
||||||
|
|
||||||
def detect_ctypes(self, inc_dirs, lib_dirs):
|
|
||||||
- self.use_system_libffi = False
|
|
||||||
+ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)):
|
|
||||||
+ self.use_system_libffi = True
|
|
||||||
+ else:
|
|
||||||
+ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
|
|
||||||
+
|
|
||||||
include_dirs = []
|
|
||||||
extra_compile_args = []
|
|
||||||
extra_link_args = []
|
|
||||||
@@ -2016,32 +2034,48 @@
|
|
||||||
ext_test = Extension('_ctypes_test',
|
|
||||||
sources=['_ctypes/_ctypes_test.c'],
|
|
||||||
libraries=['m'])
|
|
||||||
+ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR")
|
|
||||||
+ ffi_lib = None
|
|
||||||
+
|
|
||||||
self.extensions.extend([ext, ext_test])
|
|
||||||
|
|
||||||
if host_platform == 'darwin':
|
|
||||||
- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"):
|
|
||||||
+ if not self.use_system_libffi:
|
|
||||||
return
|
|
||||||
- # OS X 10.5 comes with libffi.dylib; the include files are
|
|
||||||
- # in /usr/include/ffi
|
|
||||||
- inc_dirs.append('/usr/include/ffi')
|
|
||||||
-
|
|
||||||
- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
|
|
||||||
- if not ffi_inc or ffi_inc[0] == '':
|
|
||||||
- ffi_inc = find_file('ffi.h', [], inc_dirs)
|
|
||||||
- if ffi_inc is not None:
|
|
||||||
- ffi_h = ffi_inc[0] + '/ffi.h'
|
|
||||||
+ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi")
|
|
||||||
+ if os.path.exists(ffi_in_sdk):
|
|
||||||
+ ffi_inc = ffi_in_sdk
|
|
||||||
+ ffi_lib = 'ffi'
|
|
||||||
+ else:
|
|
||||||
+ # OS X 10.5 comes with libffi.dylib; the include files are
|
|
||||||
+ # in /usr/include/ffi
|
|
||||||
+ ffi_inc_dirs.append('/usr/include/ffi')
|
|
||||||
+
|
|
||||||
+ if not ffi_inc:
|
|
||||||
+ found = find_file('ffi.h', [], ffi_inc_dirs)
|
|
||||||
+ if found:
|
|
||||||
+ ffi_inc = found[0]
|
|
||||||
+ if ffi_inc:
|
|
||||||
+ ffi_h = ffi_inc + '/ffi.h'
|
|
||||||
if not os.path.exists(ffi_h):
|
|
||||||
ffi_inc = None
|
|
||||||
print('Header file {} does not exist'.format(ffi_h))
|
|
||||||
- ffi_lib = None
|
|
||||||
- if ffi_inc is not None:
|
|
||||||
+ if ffi_lib is None and ffi_inc:
|
|
||||||
for lib_name in ('ffi', 'ffi_pic'):
|
|
||||||
if (self.compiler.find_library_file(lib_dirs, lib_name)):
|
|
||||||
ffi_lib = lib_name
|
|
||||||
break
|
|
||||||
|
|
||||||
if ffi_inc and ffi_lib:
|
|
||||||
- ext.include_dirs.extend(ffi_inc)
|
|
||||||
+ ffi_headers = glob(os.path.join(ffi_inc, '*.h'))
|
|
||||||
+ if grep_headers_for('ffi_closure_alloc', ffi_headers):
|
|
||||||
+ try:
|
|
||||||
+ sources.remove('_ctypes/malloc_closure.c')
|
|
||||||
+ except ValueError:
|
|
||||||
+ pass
|
|
||||||
+ if grep_headers_for('ffi_prep_cif_var', ffi_headers):
|
|
||||||
+ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1")
|
|
||||||
+ ext.include_dirs.append(ffi_inc)
|
|
||||||
ext.libraries.append(ffi_lib)
|
|
||||||
self.use_system_libffi = True
|
|
||||||
|
|
@@ -1,14 +0,0 @@
|
|||||||
Only in external_sqlite_orig: config.log
|
|
||||||
diff -ru external_sqlite_orig/config.sub external_sqlite/config.sub
|
|
||||||
--- external_sqlite_orig/config.sub 2020-07-10 14:06:42.000000000 +0200
|
|
||||||
+++ external_sqlite/config.sub 2020-07-10 14:10:24.000000000 +0200
|
|
||||||
@@ -314,6 +314,7 @@
|
|
||||||
# Recognize the basic CPU types with company name.
|
|
||||||
580-* \
|
|
||||||
| a29k-* \
|
|
||||||
+ | aarch64-* \
|
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
|
||||||
Only in external_sqlite: mksourceid
|
|
||||||
Only in external_sqlite: sqlite3session.h
|
|
@@ -1,18 +0,0 @@
|
|||||||
--- config.sub
|
|
||||||
+++ config.sub
|
|
||||||
@@ -226,6 +226,7 @@
|
|
||||||
# Some are omitted here because they have special meanings below.
|
|
||||||
1750a | 580 \
|
|
||||||
| a29k \
|
|
||||||
+ | aarch64 \
|
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
|
||||||
@@ -286,6 +287,7 @@
|
|
||||||
# Recognize the basic CPU types with company name.
|
|
||||||
580-* \
|
|
||||||
| a29k-* \
|
|
||||||
+ | aarch64-* \
|
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
|
@@ -10,6 +10,77 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau
|
|||||||
add_definitions(${TBB_DEFINITIONS})
|
add_definitions(${TBB_DEFINITIONS})
|
||||||
|
|
||||||
# --math
|
# --math
|
||||||
|
diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plug/initConfig.cpp
|
||||||
|
--- usd.orig/pxr/base/plug/initConfig.cpp.orig 2020-06-12 17:20:07.478199779 +0200
|
||||||
|
+++ external_usd/pxr/base/plug/initConfig.cpp 2020-06-12 17:25:28.648588552 +0200
|
||||||
|
@@ -69,10 +69,40 @@
|
||||||
|
|
||||||
|
ARCH_CONSTRUCTOR(Plug_InitConfig, 2, void)
|
||||||
|
{
|
||||||
|
+ /* The contents of this constructor have been moved to usd_initialise_plugin_path(...) */
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}; // end of anonymous namespace
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * The contents of this function used to be in the static constructor Plug_InitConfig.
|
||||||
|
+ * This static constructor made it impossible for Blender to pass a path to the USD
|
||||||
|
+ * library at runtime, as the constructor would run before Blender's main() function.
|
||||||
|
+ *
|
||||||
|
+ * This function is wrapped in a C function of the same name (defined below),
|
||||||
|
+ * so that it can be called from Blender's main() function.
|
||||||
|
+ *
|
||||||
|
+ * The datafiles_usd_path path is used to point to the USD plugin path when Blender
|
||||||
|
+ * has been installed. The fallback_usd_path path should point to the build-time
|
||||||
|
+ * location of the USD plugin files so that Blender can be run on a development machine
|
||||||
|
+ * without requiring an installation step.
|
||||||
|
+ */
|
||||||
|
+void
|
||||||
|
+usd_initialise_plugin_path(const char *datafiles_usd_path)
|
||||||
|
+{
|
||||||
|
std::vector<std::string> result;
|
||||||
|
|
||||||
|
std::vector<std::string> debugMessages;
|
||||||
|
|
||||||
|
+ // Add Blender-specific paths. They MUST end in a slash, or symlinks will not be treated as directory.
|
||||||
|
+ if (datafiles_usd_path != NULL && datafiles_usd_path[0] != '\0') {
|
||||||
|
+ std::string datafiles_usd_path_str(datafiles_usd_path);
|
||||||
|
+ if (datafiles_usd_path_str.back() != '/') {
|
||||||
|
+ datafiles_usd_path_str += "/";
|
||||||
|
+ }
|
||||||
|
+ result.push_back(datafiles_usd_path_str);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Determine the absolute path to the Plug shared library. Any relative
|
||||||
|
// paths specified in the plugin search path will be anchored to this
|
||||||
|
// directory, to allow for relocatability. Note that this can fail when pxr
|
||||||
|
@@ -114,9 +144,24 @@
|
||||||
|
_AppendPathList(&result, installLocation, binaryPath);
|
||||||
|
#endif // PXR_INSTALL_LOCATION
|
||||||
|
|
||||||
|
- Plug_SetPaths(result, debugMessages);
|
||||||
|
-}
|
||||||
|
+ if (!TfGetenv("PXR_PATH_DEBUG").empty()) {
|
||||||
|
+ printf("USD Plugin paths: (%zu in total):\n", result.size());
|
||||||
|
+ for(const std::string &path : result) {
|
||||||
|
+ printf(" %s\n", path.c_str());
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ Plug_SetPaths(result, debugMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
PXR_NAMESPACE_CLOSE_SCOPE
|
||||||
|
+
|
||||||
|
+/* Workaround to make it possible to pass a path at runtime to USD. */
|
||||||
|
+extern "C" {
|
||||||
|
+void
|
||||||
|
+usd_initialise_plugin_path(
|
||||||
|
+ const char *datafiles_usd_path)
|
||||||
|
+{
|
||||||
|
+ PXR_NS::usd_initialise_plugin_path(datafiles_usd_path);
|
||||||
|
+}
|
||||||
|
+}
|
||||||
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
||||||
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
||||||
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
||||||
@@ -26,36 +97,3 @@ diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros
|
|||||||
endforeach()
|
endforeach()
|
||||||
foreach(lib ${PXR_OBJECT_LIBS})
|
foreach(lib ${PXR_OBJECT_LIBS})
|
||||||
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
|
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
|
||||||
|
|
||||||
diff --git a/pxr/base/arch/align.h b/pxr/base/arch/align.h
|
|
||||||
index f3cabf4..ebc8a69 100644
|
|
||||||
--- a/pxr/base/arch/align.h
|
|
||||||
+++ b/pxr/base/arch/align.h
|
|
||||||
@@ -77,7 +77,11 @@ ArchAlignMemory(void *base)
|
|
||||||
/// The size of a CPU cache line on the current processor architecture in bytes.
|
|
||||||
///
|
|
||||||
/// \hideinitializer
|
|
||||||
+#if defined(ARCH_OS_DARWIN) && defined(ARCH_CPU_ARM)
|
|
||||||
+#define ARCH_CACHE_LINE_SIZE 128
|
|
||||||
+#else
|
|
||||||
#define ARCH_CACHE_LINE_SIZE 64
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
///@}
|
|
||||||
|
|
||||||
diff --git a/pxr/base/arch/math.h b/pxr/base/arch/math.h
|
|
||||||
index 3e66c37..64a052c 100644
|
|
||||||
--- a/pxr/base/arch/math.h
|
|
||||||
+++ b/pxr/base/arch/math.h
|
|
||||||
@@ -42,7 +42,7 @@ PXR_NAMESPACE_OPEN_SCOPE
|
|
||||||
/// \addtogroup group_arch_Math
|
|
||||||
///@{
|
|
||||||
|
|
||||||
-#if defined (ARCH_CPU_INTEL) || defined(doxygen)
|
|
||||||
+#if defined (ARCH_CPU_INTEL) || defined(ARCH_CPU_ARM) || defined(doxygen)
|
|
||||||
|
|
||||||
/// This is the smallest value e such that 1+e^2 == 1, using floats.
|
|
||||||
/// True for all IEEE754 chipsets.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
34
build_files/buildbot-lts/README.md
Normal file
34
build_files/buildbot-lts/README.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Buildbot-lts
|
||||||
|
============
|
||||||
|
|
||||||
|
This folder contains configuration files and build scripts for making a release.
|
||||||
|
It originated when we started to do LTS releases what happens once every two
|
||||||
|
weeks. The idea is to automate the manual steps where possible and provide a
|
||||||
|
pipeline process for the manual steps that still needs to happen.
|
||||||
|
|
||||||
|
By using the same software as builder.blender.org it would already put us in
|
||||||
|
the right direction when we might want to make this part of builder.blender.org
|
||||||
|
for now it is running on a VM in the blender institute as it contains user
|
||||||
|
private keys and the process needs to be controlled security wise.
|
||||||
|
|
||||||
|
But of course the source and configurations are public available for anyone to
|
||||||
|
check, develop and use.
|
||||||
|
|
||||||
|
Setting up build-bot
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
instructions from https://github.com/cjolowicz/docker-buildbot.
|
||||||
|
|
||||||
|
Create custom buildbot worker containing packages we need for building (git, wget).
|
||||||
|
|
||||||
|
cd docker
|
||||||
|
docker build -t buildbot --no-cache .
|
||||||
|
cd worker
|
||||||
|
docker build -t buildbot-worker --no-cache .
|
||||||
|
|
||||||
|
docker network create net-buildbot
|
||||||
|
|
||||||
|
docker rm lts-buildbot && docker run --init --name lts-buildbot --network net-buildbot --publish=127.0.0.1:8010:8010 -t -i buildbot
|
||||||
|
|
||||||
|
docker rm lts-worker && docker run --init --name lts-worker --network net-buildbot --name lts-worker -e BUILDMASTER=lts-buildbot -e WORKERNAME=lts-worker -e WORKERPASS=secret -t -i buildbot-worker
|
||||||
|
|
36
build_files/buildbot-lts/docker/Dockerfile
Normal file
36
build_files/buildbot-lts/docker/Dockerfile
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
|
RUN apt update && apt upgrade -y
|
||||||
|
RUN apt install -y \
|
||||||
|
gosu \
|
||||||
|
wget \
|
||||||
|
openssh-client \
|
||||||
|
build-essential \
|
||||||
|
libffi-dev \
|
||||||
|
libssl-dev \
|
||||||
|
python3-dev \
|
||||||
|
python3-pip
|
||||||
|
|
||||||
|
|
||||||
|
ENV BUILDBOT_VERSION 2.5.0
|
||||||
|
RUN pip3 --no-cache-dir install --upgrade pip && pip --no-cache-dir install \
|
||||||
|
buildbot[bundle,tls]==$BUILDBOT_VERSION \
|
||||||
|
buildbot-docker-swarm-worker
|
||||||
|
|
||||||
|
COPY buildbot.tac /var/lib/buildbot/
|
||||||
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
COPY master.cfg /etc/buildbot/
|
||||||
|
COPY bin/create_checksum.sh /var/lib/buildbot/bin/
|
||||||
|
COPY bin/upload_file.sh /var/lib/buildbot/bin/
|
||||||
|
COPY .ssh/id_rsa /var/lib/buildbot/.ssh/
|
||||||
|
|
||||||
|
RUN adduser --home /var/lib/buildbot --disabled-password --gecos '' buildbot
|
||||||
|
WORKDIR /var/lib/buildbot
|
||||||
|
RUN ln -s /etc/buildbot/master.cfg
|
||||||
|
|
||||||
|
VOLUME /var/lib/buildbot
|
||||||
|
EXPOSE 8010
|
||||||
|
EXPOSE 9989
|
||||||
|
|
||||||
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||||
|
CMD ["twistd", "--pidfile=", "--nodaemon", "--python=buildbot.tac"]
|
4
build_files/buildbot-lts/docker/bin/create_checksum.sh
Executable file
4
build_files/buildbot-lts/docker/bin/create_checksum.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
md5sum $1 > $2.md5
|
||||||
|
sha256sum $1 > $2.sha256
|
7
build_files/buildbot-lts/docker/bin/upload_file.sh
Executable file
7
build_files/buildbot-lts/docker/bin/upload_file.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
if [ ! -f /var/lib/buildbot/.ssh/known_hosts ]
|
||||||
|
then
|
||||||
|
ssh-keyscan download.blender.org > /var/lib/buildbot/.ssh/known_hosts
|
||||||
|
fi
|
||||||
|
scp $1 jeroen@download.blender.org:$2
|
20
build_files/buildbot-lts/docker/buildbot.tac
Normal file
20
build_files/buildbot-lts/docker/buildbot.tac
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from twisted.application import service
|
||||||
|
from twisted.python.log import FileLogObserver
|
||||||
|
from twisted.python.log import ILogObserver
|
||||||
|
|
||||||
|
from buildbot.master import BuildMaster
|
||||||
|
|
||||||
|
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||||
|
os.path.abspath(os.path.dirname(__file__)))
|
||||||
|
configfile = 'master.cfg'
|
||||||
|
|
||||||
|
# note: this line is matched against to check that this is a buildmaster
|
||||||
|
# directory; do not edit it.
|
||||||
|
application = service.Application('buildmaster')
|
||||||
|
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||||
|
|
||||||
|
m = BuildMaster(basedir, configfile, umask=None)
|
||||||
|
m.setServiceParent(application)
|
36
build_files/buildbot-lts/docker/docker-compose.yml
Normal file
36
build_files/buildbot-lts/docker/docker-compose.yml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
version: '1'
|
||||||
|
services:
|
||||||
|
buildbot:
|
||||||
|
image: buildbot/buildbot-master:master
|
||||||
|
env_file:
|
||||||
|
- db.env
|
||||||
|
environment:
|
||||||
|
- BUILDBOT_CONFIG_DIR=config
|
||||||
|
- BUILDBOT_CONFIG_URL=https://github.com/buildbot/buildbot-docker-example-config/archive/master.tar.gz
|
||||||
|
- BUILDBOT_WORKER_PORT=9989
|
||||||
|
- BUILDBOT_WEB_URL=http://localhost:8010/
|
||||||
|
- BUILDBOT_WEB_PORT=tcp:port=8010
|
||||||
|
links:
|
||||||
|
- db
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
ports:
|
||||||
|
- "8010:8010"
|
||||||
|
db:
|
||||||
|
env_file:
|
||||||
|
- db.env
|
||||||
|
image: "postgres:9.4"
|
||||||
|
expose:
|
||||||
|
- 5432
|
||||||
|
|
||||||
|
worker:
|
||||||
|
image: "buildbot/buildbot-worker:master"
|
||||||
|
environment:
|
||||||
|
BUILDMASTER: buildbot
|
||||||
|
BUILDMASTER_PORT: 9989
|
||||||
|
WORKERNAME: lts-worker
|
||||||
|
WORKERPASS: pass
|
||||||
|
WORKER_ENVIRONMENT_BLACKLIST: DOCKER_BUILDBOT* BUILDBOT_ENV_* BUILDBOT_1* WORKER_ENVIRONMENT_BLACKLIST
|
||||||
|
|
||||||
|
links:
|
||||||
|
- buildbot
|
18
build_files/buildbot-lts/docker/docker-entrypoint.sh
Executable file
18
build_files/buildbot-lts/docker/docker-entrypoint.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
buildbot upgrade-master .
|
||||||
|
|
||||||
|
chown buildbot /var/lib/buildbot/
|
||||||
|
chown buildbot /var/lib/buildbot/.ssh/
|
||||||
|
chown -R buildbot /var/lib/buildbot/*
|
||||||
|
|
||||||
|
if [ -S /var/run/docker.sock ]
|
||||||
|
then
|
||||||
|
group=$(stat -c '%g' /var/run/docker.sock)
|
||||||
|
else
|
||||||
|
group=buildbot
|
||||||
|
fi
|
||||||
|
|
||||||
|
gosu buildbot:$group "$@"
|
240
build_files/buildbot-lts/docker/master.cfg
Normal file
240
build_files/buildbot-lts/docker/master.cfg
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
# -*- python -*-
|
||||||
|
# ex: set filetype=python:
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from buildbot.plugins import *
|
||||||
|
|
||||||
|
# This is a sample buildmaster config file. It must be installed as
|
||||||
|
# 'master.cfg' in your buildmaster's base directory.
|
||||||
|
|
||||||
|
# This is the dictionary that the buildmaster pays attention to. We also use
|
||||||
|
# a shorter alias to save typing.
|
||||||
|
c = BuildmasterConfig = {}
|
||||||
|
|
||||||
|
####### WORKERS
|
||||||
|
|
||||||
|
# The 'workers' list defines the set of recognized workers. Each element is
|
||||||
|
# a Worker object, specifying a unique worker name and password. The same
|
||||||
|
# worker name and password must be configured on the worker.
|
||||||
|
|
||||||
|
c['workers'] = [worker.Worker("lts-worker", 'secret')]
|
||||||
|
|
||||||
|
if 'BUILDBOT_MQ_URL' in os.environ:
|
||||||
|
c['mq'] = {
|
||||||
|
'type' : 'wamp',
|
||||||
|
'router_url': os.environ['BUILDBOT_MQ_URL'],
|
||||||
|
'realm': os.environ.get('BUILDBOT_MQ_REALM', 'buildbot').decode('utf-8'),
|
||||||
|
'debug' : 'BUILDBOT_MQ_DEBUG' in os.environ,
|
||||||
|
'debug_websockets' : 'BUILDBOT_MQ_DEBUG' in os.environ,
|
||||||
|
'debug_lowlevel' : 'BUILDBOT_MQ_DEBUG' in os.environ,
|
||||||
|
}
|
||||||
|
# 'protocols' contains information about protocols which master will use for
|
||||||
|
# communicating with workers. You must define at least 'port' option that workers
|
||||||
|
# could connect to your master with this protocol.
|
||||||
|
# 'port' must match the value configured into the workers (with their
|
||||||
|
# --master option)
|
||||||
|
c['protocols'] = {'pb': {'port': os.environ.get("BUILDBOT_WORKER_PORT", 9989)}}
|
||||||
|
|
||||||
|
####### CHANGESOURCES
|
||||||
|
|
||||||
|
# the 'change_source' setting tells the buildmaster how it should find out
|
||||||
|
# about source code changes. We don't build when sources change.
|
||||||
|
c['change_source'] = []
|
||||||
|
|
||||||
|
####### SCHEDULERS
|
||||||
|
|
||||||
|
# Configure the Schedulers, which decide how to react to incoming changes. In this
|
||||||
|
# case, just kick off a 'runtests' build
|
||||||
|
|
||||||
|
c['schedulers'] = [
|
||||||
|
schedulers.ForceScheduler(
|
||||||
|
name="build",
|
||||||
|
builderNames=["release-blender-283"],
|
||||||
|
properties=[
|
||||||
|
util.StringParameter(
|
||||||
|
name="blender_version",
|
||||||
|
label="Version of blender.",
|
||||||
|
default="2.83"),
|
||||||
|
util.StringParameter(
|
||||||
|
name="blender_version_full",
|
||||||
|
label="Version of blender (Full).",
|
||||||
|
default="2.83.1")
|
||||||
|
]
|
||||||
|
),
|
||||||
|
|
||||||
|
schedulers.Triggerable(
|
||||||
|
name="deploy-source-archive",
|
||||||
|
builderNames=["deploy-source-archive"]
|
||||||
|
),
|
||||||
|
|
||||||
|
schedulers.Triggerable(
|
||||||
|
name="deploy-buildbot-packages",
|
||||||
|
builderNames=["deploy-buildbot-packages"]
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
####### BUILDERS
|
||||||
|
|
||||||
|
# The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
|
||||||
|
# what steps, and which workers can execute them. Note that any particular build will
|
||||||
|
# only take place on one worker.
|
||||||
|
|
||||||
|
deploy_source_archive_factory = util.BuildFactory()
|
||||||
|
deploy_source_archive_factory.addStep(steps.Git(name="Checkout Blender Source", repourl='https://git.blender.org/blender.git', branch=util.Interpolate('blender-v%(prop:blender_version)s-release'), mode='full'))
|
||||||
|
deploy_source_archive_factory.addStep(steps.ShellSequence(name="Make source archive", commands=[
|
||||||
|
util.ShellArg(command=["make", "source_archive"], logfile='make_source_archive'),
|
||||||
|
# The next two shell commands are only needed during development
|
||||||
|
util.ShellArg(command=["mv", "blender-2.83.2-beta.tar.xz", util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz')]),
|
||||||
|
util.ShellArg(command=["mv", "blender-2.83.2-beta.tar.xz.md5sum", util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz.md5sum')]),
|
||||||
|
]))
|
||||||
|
deploy_source_archive_factory.addStep(steps.FileUpload(
|
||||||
|
name="Upload source archive",
|
||||||
|
workersrc=util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz'),
|
||||||
|
masterdest=util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz')))
|
||||||
|
deploy_source_archive_factory.addStep(steps.FileUpload(
|
||||||
|
name="Upload source archive checksum",
|
||||||
|
workersrc=util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz.md5sum'),
|
||||||
|
masterdest=util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz.md5sum')))
|
||||||
|
deploy_source_archive_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload source archive",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_source_archive_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload windows64.zip build",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz.md5sum'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
|
||||||
|
deploy_buildbot_packages_factory = util.BuildFactory()
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Download linux64 build",
|
||||||
|
command=[
|
||||||
|
'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-linux64.tar.xz'),
|
||||||
|
"-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-linux64.tar.xz')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Download windows64.msi build",
|
||||||
|
command=[
|
||||||
|
'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-windows64.msi'),
|
||||||
|
"-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.msi')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Download windows64.zip build",
|
||||||
|
command=[
|
||||||
|
'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-windows64.zip'),
|
||||||
|
"-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.zip')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Download macOS build",
|
||||||
|
command=[
|
||||||
|
'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-macOS.dmg'),
|
||||||
|
"-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-macOS.dmg')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Create checksum (md5/sha256)",
|
||||||
|
command=[
|
||||||
|
'sh',
|
||||||
|
'-C',
|
||||||
|
'/var/lib/buildbot/bin/create_checksum.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-*'),
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s'),
|
||||||
|
]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload linux64 build",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-linux64.tar.xz'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload windows64.msi build",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.msi'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload windows64.zip build",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.zip'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload macOS build",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-macOS.dmg'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload md5 checksum",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s.md5'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand(
|
||||||
|
name="Upload sha256 checksum",
|
||||||
|
command=[
|
||||||
|
'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh',
|
||||||
|
util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s.sha256'),
|
||||||
|
util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')]))
|
||||||
|
|
||||||
|
factory = util.BuildFactory()
|
||||||
|
factory.addStep(steps.MasterShellCommand(name="Init release folder", command=["mkdir", "-p", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s')]))
|
||||||
|
factory.addStep(steps.Trigger(
|
||||||
|
name='Deploy',
|
||||||
|
schedulerNames=[
|
||||||
|
'deploy-source-archive',
|
||||||
|
'deploy-buildbot-packages',
|
||||||
|
],
|
||||||
|
waitForFinish=True,
|
||||||
|
set_properties={
|
||||||
|
'blender_version_full': util.Property('blender_version_full'),
|
||||||
|
'blender_version': util.Property('blender_version'),
|
||||||
|
}
|
||||||
|
))
|
||||||
|
|
||||||
|
# Download builds from builder.blender.org
|
||||||
|
c['builders'] = [
|
||||||
|
util.BuilderConfig(name="release-blender-283",
|
||||||
|
workernames=["lts-worker"],
|
||||||
|
factory=factory),
|
||||||
|
util.BuilderConfig(name="deploy-source-archive",
|
||||||
|
workernames=["lts-worker"],
|
||||||
|
factory=deploy_source_archive_factory),
|
||||||
|
util.BuilderConfig(name="deploy-buildbot-packages",
|
||||||
|
workernames=["lts-worker"],
|
||||||
|
factory=deploy_buildbot_packages_factory),
|
||||||
|
]
|
||||||
|
|
||||||
|
####### STATUS TARGETS
|
||||||
|
|
||||||
|
# 'status' is a list of Status Targets. The results of each build will be
|
||||||
|
# pushed to these targets. buildbot/status/*.py has a variety to choose from,
|
||||||
|
# like IRC bots.
|
||||||
|
|
||||||
|
# c['status'] = []
|
||||||
|
|
||||||
|
####### PROJECT IDENTITY
|
||||||
|
|
||||||
|
# the 'title' string will appear at the top of this buildbot installation's
|
||||||
|
# home pages (linked to the 'titleURL').
|
||||||
|
|
||||||
|
c['title'] = "Blender Release LTS"
|
||||||
|
c['titleURL'] = "https://www.blender.org/download/lts/"
|
||||||
|
|
||||||
|
# the 'buildbotURL' string should point to the location where the buildbot's
|
||||||
|
# internal web server is visible. This typically uses the port number set in
|
||||||
|
# the 'www' entry below, but with an externally-visible host name which the
|
||||||
|
# buildbot cannot figure out without some help.
|
||||||
|
|
||||||
|
c['buildbotURL'] = os.environ.get("BUILDBOT_WEB_URL", "http://localhost:8010/")
|
||||||
|
|
||||||
|
# minimalistic config to activate new web UI
|
||||||
|
c['www'] = dict(port=os.environ.get("BUILDBOT_WEB_PORT", 8010),
|
||||||
|
plugins=dict(waterfall_view={}, console_view={}))
|
||||||
|
|
||||||
|
####### DB URL
|
||||||
|
|
||||||
|
c['db'] = {
|
||||||
|
# This specifies what database buildbot uses to store its state. You can leave
|
||||||
|
# this at its default for all but the largest installations.
|
||||||
|
'db_url' : os.environ.get("BUILDBOT_DB_URL", "sqlite://").format(**os.environ),
|
||||||
|
}
|
27
build_files/buildbot-lts/docker/worker/Dockerfile
Normal file
27
build_files/buildbot-lts/docker/worker/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
wget \
|
||||||
|
python3-dev \
|
||||||
|
python3-pip \
|
||||||
|
python3-setuptools \
|
||||||
|
python3-wheel \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV BUILDBOT_VERSION 2.5.0
|
||||||
|
RUN pip3 install --upgrade pip && \
|
||||||
|
pip --no-cache-dir install twisted[tls] && \
|
||||||
|
pip --no-cache-dir install buildbot_worker==$BUILDBOT_VERSION
|
||||||
|
|
||||||
|
RUN useradd --create-home --home-dir=/var/lib/buildbot buildbot
|
||||||
|
WORKDIR /var/lib/buildbot
|
||||||
|
USER buildbot
|
||||||
|
|
||||||
|
COPY buildbot.tac .
|
||||||
|
|
||||||
|
CMD ["twistd", "--pidfile=", "--nodaemon", "--python=buildbot.tac"]
|
39
build_files/buildbot-lts/docker/worker/buildbot.tac
Normal file
39
build_files/buildbot-lts/docker/worker/buildbot.tac
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import fnmatch
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from twisted.application import service
|
||||||
|
from twisted.python.log import FileLogObserver
|
||||||
|
from twisted.python.log import ILogObserver
|
||||||
|
|
||||||
|
from buildbot_worker.bot import Worker
|
||||||
|
|
||||||
|
# setup worker
|
||||||
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
application = service.Application('buildbot-worker')
|
||||||
|
|
||||||
|
|
||||||
|
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||||
|
# and worker on the same process!
|
||||||
|
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||||
|
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||||
|
workername = os.environ.get("WORKERNAME", 'docker')
|
||||||
|
passwd = os.environ.get("WORKERPASS")
|
||||||
|
|
||||||
|
# delete the password from the environ so that it is not leaked in the log
|
||||||
|
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||||
|
for name in list(os.environ.keys()):
|
||||||
|
for toremove in blacklist:
|
||||||
|
if fnmatch.fnmatch(name, toremove):
|
||||||
|
del os.environ[name]
|
||||||
|
|
||||||
|
keepalive = 600
|
||||||
|
umask = None
|
||||||
|
maxdelay = 300
|
||||||
|
allow_shutdown = None
|
||||||
|
maxretries = 10
|
||||||
|
|
||||||
|
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||||
|
keepalive, umask=umask, maxdelay=maxdelay,
|
||||||
|
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||||
|
s.setServiceParent(application)
|
@@ -24,7 +24,6 @@ import re
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def is_tool(name):
|
def is_tool(name):
|
||||||
"""Check whether `name` is on PATH and marked as executable."""
|
"""Check whether `name` is on PATH and marked as executable."""
|
||||||
|
|
||||||
@@ -33,13 +32,11 @@ def is_tool(name):
|
|||||||
|
|
||||||
return which(name) is not None
|
return which(name) is not None
|
||||||
|
|
||||||
|
|
||||||
class Builder:
|
class Builder:
|
||||||
def __init__(self, name, branch, codesign):
|
def __init__(self, name, branch):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.branch = branch
|
self.branch = branch
|
||||||
self.is_release_branch = re.match("^blender-v(.*)-release$", branch) is not None
|
self.is_release_branch = re.match("^blender-v(.*)-release$", branch) is not None
|
||||||
self.codesign = codesign
|
|
||||||
|
|
||||||
# Buildbot runs from build/ directory
|
# Buildbot runs from build/ directory
|
||||||
self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git'))
|
self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git'))
|
||||||
@@ -50,30 +47,28 @@ class Builder:
|
|||||||
# Detect platform
|
# Detect platform
|
||||||
if name.startswith('mac'):
|
if name.startswith('mac'):
|
||||||
self.platform = 'mac'
|
self.platform = 'mac'
|
||||||
self.command_prefix = []
|
self.command_prefix = []
|
||||||
elif name.startswith('linux'):
|
elif name.startswith('linux'):
|
||||||
self.platform = 'linux'
|
self.platform = 'linux'
|
||||||
if is_tool('scl'):
|
if is_tool('scl'):
|
||||||
self.command_prefix = ['scl', 'enable', 'devtoolset-9', '--']
|
self.command_prefix = ['scl', 'enable', 'devtoolset-9', '--']
|
||||||
else:
|
else:
|
||||||
self.command_prefix = []
|
self.command_prefix = []
|
||||||
elif name.startswith('win'):
|
elif name.startswith('win'):
|
||||||
self.platform = 'win'
|
self.platform = 'win'
|
||||||
self.command_prefix = []
|
self.command_prefix = []
|
||||||
else:
|
else:
|
||||||
raise ValueError('Unkonw platform for builder ' + self.platform)
|
raise ValueError('Unkonw platform for builder ' + self.platform)
|
||||||
|
|
||||||
# Always 64 bit now
|
# Always 64 bit now
|
||||||
self.bits = 64
|
self.bits = 64
|
||||||
|
|
||||||
|
|
||||||
def create_builder_from_arguments():
|
def create_builder_from_arguments():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('builder_name')
|
parser.add_argument('builder_name')
|
||||||
parser.add_argument('branch', default='master', nargs='?')
|
parser.add_argument('branch', default='master', nargs='?')
|
||||||
parser.add_argument("--codesign", action="store_true")
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
return Builder(args.builder_name, args.branch, args.codesign)
|
return Builder(args.builder_name, args.branch)
|
||||||
|
|
||||||
|
|
||||||
class VersionInfo:
|
class VersionInfo:
|
||||||
@@ -88,6 +83,7 @@ class VersionInfo:
|
|||||||
self.short_version = "%d.%02d" % (version_numbers[0], version_numbers[1])
|
self.short_version = "%d.%02d" % (version_numbers[0], version_numbers[1])
|
||||||
self.version = "%d.%02d.%d" % version_numbers
|
self.version = "%d.%02d.%d" % version_numbers
|
||||||
self.version_cycle = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE')
|
self.version_cycle = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE')
|
||||||
|
self.version_cycle_number = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE_NUMBER')
|
||||||
self.hash = self._parse_header_file(buildinfo_h, 'BUILD_HASH')[1:-1]
|
self.hash = self._parse_header_file(buildinfo_h, 'BUILD_HASH')[1:-1]
|
||||||
|
|
||||||
if self.version_cycle == "release":
|
if self.version_cycle == "release":
|
||||||
@@ -96,7 +92,8 @@ class VersionInfo:
|
|||||||
self.is_development_build = False
|
self.is_development_build = False
|
||||||
elif self.version_cycle == "rc":
|
elif self.version_cycle == "rc":
|
||||||
# Release candidate
|
# Release candidate
|
||||||
self.full_version = self.version + self.version_cycle
|
version_cycle = self.version_cycle + self.version_cycle_number
|
||||||
|
self.full_version = self.version + version_cycle
|
||||||
self.is_development_build = False
|
self.is_development_build = False
|
||||||
else:
|
else:
|
||||||
# Development build
|
# Development build
|
||||||
@@ -105,7 +102,7 @@ class VersionInfo:
|
|||||||
|
|
||||||
def _parse_header_file(self, filename, define):
|
def _parse_header_file(self, filename, define):
|
||||||
import re
|
import re
|
||||||
regex = re.compile(r"^#\s*define\s+%s\s+(.*)" % define)
|
regex = re.compile("^#\s*define\s+%s\s+(.*)" % define)
|
||||||
with open(filename, "r") as file:
|
with open(filename, "r") as file:
|
||||||
for l in file:
|
for l in file:
|
||||||
match = regex.match(l)
|
match = regex.match(l)
|
||||||
|
@@ -18,72 +18,12 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
import json
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
import codesign.util as util
|
import codesign.util as util
|
||||||
|
|
||||||
|
|
||||||
class ArchiveStateError(Exception):
|
|
||||||
message: str
|
|
||||||
|
|
||||||
def __init__(self, message):
|
|
||||||
self.message = message
|
|
||||||
super().__init__(self.message)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass
|
|
||||||
class ArchiveState:
|
|
||||||
"""
|
|
||||||
Additional information (state) of the archive
|
|
||||||
|
|
||||||
Includes information like expected file size of the archive file in the case
|
|
||||||
the archive file is expected to be successfully created.
|
|
||||||
|
|
||||||
If the archive can not be created, this state will contain error message
|
|
||||||
indicating details of error.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Size in bytes of the corresponding archive.
|
|
||||||
file_size: Optional[int] = None
|
|
||||||
|
|
||||||
# Non-empty value indicates that error has happenned.
|
|
||||||
error_message: str = ''
|
|
||||||
|
|
||||||
def has_error(self) -> bool:
|
|
||||||
"""
|
|
||||||
Check whether the archive is at error state
|
|
||||||
"""
|
|
||||||
|
|
||||||
return self.error_message
|
|
||||||
|
|
||||||
def serialize_to_string(self) -> str:
|
|
||||||
payload = dataclasses.asdict(self)
|
|
||||||
return json.dumps(payload, sort_keys=True, indent=4)
|
|
||||||
|
|
||||||
def serialize_to_file(self, filepath: Path) -> None:
|
|
||||||
string = self.serialize_to_string()
|
|
||||||
filepath.write_text(string)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def deserialize_from_string(cls, string: str) -> 'ArchiveState':
|
|
||||||
try:
|
|
||||||
object_as_dict = json.loads(string)
|
|
||||||
except json.decoder.JSONDecodeError:
|
|
||||||
raise ArchiveStateError('Error parsing JSON')
|
|
||||||
|
|
||||||
return cls(**object_as_dict)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def deserialize_from_file(cls, filepath: Path):
|
|
||||||
string = filepath.read_text()
|
|
||||||
return cls.deserialize_from_string(string)
|
|
||||||
|
|
||||||
|
|
||||||
class ArchiveWithIndicator:
|
class ArchiveWithIndicator:
|
||||||
"""
|
"""
|
||||||
The idea of this class is to wrap around logic which takes care of keeping
|
The idea of this class is to wrap around logic which takes care of keeping
|
||||||
@@ -139,19 +79,6 @@ class ArchiveWithIndicator:
|
|||||||
if not self.ready_indicator_filepath.exists():
|
if not self.ready_indicator_filepath.exists():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
|
||||||
archive_state = ArchiveState.deserialize_from_file(
|
|
||||||
self.ready_indicator_filepath)
|
|
||||||
except ArchiveStateError as error:
|
|
||||||
print(f'Error deserializing archive state: {error.message}')
|
|
||||||
return False
|
|
||||||
|
|
||||||
if archive_state.has_error():
|
|
||||||
# If the error did happen during codesign procedure there will be no
|
|
||||||
# corresponding archive file.
|
|
||||||
# The caller code will deal with the error check further.
|
|
||||||
return True
|
|
||||||
|
|
||||||
# Sometimes on macOS indicator file appears prior to the actual archive
|
# Sometimes on macOS indicator file appears prior to the actual archive
|
||||||
# despite the order of creation and os.sync() used in tag_ready().
|
# despite the order of creation and os.sync() used in tag_ready().
|
||||||
# So consider archive not ready if there is an indicator without an
|
# So consider archive not ready if there is an indicator without an
|
||||||
@@ -161,11 +88,23 @@ class ArchiveWithIndicator:
|
|||||||
f'({self.archive_filepath}) to appear.')
|
f'({self.archive_filepath}) to appear.')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# Read archive size from indicator/
|
||||||
|
#
|
||||||
|
# Assume that file is either empty or is fully written. This is being checked
|
||||||
|
# by performing ValueError check since empty string will throw this exception
|
||||||
|
# when attempted to be converted to int.
|
||||||
|
expected_archive_size_str = self.ready_indicator_filepath.read_text()
|
||||||
|
try:
|
||||||
|
expected_archive_size = int(expected_archive_size_str)
|
||||||
|
except ValueError:
|
||||||
|
print(f'Invalid archive size "{expected_archive_size_str}"')
|
||||||
|
return False
|
||||||
|
|
||||||
# Wait for until archive is fully stored.
|
# Wait for until archive is fully stored.
|
||||||
actual_archive_size = self.archive_filepath.stat().st_size
|
actual_archive_size = self.archive_filepath.stat().st_size
|
||||||
if actual_archive_size != archive_state.file_size:
|
if actual_archive_size != expected_archive_size:
|
||||||
print('Partial/invalid archive size (expected '
|
print('Partial/invalid archive size (expected '
|
||||||
f'{archive_state.file_size} got {actual_archive_size})')
|
f'{expected_archive_size} got {actual_archive_size})')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
@@ -190,7 +129,7 @@ class ArchiveWithIndicator:
|
|||||||
print(f'Exception checking archive: {e}')
|
print(f'Exception checking archive: {e}')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def tag_ready(self, error_message='') -> None:
|
def tag_ready(self) -> None:
|
||||||
"""
|
"""
|
||||||
Tag the archive as ready by creating the corresponding indication file.
|
Tag the archive as ready by creating the corresponding indication file.
|
||||||
|
|
||||||
@@ -199,34 +138,13 @@ class ArchiveWithIndicator:
|
|||||||
If it is violated, an assert will fail.
|
If it is violated, an assert will fail.
|
||||||
"""
|
"""
|
||||||
assert not self.is_ready()
|
assert not self.is_ready()
|
||||||
|
|
||||||
# Try the best to make sure everything is synced to the file system,
|
# Try the best to make sure everything is synced to the file system,
|
||||||
# to avoid any possibility of stamp appearing on a network share prior to
|
# to avoid any possibility of stamp appearing on a network share prior to
|
||||||
# an actual file.
|
# an actual file.
|
||||||
if util.get_current_platform() != util.Platform.WINDOWS:
|
if util.get_current_platform() != util.Platform.WINDOWS:
|
||||||
os.sync()
|
os.sync()
|
||||||
|
archive_size = self.archive_filepath.stat().st_size
|
||||||
archive_size = -1
|
self.ready_indicator_filepath.write_text(str(archive_size))
|
||||||
if self.archive_filepath.exists():
|
|
||||||
archive_size = self.archive_filepath.stat().st_size
|
|
||||||
|
|
||||||
archive_info = ArchiveState(
|
|
||||||
file_size=archive_size, error_message=error_message)
|
|
||||||
|
|
||||||
self.ready_indicator_filepath.write_text(
|
|
||||||
archive_info.serialize_to_string())
|
|
||||||
|
|
||||||
def get_state(self) -> ArchiveState:
|
|
||||||
"""
|
|
||||||
Get state object for this archive
|
|
||||||
|
|
||||||
The state is read from the corresponding state file.
|
|
||||||
"""
|
|
||||||
|
|
||||||
try:
|
|
||||||
return ArchiveState.deserialize_from_file(self.ready_indicator_filepath)
|
|
||||||
except ArchiveStateError as error:
|
|
||||||
return ArchiveState(error_message=f'Error in information format: {error}')
|
|
||||||
|
|
||||||
def clean(self) -> None:
|
def clean(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
@@ -58,7 +58,6 @@ import codesign.util as util
|
|||||||
|
|
||||||
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
||||||
from codesign.archive_with_indicator import ArchiveWithIndicator
|
from codesign.archive_with_indicator import ArchiveWithIndicator
|
||||||
from codesign.exception import CodeSignException
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -146,13 +145,13 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
|
|||||||
def cleanup_environment_for_builder(self) -> None:
|
def cleanup_environment_for_builder(self) -> None:
|
||||||
# TODO(sergey): Revisit need of cleaning up the existing files.
|
# TODO(sergey): Revisit need of cleaning up the existing files.
|
||||||
# In practice it wasn't so helpful, and with multiple clients
|
# In practice it wasn't so helpful, and with multiple clients
|
||||||
# talking to the same server it becomes even more tricky.
|
# talking to the same server it becomes even mor etricky.
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def cleanup_environment_for_signing_server(self) -> None:
|
def cleanup_environment_for_signing_server(self) -> None:
|
||||||
# TODO(sergey): Revisit need of cleaning up the existing files.
|
# TODO(sergey): Revisit need of cleaning up the existing files.
|
||||||
# In practice it wasn't so helpful, and with multiple clients
|
# In practice it wasn't so helpful, and with multiple clients
|
||||||
# talking to the same server it becomes even more tricky.
|
# talking to the same server it becomes even mor etricky.
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def generate_request_id(self) -> str:
|
def generate_request_id(self) -> str:
|
||||||
@@ -221,15 +220,9 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
|
|||||||
"""
|
"""
|
||||||
Wait until archive with signed files is available.
|
Wait until archive with signed files is available.
|
||||||
|
|
||||||
Will only return if the archive with signed files is available. If there
|
|
||||||
was an error during code sign procedure the SystemExit exception is
|
|
||||||
raised, with the message set to the error reported by the codesign
|
|
||||||
server.
|
|
||||||
|
|
||||||
Will only wait for the configured time. If that time exceeds and there
|
Will only wait for the configured time. If that time exceeds and there
|
||||||
is still no responce from the signing server the application will exit
|
is still no responce from the signing server the application will exit
|
||||||
with a non-zero exit code.
|
with a non-zero exit code.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
signed_archive_info = self.signed_archive_info_for_request_id(
|
signed_archive_info = self.signed_archive_info_for_request_id(
|
||||||
@@ -243,17 +236,9 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
time_slept_in_seconds = time.monotonic() - time_start
|
time_slept_in_seconds = time.monotonic() - time_start
|
||||||
if time_slept_in_seconds > timeout_in_seconds:
|
if time_slept_in_seconds > timeout_in_seconds:
|
||||||
signed_archive_info.clean()
|
|
||||||
unsigned_archive_info.clean()
|
unsigned_archive_info.clean()
|
||||||
raise SystemExit("Signing server didn't finish signing in "
|
raise SystemExit("Signing server didn't finish signing in "
|
||||||
f'{timeout_in_seconds} seconds, dying :(')
|
f"{timeout_in_seconds} seconds, dying :(")
|
||||||
|
|
||||||
archive_state = signed_archive_info.get_state()
|
|
||||||
if archive_state.has_error():
|
|
||||||
signed_archive_info.clean()
|
|
||||||
unsigned_archive_info.clean()
|
|
||||||
raise SystemExit(
|
|
||||||
f'Error happenned during codesign procedure: {archive_state.error_message}')
|
|
||||||
|
|
||||||
def copy_signed_files_to_directory(
|
def copy_signed_files_to_directory(
|
||||||
self, signed_dir: Path, destination_dir: Path) -> None:
|
self, signed_dir: Path, destination_dir: Path) -> None:
|
||||||
@@ -411,13 +396,7 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
|
|||||||
temp_dir)
|
temp_dir)
|
||||||
|
|
||||||
logger_server.info('Signing all requested files...')
|
logger_server.info('Signing all requested files...')
|
||||||
try:
|
self.sign_all_files(files)
|
||||||
self.sign_all_files(files)
|
|
||||||
except CodeSignException as error:
|
|
||||||
signed_archive_info.tag_ready(error_message=error.message)
|
|
||||||
unsigned_archive_info.clean()
|
|
||||||
logger_server.info('Signing is complete with errors.')
|
|
||||||
return
|
|
||||||
|
|
||||||
logger_server.info('Packing signed files...')
|
logger_server.info('Packing signed files...')
|
||||||
pack_files(files=files,
|
pack_files(files=files,
|
||||||
|
@@ -33,7 +33,6 @@ from buildbot_utils import Builder
|
|||||||
|
|
||||||
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
||||||
from codesign.base_code_signer import BaseCodeSigner
|
from codesign.base_code_signer import BaseCodeSigner
|
||||||
from codesign.exception import CodeSignException
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger_server = logger.getChild('server')
|
logger_server = logger.getChild('server')
|
||||||
@@ -46,10 +45,6 @@ EXTENSIONS_TO_BE_SIGNED = {'.dylib', '.so', '.dmg'}
|
|||||||
NAME_PREFIXES_TO_BE_SIGNED = {'python'}
|
NAME_PREFIXES_TO_BE_SIGNED = {'python'}
|
||||||
|
|
||||||
|
|
||||||
class NotarizationException(CodeSignException):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def is_file_from_bundle(file: AbsoluteAndRelativeFileName) -> bool:
|
def is_file_from_bundle(file: AbsoluteAndRelativeFileName) -> bool:
|
||||||
"""
|
"""
|
||||||
Check whether file is coming from an .app bundle
|
Check whether file is coming from an .app bundle
|
||||||
@@ -191,7 +186,7 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
file.absolute_filepath]
|
file.absolute_filepath]
|
||||||
self.run_command_or_mock(command, util.Platform.MACOS)
|
self.run_command_or_mock(command, util.Platform.MACOS)
|
||||||
|
|
||||||
def codesign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
def codesign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> bool:
|
||||||
"""
|
"""
|
||||||
Run codesign tool on all eligible files in the given list.
|
Run codesign tool on all eligible files in the given list.
|
||||||
|
|
||||||
@@ -230,6 +225,8 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
file_index + 1, num_signed_files,
|
file_index + 1, num_signed_files,
|
||||||
signed_file.relative_filepath)
|
signed_file.relative_filepath)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def codesign_bundles(
|
def codesign_bundles(
|
||||||
self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -276,6 +273,8 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
|
|
||||||
files.extend(extra_files)
|
files.extend(extra_files)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
# Notarization.
|
# Notarization.
|
||||||
|
|
||||||
@@ -335,40 +334,7 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
logger_server.error('xcrun command did not report RequestUUID')
|
logger_server.error('xcrun command did not report RequestUUID')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def notarize_review_status(self, xcrun_output: str) -> bool:
|
def notarize_wait_result(self, request_uuid: str) -> bool:
|
||||||
"""
|
|
||||||
Review status returned by xcrun's notarization info
|
|
||||||
|
|
||||||
Returns truth if the notarization process has finished.
|
|
||||||
If there are errors during notarization, a NotarizationException()
|
|
||||||
exception is thrown with status message from the notarial office.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Parse status and message
|
|
||||||
status = xcrun_field_value_from_output('Status', xcrun_output)
|
|
||||||
status_message = xcrun_field_value_from_output(
|
|
||||||
'Status Message', xcrun_output)
|
|
||||||
|
|
||||||
if status == 'success':
|
|
||||||
logger_server.info(
|
|
||||||
'Package successfully notarized: %s', status_message)
|
|
||||||
return True
|
|
||||||
|
|
||||||
if status == 'invalid':
|
|
||||||
logger_server.error(xcrun_output)
|
|
||||||
logger_server.error(
|
|
||||||
'Package notarization has failed: %s', status_message)
|
|
||||||
raise NotarizationException(status_message)
|
|
||||||
|
|
||||||
if status == 'in progress':
|
|
||||||
return False
|
|
||||||
|
|
||||||
logger_server.info(
|
|
||||||
'Unknown notarization status %s (%s)', status, status_message)
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
def notarize_wait_result(self, request_uuid: str) -> None:
|
|
||||||
"""
|
"""
|
||||||
Wait for until notarial office have a reply
|
Wait for until notarial office have a reply
|
||||||
"""
|
"""
|
||||||
@@ -385,11 +351,29 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
timeout_in_seconds = self.config.MACOS_NOTARIZE_TIMEOUT_IN_SECONDS
|
timeout_in_seconds = self.config.MACOS_NOTARIZE_TIMEOUT_IN_SECONDS
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
xcrun_output = self.check_output_or_mock(
|
output = self.check_output_or_mock(
|
||||||
command, util.Platform.MACOS, allow_nonzero_exit_code=True)
|
command, util.Platform.MACOS, allow_nonzero_exit_code=True)
|
||||||
|
# Parse status and message
|
||||||
|
status = xcrun_field_value_from_output('Status', output)
|
||||||
|
status_message = xcrun_field_value_from_output(
|
||||||
|
'Status Message', output)
|
||||||
|
|
||||||
if self.notarize_review_status(xcrun_output):
|
# Review status.
|
||||||
break
|
if status:
|
||||||
|
if status == 'success':
|
||||||
|
logger_server.info(
|
||||||
|
'Package successfully notarized: %s', status_message)
|
||||||
|
return True
|
||||||
|
elif status == 'invalid':
|
||||||
|
logger_server.error(output)
|
||||||
|
logger_server.error(
|
||||||
|
'Package notarization has failed: %s', status_message)
|
||||||
|
return False
|
||||||
|
elif status == 'in progress':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
logger_server.info(
|
||||||
|
'Unknown notarization status %s (%s)', status, status_message)
|
||||||
|
|
||||||
logger_server.info('Keep waiting for notarization office.')
|
logger_server.info('Keep waiting for notarization office.')
|
||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
@@ -410,6 +394,8 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
command = ['xcrun', 'stapler', 'staple', '-v', file.absolute_filepath]
|
command = ['xcrun', 'stapler', 'staple', '-v', file.absolute_filepath]
|
||||||
self.check_output_or_mock(command, util.Platform.MACOS)
|
self.check_output_or_mock(command, util.Platform.MACOS)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def notarize_dmg(self, file: AbsoluteAndRelativeFileName) -> bool:
|
def notarize_dmg(self, file: AbsoluteAndRelativeFileName) -> bool:
|
||||||
"""
|
"""
|
||||||
Run entire pipeline to get DMG notarized.
|
Run entire pipeline to get DMG notarized.
|
||||||
@@ -428,7 +414,10 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# Staple.
|
# Staple.
|
||||||
self.notarize_staple(file)
|
if not self.notarize_staple(file):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def notarize_all_dmg(
|
def notarize_all_dmg(
|
||||||
self, files: List[AbsoluteAndRelativeFileName]) -> bool:
|
self, files: List[AbsoluteAndRelativeFileName]) -> bool:
|
||||||
@@ -443,7 +432,10 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
if not self.check_file_is_to_be_signed(file):
|
if not self.check_file_is_to_be_signed(file):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self.notarize_dmg(file)
|
if not self.notarize_dmg(file):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
# Entry point.
|
# Entry point.
|
||||||
@@ -451,6 +443,11 @@ class MacOSCodeSigner(BaseCodeSigner):
|
|||||||
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
||||||
# TODO(sergey): Handle errors somehow.
|
# TODO(sergey): Handle errors somehow.
|
||||||
|
|
||||||
self.codesign_all_files(files)
|
if not self.codesign_all_files(files):
|
||||||
self.codesign_bundles(files)
|
return
|
||||||
self.notarize_all_dmg(files)
|
|
||||||
|
if not self.codesign_bundles(files):
|
||||||
|
return
|
||||||
|
|
||||||
|
if not self.notarize_all_dmg(files):
|
||||||
|
return
|
||||||
|
@@ -29,7 +29,6 @@ from buildbot_utils import Builder
|
|||||||
|
|
||||||
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
|
||||||
from codesign.base_code_signer import BaseCodeSigner
|
from codesign.base_code_signer import BaseCodeSigner
|
||||||
from codesign.exception import CodeSignException
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger_server = logger.getChild('server')
|
logger_server = logger.getChild('server')
|
||||||
@@ -41,9 +40,6 @@ BLACKLIST_FILE_PREFIXES = (
|
|||||||
'api-ms-', 'concrt', 'msvcp', 'ucrtbase', 'vcomp', 'vcruntime')
|
'api-ms-', 'concrt', 'msvcp', 'ucrtbase', 'vcomp', 'vcruntime')
|
||||||
|
|
||||||
|
|
||||||
class SigntoolException(CodeSignException):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class WindowsCodeSigner(BaseCodeSigner):
|
class WindowsCodeSigner(BaseCodeSigner):
|
||||||
def check_file_is_to_be_signed(
|
def check_file_is_to_be_signed(
|
||||||
self, file: AbsoluteAndRelativeFileName) -> bool:
|
self, file: AbsoluteAndRelativeFileName) -> bool:
|
||||||
@@ -54,46 +50,12 @@ class WindowsCodeSigner(BaseCodeSigner):
|
|||||||
|
|
||||||
return file.relative_filepath.suffix in EXTENSIONS_TO_BE_SIGNED
|
return file.relative_filepath.suffix in EXTENSIONS_TO_BE_SIGNED
|
||||||
|
|
||||||
|
|
||||||
def get_sign_command_prefix(self) -> List[str]:
|
def get_sign_command_prefix(self) -> List[str]:
|
||||||
return [
|
return [
|
||||||
'signtool', 'sign', '/v',
|
'signtool', 'sign', '/v',
|
||||||
'/f', self.config.WIN_CERTIFICATE_FILEPATH,
|
'/f', self.config.WIN_CERTIFICATE_FILEPATH,
|
||||||
'/tr', self.config.WIN_TIMESTAMP_AUTHORITY_URL]
|
'/tr', self.config.WIN_TIMESTAMP_AUTHORITY_URL]
|
||||||
|
|
||||||
|
|
||||||
def run_codesign_tool(self, filepath: Path) -> None:
|
|
||||||
command = self.get_sign_command_prefix() + [filepath]
|
|
||||||
|
|
||||||
try:
|
|
||||||
codesign_output = self.check_output_or_mock(command, util.Platform.WINDOWS)
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
raise SigntoolException(f'Error running signtool {e}')
|
|
||||||
|
|
||||||
logger_server.info(f'signtool output:\n{codesign_output}')
|
|
||||||
|
|
||||||
got_number_of_success = False
|
|
||||||
|
|
||||||
for line in codesign_output.split('\n'):
|
|
||||||
line_clean = line.strip()
|
|
||||||
line_clean_lower = line_clean.lower()
|
|
||||||
|
|
||||||
if line_clean_lower.startswith('number of warnings') or \
|
|
||||||
line_clean_lower.startswith('number of errors'):
|
|
||||||
number = int(line_clean_lower.split(':')[1])
|
|
||||||
if number != 0:
|
|
||||||
raise SigntoolException('Non-clean success of signtool')
|
|
||||||
|
|
||||||
if line_clean_lower.startswith('number of files successfully signed'):
|
|
||||||
got_number_of_success = True
|
|
||||||
number = int(line_clean_lower.split(':')[1])
|
|
||||||
if number != 1:
|
|
||||||
raise SigntoolException('Signtool did not consider codesign a success')
|
|
||||||
|
|
||||||
if not got_number_of_success:
|
|
||||||
raise SigntoolException('Signtool did not report number of files signed')
|
|
||||||
|
|
||||||
|
|
||||||
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
|
||||||
# NOTE: Sign files one by one to avoid possible command line length
|
# NOTE: Sign files one by one to avoid possible command line length
|
||||||
# overflow (which could happen if we ever decide to sign every binary
|
# overflow (which could happen if we ever decide to sign every binary
|
||||||
@@ -111,7 +73,12 @@ class WindowsCodeSigner(BaseCodeSigner):
|
|||||||
file_index + 1, num_files, file.relative_filepath)
|
file_index + 1, num_files, file.relative_filepath)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
command = self.get_sign_command_prefix()
|
||||||
|
command.append(file.absolute_filepath)
|
||||||
logger_server.info(
|
logger_server.info(
|
||||||
'Running signtool command for file [%d/%d] %s...',
|
'Running signtool command for file [%d/%d] %s...',
|
||||||
file_index + 1, num_files, file.relative_filepath)
|
file_index + 1, num_files, file.relative_filepath)
|
||||||
self.run_codesign_tool(file.absolute_filepath)
|
# TODO(sergey): Check the status somehow. With a missing certificate
|
||||||
|
# the command still exists with a zero code.
|
||||||
|
self.run_command_or_mock(command, util.Platform.WINDOWS)
|
||||||
|
# TODO(sergey): Report number of signed and ignored files.
|
||||||
|
@@ -82,10 +82,6 @@ def create_argument_parser():
|
|||||||
type=Path,
|
type=Path,
|
||||||
help="Optional path to applescript to set up folder looks of DMG."
|
help="Optional path to applescript to set up folder looks of DMG."
|
||||||
"If not provided default Blender's one is used.")
|
"If not provided default Blender's one is used.")
|
||||||
parser.add_argument(
|
|
||||||
'--codesign',
|
|
||||||
action="store_true",
|
|
||||||
help="Code sign and notarize DMG contents.")
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
@@ -399,8 +395,7 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
dmg_filepath: Path,
|
dmg_filepath: Path,
|
||||||
background_image_filepath: Path,
|
background_image_filepath: Path,
|
||||||
volume_name: str,
|
volume_name: str,
|
||||||
applescript: Path,
|
applescript: Path) -> None:
|
||||||
codesign: bool) -> None:
|
|
||||||
"""
|
"""
|
||||||
Create DMG with all app bundles
|
Create DMG with all app bundles
|
||||||
|
|
||||||
@@ -426,8 +421,7 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
#
|
#
|
||||||
# This allows to recurs into the content of bundles without worrying about
|
# This allows to recurs into the content of bundles without worrying about
|
||||||
# possible interfereice of Application symlink.
|
# possible interfereice of Application symlink.
|
||||||
if codesign:
|
codesign_app_bundles_in_dmg(mount_directory)
|
||||||
codesign_app_bundles_in_dmg(mount_directory)
|
|
||||||
|
|
||||||
copy_background_if_needed(background_image_filepath, mount_directory)
|
copy_background_if_needed(background_image_filepath, mount_directory)
|
||||||
create_applications_link(mount_directory)
|
create_applications_link(mount_directory)
|
||||||
@@ -440,8 +434,7 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
compress_dmg(writable_dmg_filepath, dmg_filepath)
|
compress_dmg(writable_dmg_filepath, dmg_filepath)
|
||||||
writable_dmg_filepath.unlink()
|
writable_dmg_filepath.unlink()
|
||||||
|
|
||||||
if codesign:
|
codesign_and_notarize_dmg(dmg_filepath)
|
||||||
codesign_and_notarize_dmg(dmg_filepath)
|
|
||||||
|
|
||||||
|
|
||||||
def ensure_dmg_extension(filepath: Path) -> Path:
|
def ensure_dmg_extension(filepath: Path) -> Path:
|
||||||
@@ -528,7 +521,6 @@ def main():
|
|||||||
source_dir = args.source_dir.absolute()
|
source_dir = args.source_dir.absolute()
|
||||||
background_image_filepath = get_background_image(args.background_image)
|
background_image_filepath = get_background_image(args.background_image)
|
||||||
applescript = get_applescript(args.applescript)
|
applescript = get_applescript(args.applescript)
|
||||||
codesign = args.codesign
|
|
||||||
|
|
||||||
app_bundles = collect_and_log_app_bundles(source_dir)
|
app_bundles = collect_and_log_app_bundles(source_dir)
|
||||||
if not app_bundles:
|
if not app_bundles:
|
||||||
@@ -543,8 +535,7 @@ def main():
|
|||||||
dmg_filepath,
|
dmg_filepath,
|
||||||
background_image_filepath,
|
background_image_filepath,
|
||||||
volume_name,
|
volume_name,
|
||||||
applescript,
|
applescript)
|
||||||
codesign)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@@ -23,9 +23,8 @@ import shutil
|
|||||||
|
|
||||||
import buildbot_utils
|
import buildbot_utils
|
||||||
|
|
||||||
|
|
||||||
def get_cmake_options(builder):
|
def get_cmake_options(builder):
|
||||||
codesign_script = os.path.join(
|
post_install_script = os.path.join(
|
||||||
builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake')
|
builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake')
|
||||||
|
|
||||||
config_file = "build_files/cmake/config/blender_release.cmake"
|
config_file = "build_files/cmake/config/blender_release.cmake"
|
||||||
@@ -37,32 +36,18 @@ def get_cmake_options(builder):
|
|||||||
options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9')
|
options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9')
|
||||||
elif builder.platform == 'win':
|
elif builder.platform == 'win':
|
||||||
options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64'])
|
options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64'])
|
||||||
if builder.codesign:
|
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + post_install_script])
|
||||||
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + codesign_script])
|
|
||||||
elif builder.platform == 'linux':
|
elif builder.platform == 'linux':
|
||||||
config_file = "build_files/buildbot/config/blender_linux.cmake"
|
config_file = "build_files/buildbot/config/blender_linux.cmake"
|
||||||
|
|
||||||
optix_sdk_dir = os.path.join(builder.blender_dir, '..', '..', 'NVIDIA-Optix-SDK-7.1')
|
optix_sdk_dir = os.path.join(builder.blender_dir, '..', '..', 'NVIDIA-Optix-SDK')
|
||||||
options.append('-DOPTIX_ROOT_DIR:PATH=' + optix_sdk_dir)
|
options.append('-DOPTIX_ROOT_DIR:PATH=' + optix_sdk_dir)
|
||||||
|
|
||||||
# Workaround to build sm_30 kernels with CUDA 10, since CUDA 11 no longer supports that architecture
|
|
||||||
if builder.platform == 'win':
|
|
||||||
options.append('-DCUDA10_TOOLKIT_ROOT_DIR:PATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1')
|
|
||||||
options.append('-DCUDA10_NVCC_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1/bin/nvcc.exe')
|
|
||||||
options.append('-DCUDA11_TOOLKIT_ROOT_DIR:PATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.1')
|
|
||||||
options.append('-DCUDA11_NVCC_EXECUTABLE:FILEPATH=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.1/bin/nvcc.exe')
|
|
||||||
elif builder.platform == 'linux':
|
|
||||||
options.append('-DCUDA10_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda-10.1')
|
|
||||||
options.append('-DCUDA10_NVCC_EXECUTABLE:FILEPATH=/usr/local/cuda-10.1/bin/nvcc')
|
|
||||||
options.append('-DCUDA11_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda-11.1')
|
|
||||||
options.append('-DCUDA11_NVCC_EXECUTABLE:FILEPATH=/usr/local/cuda-11.1/bin/nvcc')
|
|
||||||
|
|
||||||
options.append("-C" + os.path.join(builder.blender_dir, config_file))
|
options.append("-C" + os.path.join(builder.blender_dir, config_file))
|
||||||
options.append("-DCMAKE_INSTALL_PREFIX=%s" % (builder.install_dir))
|
options.append("-DCMAKE_INSTALL_PREFIX=%s" % (builder.install_dir))
|
||||||
|
|
||||||
return options
|
return options
|
||||||
|
|
||||||
|
|
||||||
def update_git(builder):
|
def update_git(builder):
|
||||||
# Do extra git fetch because not all platform/git/buildbot combinations
|
# Do extra git fetch because not all platform/git/buildbot combinations
|
||||||
# update the origin remote, causing buildinfo to detect local changes.
|
# update the origin remote, causing buildinfo to detect local changes.
|
||||||
@@ -72,7 +57,6 @@ def update_git(builder):
|
|||||||
command = ['git', 'fetch', '--all']
|
command = ['git', 'fetch', '--all']
|
||||||
buildbot_utils.call(builder.command_prefix + command)
|
buildbot_utils.call(builder.command_prefix + command)
|
||||||
|
|
||||||
|
|
||||||
def clean_directories(builder):
|
def clean_directories(builder):
|
||||||
# Make sure no garbage remained from the previous run
|
# Make sure no garbage remained from the previous run
|
||||||
if os.path.isdir(builder.install_dir):
|
if os.path.isdir(builder.install_dir):
|
||||||
@@ -88,7 +72,6 @@ def clean_directories(builder):
|
|||||||
print("Removing {}" . format(buildinfo))
|
print("Removing {}" . format(buildinfo))
|
||||||
os.remove(full_path)
|
os.remove(full_path)
|
||||||
|
|
||||||
|
|
||||||
def cmake_configure(builder):
|
def cmake_configure(builder):
|
||||||
# CMake configuration
|
# CMake configuration
|
||||||
os.chdir(builder.build_dir)
|
os.chdir(builder.build_dir)
|
||||||
@@ -103,7 +86,6 @@ def cmake_configure(builder):
|
|||||||
command = ['cmake', builder.blender_dir] + cmake_options
|
command = ['cmake', builder.blender_dir] + cmake_options
|
||||||
buildbot_utils.call(builder.command_prefix + command)
|
buildbot_utils.call(builder.command_prefix + command)
|
||||||
|
|
||||||
|
|
||||||
def cmake_build(builder):
|
def cmake_build(builder):
|
||||||
# CMake build
|
# CMake build
|
||||||
os.chdir(builder.build_dir)
|
os.chdir(builder.build_dir)
|
||||||
@@ -126,7 +108,6 @@ def cmake_build(builder):
|
|||||||
print("CMake build:")
|
print("CMake build:")
|
||||||
buildbot_utils.call(builder.command_prefix + command)
|
buildbot_utils.call(builder.command_prefix + command)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
builder = buildbot_utils.create_builder_from_arguments()
|
builder = buildbot_utils.create_builder_from_arguments()
|
||||||
update_git(builder)
|
update_git(builder)
|
||||||
|
@@ -29,20 +29,18 @@ from pathlib import Path
|
|||||||
|
|
||||||
import buildbot_utils
|
import buildbot_utils
|
||||||
|
|
||||||
|
|
||||||
def get_package_name(builder, platform=None):
|
def get_package_name(builder, platform=None):
|
||||||
info = buildbot_utils.VersionInfo(builder)
|
info = buildbot_utils.VersionInfo(builder)
|
||||||
|
|
||||||
package_name = 'blender-' + info.full_version
|
package_name = 'blender-' + info.full_version
|
||||||
if platform:
|
if platform:
|
||||||
package_name += '-' + platform
|
package_name += '-' + platform
|
||||||
if not (builder.branch == 'master' or builder.is_release_branch):
|
if not (builder.branch == 'master' or builder.is_release_branch):
|
||||||
if info.is_development_build:
|
if info.is_development_build:
|
||||||
package_name = builder.branch + "-" + package_name
|
package_name = builder.branch + "-" + package_name
|
||||||
|
|
||||||
return package_name
|
return package_name
|
||||||
|
|
||||||
|
|
||||||
def sign_file_or_directory(path):
|
def sign_file_or_directory(path):
|
||||||
from codesign.simple_code_signer import SimpleCodeSigner
|
from codesign.simple_code_signer import SimpleCodeSigner
|
||||||
code_signer = SimpleCodeSigner()
|
code_signer = SimpleCodeSigner()
|
||||||
@@ -66,7 +64,6 @@ def create_buildbot_upload_zip(builder, package_files):
|
|||||||
sys.stderr.write('Create buildbot_upload.zip failed: ' + str(ex) + '\n')
|
sys.stderr.write('Create buildbot_upload.zip failed: ' + str(ex) + '\n')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
def create_tar_xz(src, dest, package_name):
|
def create_tar_xz(src, dest, package_name):
|
||||||
# One extra to remove leading os.sep when cleaning root for package_root
|
# One extra to remove leading os.sep when cleaning root for package_root
|
||||||
ln = len(src) + 1
|
ln = len(src) + 1
|
||||||
@@ -94,7 +91,6 @@ def create_tar_xz(src, dest, package_name):
|
|||||||
package.add(entry[0], entry[1], recursive=False, filter=_fakeroot)
|
package.add(entry[0], entry[1], recursive=False, filter=_fakeroot)
|
||||||
package.close()
|
package.close()
|
||||||
|
|
||||||
|
|
||||||
def cleanup_files(dirpath, extension):
|
def cleanup_files(dirpath, extension):
|
||||||
for f in os.listdir(dirpath):
|
for f in os.listdir(dirpath):
|
||||||
filepath = os.path.join(dirpath, f)
|
filepath = os.path.join(dirpath, f)
|
||||||
@@ -121,8 +117,6 @@ def pack_mac(builder):
|
|||||||
if info.is_development_build:
|
if info.is_development_build:
|
||||||
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
|
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
|
||||||
command += ['--background-image', background_image]
|
command += ['--background-image', background_image]
|
||||||
if builder.codesign:
|
|
||||||
command += ['--codesign']
|
|
||||||
command += [builder.install_dir]
|
command += [builder.install_dir]
|
||||||
buildbot_utils.call(command)
|
buildbot_utils.call(command)
|
||||||
|
|
||||||
@@ -156,8 +150,7 @@ def pack_win(builder):
|
|||||||
|
|
||||||
package_filename = package_name + '.msi'
|
package_filename = package_name + '.msi'
|
||||||
package_filepath = os.path.join(builder.build_dir, package_filename)
|
package_filepath = os.path.join(builder.build_dir, package_filename)
|
||||||
if builder.codesign:
|
sign_file_or_directory(package_filepath)
|
||||||
sign_file_or_directory(package_filepath)
|
|
||||||
|
|
||||||
package_files += [(package_filepath, package_filename)]
|
package_files += [(package_filepath, package_filename)]
|
||||||
|
|
||||||
@@ -175,11 +168,7 @@ def pack_linux(builder):
|
|||||||
|
|
||||||
print("Stripping python...")
|
print("Stripping python...")
|
||||||
py_target = os.path.join(builder.install_dir, info.short_version)
|
py_target = os.path.join(builder.install_dir, info.short_version)
|
||||||
buildbot_utils.call(
|
buildbot_utils.call(builder.command_prefix + ['find', py_target, '-iname', '*.so', '-exec', 'strip', '-s', '{}', ';'])
|
||||||
builder.command_prefix + [
|
|
||||||
'find', py_target, '-iname', '*.so', '-exec', 'strip', '-s', '{}', ';',
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Construct package name
|
# Construct package name
|
||||||
platform_name = 'linux64'
|
platform_name = 'linux64'
|
||||||
|
@@ -22,21 +22,18 @@ import buildbot_utils
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def get_ctest_arguments(builder):
|
def get_ctest_arguments(builder):
|
||||||
args = ['--output-on-failure']
|
args = ['--output-on-failure']
|
||||||
if builder.platform == 'win':
|
if builder.platform == 'win':
|
||||||
args += ['-C', 'Release']
|
args += ['-C', 'Release']
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
def test(builder):
|
def test(builder):
|
||||||
os.chdir(builder.build_dir)
|
os.chdir(builder.build_dir)
|
||||||
|
|
||||||
command = builder.command_prefix + ['ctest'] + get_ctest_arguments(builder)
|
command = builder.command_prefix + ['ctest'] + get_ctest_arguments(builder)
|
||||||
buildbot_utils.call(command)
|
buildbot_utils.call(command)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
builder = buildbot_utils.create_builder_from_arguments()
|
builder = buildbot_utils.create_builder_from_arguments()
|
||||||
test(builder)
|
test(builder)
|
||||||
|
@@ -12,8 +12,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2016 Blender Foundation.
|
# Copyright 2016 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If ALEMBIC_ROOT_DIR was defined in the environment, use it.
|
# If ALEMBIC_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -47,12 +51,12 @@ FIND_LIBRARY(ALEMBIC_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set ALEMBIC_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set ALEMBIC_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Alembic DEFAULT_MSG ALEMBIC_LIBRARY ALEMBIC_INCLUDE_DIR)
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALEMBIC DEFAULT_MSG ALEMBIC_LIBRARY ALEMBIC_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(ALEMBIC_FOUND)
|
IF(ALEMBIC_FOUND)
|
||||||
SET(ALEMBIC_LIBRARIES ${ALEMBIC_LIBRARY})
|
SET(ALEMBIC_LIBRARIES ${ALEMBIC_LIBRARY})
|
||||||
SET(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
|
SET(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(ALEMBIC_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
ALEMBIC_INCLUDE_DIR
|
ALEMBIC_INCLUDE_DIR
|
||||||
|
@@ -11,13 +11,6 @@
|
|||||||
# AUDASPACE_PY_INCLUDE_DIRS - the audaspace's python binding include directories
|
# AUDASPACE_PY_INCLUDE_DIRS - the audaspace's python binding include directories
|
||||||
# AUDASPACE_PY_LIBRARIES - link these to use audaspace's python binding
|
# AUDASPACE_PY_LIBRARIES - link these to use audaspace's python binding
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2014 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
IF(NOT AUDASPACE_ROOT_DIR AND NOT $ENV{AUDASPACE_ROOT_DIR} STREQUAL "")
|
IF(NOT AUDASPACE_ROOT_DIR AND NOT $ENV{AUDASPACE_ROOT_DIR} STREQUAL "")
|
||||||
SET(AUDASPACE_ROOT_DIR $ENV{AUDASPACE_ROOT_DIR})
|
SET(AUDASPACE_ROOT_DIR $ENV{AUDASPACE_ROOT_DIR})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@@ -30,7 +23,7 @@ SET(_audaspace_SEARCH_DIRS
|
|||||||
FIND_PACKAGE(PkgConfig)
|
FIND_PACKAGE(PkgConfig)
|
||||||
IF(PKG_CONFIG_FOUND)
|
IF(PKG_CONFIG_FOUND)
|
||||||
PKG_CHECK_MODULES(AUDASPACE_PKGCONF audaspace)
|
PKG_CHECK_MODULES(AUDASPACE_PKGCONF audaspace)
|
||||||
ENDIF()
|
ENDIF(PKG_CONFIG_FOUND)
|
||||||
|
|
||||||
# Include dir
|
# Include dir
|
||||||
FIND_PATH(AUDASPACE_INCLUDE_DIR
|
FIND_PATH(AUDASPACE_INCLUDE_DIR
|
||||||
@@ -88,17 +81,17 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Audaspace_Py DEFAULT_MSG AUDASPACE_PY_LIBRAR
|
|||||||
IF(AUDASPACE_FOUND)
|
IF(AUDASPACE_FOUND)
|
||||||
SET(AUDASPACE_LIBRARIES ${AUDASPACE_LIBRARY})
|
SET(AUDASPACE_LIBRARIES ${AUDASPACE_LIBRARY})
|
||||||
SET(AUDASPACE_INCLUDE_DIRS ${AUDASPACE_INCLUDE_DIR})
|
SET(AUDASPACE_INCLUDE_DIRS ${AUDASPACE_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(AUDASPACE_FOUND)
|
||||||
|
|
||||||
IF(AUDASPACE_C_FOUND)
|
IF(AUDASPACE_C_FOUND)
|
||||||
SET(AUDASPACE_C_LIBRARIES ${AUDASPACE_C_LIBRARY})
|
SET(AUDASPACE_C_LIBRARIES ${AUDASPACE_C_LIBRARY})
|
||||||
SET(AUDASPACE_C_INCLUDE_DIRS ${AUDASPACE_C_INCLUDE_DIR})
|
SET(AUDASPACE_C_INCLUDE_DIRS ${AUDASPACE_C_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(AUDASPACE_C_FOUND)
|
||||||
|
|
||||||
IF(AUDASPACE_PY_FOUND)
|
IF(AUDASPACE_PY_FOUND)
|
||||||
SET(AUDASPACE_PY_LIBRARIES ${AUDASPACE_PY_LIBRARY})
|
SET(AUDASPACE_PY_LIBRARIES ${AUDASPACE_PY_LIBRARY})
|
||||||
SET(AUDASPACE_PY_INCLUDE_DIRS ${AUDASPACE_PY_INCLUDE_DIR})
|
SET(AUDASPACE_PY_INCLUDE_DIRS ${AUDASPACE_PY_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(AUDASPACE_PY_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
AUDASPACE_LIBRARY
|
AUDASPACE_LIBRARY
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2018 Blender Foundation.
|
# Copyright 2018 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If BLOSC_ROOT_DIR was defined in the environment, use it.
|
# If BLOSC_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -49,7 +53,7 @@ FIND_LIBRARY(BLOSC_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set BLOSC_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set BLOSC_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Blosc DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(BLOSC DEFAULT_MSG
|
||||||
BLOSC_LIBRARY BLOSC_INCLUDE_DIR)
|
BLOSC_LIBRARY BLOSC_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(BLOSC_FOUND)
|
IF(BLOSC_FOUND)
|
||||||
|
@@ -1,105 +0,0 @@
|
|||||||
# - Find clang-tidy executable
|
|
||||||
#
|
|
||||||
# Find the native clang-tidy executable
|
|
||||||
#
|
|
||||||
# This module defines
|
|
||||||
# CLANG_TIDY_EXECUTABLE, the ful lpath to clang-tidy executable
|
|
||||||
#
|
|
||||||
# CLANG_TIDY_VERSION, the full version of the clang-tidy in the
|
|
||||||
# major,minor.patch format
|
|
||||||
#
|
|
||||||
# CLANG_TIDY_VERSION_MAJOR,
|
|
||||||
# CLANG_TIDY_VERSION_MINOR,
|
|
||||||
# CLANG_TIDY_VERSION_PATCH, individual components of the clang-tidy version.
|
|
||||||
#
|
|
||||||
# CLANG_TIDY_FOUND, If false, do not try to use Eigen3.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2020 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If CLANG_TIDY_ROOT_DIR was defined in the environment, use it.
|
|
||||||
if(NOT CLANG_TIDY_ROOT_DIR AND NOT $ENV{CLANG_TIDY_ROOT_DIR} STREQUAL "")
|
|
||||||
set(CLANG_TIDY_ROOT_DIR $ENV{CLANG_TIDY_ROOT_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_clang_tidy_SEARCH_DIRS
|
|
||||||
${CLANG_TIDY_ROOT_DIR}
|
|
||||||
/usr/local/bin
|
|
||||||
)
|
|
||||||
|
|
||||||
# TODO(sergey): Find more reliable way of finding the latest clang-tidy.
|
|
||||||
find_program(CLANG_TIDY_EXECUTABLE
|
|
||||||
NAMES
|
|
||||||
clang-tidy-12
|
|
||||||
clang-tidy-11
|
|
||||||
clang-tidy-10
|
|
||||||
clang-tidy-9
|
|
||||||
clang-tidy-8
|
|
||||||
clang-tidy-7
|
|
||||||
clang-tidy
|
|
||||||
HINTS
|
|
||||||
${_clang_tidy_SEARCH_DIRS}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(CLANG_TIDY_EXECUTABLE AND NOT EXISTS ${CLANG_TIDY_EXECUTABLE})
|
|
||||||
message(WARNING "Cached or directly specified Clang-Tidy executable does not exist.")
|
|
||||||
set(CLANG_TIDY_FOUND FALSE)
|
|
||||||
elseif(CLANG_TIDY_EXECUTABLE)
|
|
||||||
# Mark clang-tidy as found.
|
|
||||||
set(CLANG_TIDY_FOUND TRUE)
|
|
||||||
|
|
||||||
# Setup fallback values.
|
|
||||||
set(CLANG_TIDY_VERSION_MAJOR 0)
|
|
||||||
set(CLANG_TIDY_VERSION_MINOR 0)
|
|
||||||
set(CLANG_TIDY_VERSION_PATCH 0)
|
|
||||||
|
|
||||||
# Get version from the output.
|
|
||||||
#
|
|
||||||
# NOTE: Don't use name of the executable file since that only includes a
|
|
||||||
# major version. Also, even the major version might be missing in the
|
|
||||||
# executable name.
|
|
||||||
execute_process(COMMAND ${CLANG_TIDY_EXECUTABLE} -version
|
|
||||||
OUTPUT_VARIABLE CLANG_TIDY_VERSION_RAW
|
|
||||||
ERROR_QUIET
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
# Parse parts.
|
|
||||||
if(CLANG_TIDY_VERSION_RAW MATCHES "LLVM version .*")
|
|
||||||
# Strip the LLVM prefix and get list of individual version components.
|
|
||||||
string(REGEX REPLACE
|
|
||||||
".*LLVM version ([.0-9]+).*" "\\1"
|
|
||||||
CLANG_SEMANTIC_VERSION "${CLANG_TIDY_VERSION_RAW}")
|
|
||||||
string(REPLACE "." ";" CLANG_VERSION_PARTS "${CLANG_SEMANTIC_VERSION}")
|
|
||||||
list(LENGTH CLANG_VERSION_PARTS NUM_CLANG_TIDY_VERSION_PARTS)
|
|
||||||
|
|
||||||
# Extract components into corresponding variables.
|
|
||||||
if(NUM_CLANG_TIDY_VERSION_PARTS GREATER 0)
|
|
||||||
list(GET CLANG_VERSION_PARTS 0 CLANG_TIDY_VERSION_MAJOR)
|
|
||||||
endif()
|
|
||||||
if(NUM_CLANG_TIDY_VERSION_PARTS GREATER 1)
|
|
||||||
list(GET CLANG_VERSION_PARTS 1 CLANG_TIDY_VERSION_MINOR)
|
|
||||||
endif()
|
|
||||||
if(NUM_CLANG_TIDY_VERSION_PARTS GREATER 2)
|
|
||||||
list(GET CLANG_VERSION_PARTS 2 CLANG_TIDY_VERSION_PATCH)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Unset temp variables.
|
|
||||||
unset(NUM_CLANG_TIDY_VERSION_PARTS)
|
|
||||||
unset(CLANG_SEMANTIC_VERSION)
|
|
||||||
unset(CLANG_VERSION_PARTS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Construct full semantic version.
|
|
||||||
set(CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION_MAJOR}.\
|
|
||||||
${CLANG_TIDY_VERSION_MINOR}.\
|
|
||||||
${CLANG_TIDY_VERSION_PATCH}")
|
|
||||||
unset(CLANG_TIDY_VERSION_RAW)
|
|
||||||
|
|
||||||
message(STATUS "Found clang-tidy ${CLANG_TIDY_EXECUTABLE} (${CLANG_TIDY_VERSION})")
|
|
||||||
else()
|
|
||||||
set(CLANG_TIDY_FOUND FALSE)
|
|
||||||
endif()
|
|
@@ -10,8 +10,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If EIGEN3_ROOT_DIR was defined in the environment, use it.
|
# If EIGEN3_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -41,7 +45,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eigen3 DEFAULT_MSG
|
|||||||
|
|
||||||
IF(EIGEN3_FOUND)
|
IF(EIGEN3_FOUND)
|
||||||
SET(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
|
SET(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(EIGEN3_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
EIGEN3_INCLUDE_DIR
|
EIGEN3_INCLUDE_DIR
|
||||||
|
@@ -7,12 +7,19 @@
|
|||||||
# EMBREE_ROOT_DIR, The base directory to search for Embree.
|
# EMBREE_ROOT_DIR, The base directory to search for Embree.
|
||||||
# This can also be an environment variable.
|
# This can also be an environment variable.
|
||||||
# EMBREEFOUND, If false, do not try to use Embree.
|
# EMBREEFOUND, If false, do not try to use Embree.
|
||||||
|
#
|
||||||
|
# also defined, but not for general use are
|
||||||
|
# EMBREE_LIBRARY, where to find the Embree library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2018 Blender Foundation.
|
# Copyright 2018 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If EMBREE_ROOT_DIR was defined in the environment, use it.
|
# If EMBREE_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -37,9 +44,9 @@ FIND_PATH(EMBREE_INCLUDE_DIR
|
|||||||
|
|
||||||
SET(_embree_FIND_COMPONENTS
|
SET(_embree_FIND_COMPONENTS
|
||||||
embree3
|
embree3
|
||||||
embree_sse42
|
|
||||||
embree_avx
|
embree_avx
|
||||||
embree_avx2
|
embree_avx2
|
||||||
|
embree_sse42
|
||||||
lexers
|
lexers
|
||||||
math
|
math
|
||||||
simd
|
simd
|
||||||
@@ -59,28 +66,29 @@ FOREACH(COMPONENT ${_embree_FIND_COMPONENTS})
|
|||||||
PATH_SUFFIXES
|
PATH_SUFFIXES
|
||||||
lib64 lib
|
lib64 lib
|
||||||
)
|
)
|
||||||
IF (NOT EMBREE_${UPPERCOMPONENT}_LIBRARY)
|
|
||||||
IF (EMBREE_EMBREE3_LIBRARY)
|
|
||||||
# If we can't find all the static libraries, try to fall back to the shared library if found.
|
|
||||||
# This allows building with a shared embree library
|
|
||||||
SET(_embree_LIBRARIES ${EMBREE_EMBREE3_LIBRARY})
|
|
||||||
BREAK()
|
|
||||||
ENDIF ()
|
|
||||||
ENDIF ()
|
|
||||||
LIST(APPEND _embree_LIBRARIES "${EMBREE_${UPPERCOMPONENT}_LIBRARY}")
|
LIST(APPEND _embree_LIBRARIES "${EMBREE_${UPPERCOMPONENT}_LIBRARY}")
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
|
|
||||||
|
|
||||||
|
FIND_LIBRARY(EMBREE_LIBRARY
|
||||||
|
NAMES
|
||||||
|
libembree3
|
||||||
|
HINTS
|
||||||
|
${_embree_SEARCH_DIRS}
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib64 lib
|
||||||
|
)
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set EMBREE_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set EMBREE_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Embree DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(EMBREE DEFAULT_MSG
|
||||||
_embree_LIBRARIES EMBREE_INCLUDE_DIR)
|
_embree_LIBRARIES EMBREE_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(EMBREE_FOUND)
|
IF(EMBREE_FOUND)
|
||||||
SET(EMBREE_LIBRARIES ${_embree_LIBRARIES})
|
SET(EMBREE_LIBRARIES ${_embree_LIBRARIES})
|
||||||
SET(EMBREE_INCLUDE_DIRS ${EMBREE_INCLUDE_DIR})
|
SET(EMBREE_INCLUDE_DIRS ${EMBREE_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(EMBREE_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
EMBREE_INCLUDE_DIR
|
EMBREE_INCLUDE_DIR
|
||||||
|
@@ -1,83 +0,0 @@
|
|||||||
# - Find FFmpeg library and includes.
|
|
||||||
# Set FFMPEG_FIND_COMPONENTS to the canonical names of the libraries
|
|
||||||
# before using the module.
|
|
||||||
# This module defines
|
|
||||||
# FFMPEG_INCLUDE_DIRS, where to find libavcodec/ac3_parser.h.
|
|
||||||
# FFMPEG_LIBRARIES, libraries to link against to use FFmpeg.
|
|
||||||
# FFMPEG_ROOT_DIR, The base directory to search for FFmpeg.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# FFMPEG_FOUND, If false, do not try to use FFmpeg.
|
|
||||||
# FFMPEG_<COMPONENT>_LIBRARY, the given individual component libraries.
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2020 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If FFMPEG_ROOT_DIR was defined in the environment, use it.
|
|
||||||
if(NOT FFMPEG_ROOT_DIR AND NOT $ENV{FFMPEG_ROOT_DIR} STREQUAL "")
|
|
||||||
set(FFMPEG_ROOT_DIR $ENV{FFMPEG_ROOT_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_ffmpeg_SEARCH_DIRS
|
|
||||||
${FFMPEG_ROOT_DIR}
|
|
||||||
/opt/lib/ffmpeg
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT FFMPEG_FIND_COMPONENTS)
|
|
||||||
set(FFMPEG_FIND_COMPONENTS
|
|
||||||
# List taken from http://ffmpeg.org/download.html#build-mac
|
|
||||||
avcodec
|
|
||||||
avdevice
|
|
||||||
avfilter
|
|
||||||
avformat
|
|
||||||
avutil
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_path(_ffmpeg_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
libavcodec/ac3_parser.h
|
|
||||||
HINTS
|
|
||||||
${_ffmpeg_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include
|
|
||||||
)
|
|
||||||
|
|
||||||
set(_ffmpeg_LIBRARIES)
|
|
||||||
foreach(_component ${FFMPEG_FIND_COMPONENTS})
|
|
||||||
string(TOUPPER ${_component} _upper_COMPONENT)
|
|
||||||
find_library(FFMPEG_${_upper_COMPONENT}_LIBRARY
|
|
||||||
NAMES
|
|
||||||
${_upper_COMPONENT}
|
|
||||||
HINTS
|
|
||||||
${LIBDIR}/ffmpeg
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
if(NOT FFMPEG_${_upper_COMPONENT}_LIBRARY)
|
|
||||||
message(WARNING "Could NOT find FFmpeg ${_upper_COMPONENT}.")
|
|
||||||
endif()
|
|
||||||
list(APPEND _ffmpeg_LIBRARIES ${FFMPEG_${_upper_COMPONENT}_LIBRARY})
|
|
||||||
mark_as_advanced(FFMPEG_${_upper_COMPONENT}_LIBRARY)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set FFMPEG_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(FFmpeg DEFAULT_MSG
|
|
||||||
_ffmpeg_LIBRARIES _ffmpeg_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(FFMPEG_FOUND)
|
|
||||||
set(FFMPEG_LIBRARIES ${_ffmpeg_LIBRARIES})
|
|
||||||
set(FFMPEG_INCLUDE_DIRS ${_ffmpeg_INCLUDE_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
FFMPEG_INCLUDE_DIR
|
|
||||||
)
|
|
||||||
|
|
||||||
unset(_ffmpeg_SEARCH_DIRS)
|
|
||||||
unset(_ffmpeg_LIBRARIES)
|
|
||||||
unset(_ffmpeg_INCLUDE_DIR)
|
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If FFTW3_ROOT_DIR was defined in the environment, use it.
|
# If FFTW3_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -54,7 +58,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Fftw3 DEFAULT_MSG
|
|||||||
IF(FFTW3_FOUND)
|
IF(FFTW3_FOUND)
|
||||||
SET(FFTW3_LIBRARIES ${FFTW3_LIBRARY})
|
SET(FFTW3_LIBRARIES ${FFTW3_LIBRARY})
|
||||||
SET(FFTW3_INCLUDE_DIRS ${FFTW3_INCLUDE_DIR})
|
SET(FFTW3_INCLUDE_DIRS ${FFTW3_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(FFTW3_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
FFTW3_INCLUDE_DIR
|
FFTW3_INCLUDE_DIR
|
||||||
|
@@ -13,8 +13,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 Blender Foundation.
|
# Copyright 2014 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If GLEW_ROOT_DIR was defined in the environment, use it.
|
# If GLEW_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -47,12 +51,12 @@ FIND_LIBRARY(GLEW_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set GLEW_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set GLEW_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLEW DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Glew DEFAULT_MSG
|
||||||
GLEW_LIBRARY GLEW_INCLUDE_DIR)
|
GLEW_LIBRARY GLEW_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(GLEW_FOUND)
|
IF(GLEW_FOUND)
|
||||||
SET(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
|
SET(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(GLEW_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
GLEW_INCLUDE_DIR
|
GLEW_INCLUDE_DIR
|
||||||
|
@@ -1,92 +0,0 @@
|
|||||||
# - Find GMP library
|
|
||||||
# Find the native GMP includes and library
|
|
||||||
# This module defines
|
|
||||||
# GMP_INCLUDE_DIRS, where to find gmp.h, Set when
|
|
||||||
# GMP_INCLUDE_DIR is found.
|
|
||||||
# GMP_LIBRARIES, libraries to link against to use GMP.
|
|
||||||
# GMP_ROOT_DIR, The base directory to search for GMP.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# GMP_FOUND, If false, do not try to use GMP.
|
|
||||||
#
|
|
||||||
# also defined, but not for general use are
|
|
||||||
# GMP_LIBRARY, where to find the GMP library.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2011 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If GMP_ROOT_DIR was defined in the environment, use it.
|
|
||||||
IF(NOT GMP_ROOT_DIR AND NOT $ENV{GMP_ROOT_DIR} STREQUAL "")
|
|
||||||
SET(GMP_ROOT_DIR $ENV{GMP_ROOT_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
SET(_gmp_SEARCH_DIRS
|
|
||||||
${GMP_ROOT_DIR}
|
|
||||||
/opt/lib/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_PATH(GMP_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
gmp.h
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_PATH(GMPXX_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
gmpxx.h
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(GMP_LIBRARY
|
|
||||||
NAMES
|
|
||||||
gmp
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(GMPXX_LIBRARY
|
|
||||||
NAMES
|
|
||||||
gmpxx
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
|
|
||||||
if(GMP_INCLUDE_DIR)
|
|
||||||
SET(_version_regex "^#define[ \t]+__GNU_MP_VERSION[ \t]+\"([^\"]+)\".*")
|
|
||||||
file(STRINGS "${GMP_INCLUDE_DIR}/gmp.h"
|
|
||||||
GMP_VERSION REGEX "${_version_regex}")
|
|
||||||
string(REGEX REPLACE "${_version_regex}" "\\1"
|
|
||||||
GMP_VERSION "${GMP_VERSION}")
|
|
||||||
unset(_version_regex)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set GMP_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE
|
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG
|
|
||||||
GMP_LIBRARY GMPXX_LIBRARY GMP_INCLUDE_DIR GMPXX_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(GMP_FOUND)
|
|
||||||
SET(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY})
|
|
||||||
SET(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR} ${GMPXX_INCLUDE_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
|
||||||
GMP_INCLUDE_DIR
|
|
||||||
GMP_LIBRARY
|
|
||||||
GMPXX_INCLUDE_DIR
|
|
||||||
GMPXX_LIBRARY
|
|
||||||
)
|
|
@@ -1,64 +0,0 @@
|
|||||||
# - Find HARU library
|
|
||||||
# Find the native Haru includes and library
|
|
||||||
# This module defines
|
|
||||||
# HARU_INCLUDE_DIRS, where to find hpdf.h, set when
|
|
||||||
# HARU_INCLUDE_DIR is found.
|
|
||||||
# HARU_LIBRARIES, libraries to link against to use Haru.
|
|
||||||
# HARU_ROOT_DIR, The base directory to search for Haru.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# HARU_FOUND, If false, do not try to use Haru.
|
|
||||||
#
|
|
||||||
# also defined, but not for general use are
|
|
||||||
# HARU_LIBRARY, where to find the Haru library.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2021 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If HARU_ROOT_DIR was defined in the environment, use it.
|
|
||||||
if(NOT HARU_ROOT_DIR AND NOT $ENV{HARU_ROOT_DIR} STREQUAL "")
|
|
||||||
set(HARU_ROOT_DIR $ENV{HARU_ROOT_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_haru_SEARCH_DIRS
|
|
||||||
${HARU_ROOT_DIR}
|
|
||||||
/opt/lib/haru
|
|
||||||
)
|
|
||||||
|
|
||||||
find_path(HARU_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
hpdf.h
|
|
||||||
HINTS
|
|
||||||
${_haru_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include/haru
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(HARU_LIBRARY
|
|
||||||
NAMES
|
|
||||||
hpdfs
|
|
||||||
HINTS
|
|
||||||
${_haru_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
|
|
||||||
# Handle the QUIETLY and REQUIRED arguments and set HARU_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE.
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(Haru DEFAULT_MSG HARU_LIBRARY HARU_INCLUDE_DIR)
|
|
||||||
|
|
||||||
if(HARU_FOUND)
|
|
||||||
set(HARU_LIBRARIES ${HARU_LIBRARY})
|
|
||||||
set(HARU_INCLUDE_DIRS ${HARU_INCLUDE_DIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
HARU_INCLUDE_DIR
|
|
||||||
HARU_LIBRARY
|
|
||||||
)
|
|
||||||
|
|
||||||
unset(_haru_SEARCH_DIRS)
|
|
@@ -12,8 +12,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2012 Blender Foundation.
|
# Copyright 2012 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If ICU_ROOT_DIR was defined in the environment, use it.
|
# If ICU_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -124,7 +128,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Icu DEFAULT_MSG
|
|||||||
IF(ICU_FOUND)
|
IF(ICU_FOUND)
|
||||||
SET(ICU_LIBRARIES ${ICU_LIBRARY_DATA} ${ICU_LIBRARY_I18N} ${ICU_LIBRARY_IO} ${ICU_LIBRARY_LE} ${ICU_LIBRARY_LX} ${ICU_LIBRARY_TU} ${ICU_LIBRARY_UC})
|
SET(ICU_LIBRARIES ${ICU_LIBRARY_DATA} ${ICU_LIBRARY_I18N} ${ICU_LIBRARY_IO} ${ICU_LIBRARY_LE} ${ICU_LIBRARY_LX} ${ICU_LIBRARY_TU} ${ICU_LIBRARY_UC})
|
||||||
SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
|
SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(ICU_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
ICU_INCLUDE_DIR
|
ICU_INCLUDE_DIR
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If JACK_ROOT_DIR was defined in the environment, use it.
|
# If JACK_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -54,7 +58,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jack DEFAULT_MSG
|
|||||||
IF(JACK_FOUND)
|
IF(JACK_FOUND)
|
||||||
SET(JACK_LIBRARIES ${JACK_LIBRARY})
|
SET(JACK_LIBRARIES ${JACK_LIBRARY})
|
||||||
SET(JACK_INCLUDE_DIRS ${JACK_INCLUDE_DIR})
|
SET(JACK_INCLUDE_DIRS ${JACK_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(JACK_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
JACK_INCLUDE_DIR
|
JACK_INCLUDE_DIR
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If JEMALLOC_ROOT_DIR was defined in the environment, use it.
|
# If JEMALLOC_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -64,7 +68,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(JeMalloc DEFAULT_MSG
|
|||||||
IF(JEMALLOC_FOUND)
|
IF(JEMALLOC_FOUND)
|
||||||
SET(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
|
SET(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
|
||||||
SET(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
|
SET(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(JEMALLOC_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
JEMALLOC_INCLUDE_DIR
|
JEMALLOC_INCLUDE_DIR
|
||||||
|
@@ -13,8 +13,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
if(LLVM_ROOT_DIR)
|
if(LLVM_ROOT_DIR)
|
||||||
@@ -34,10 +38,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(COMMAND ${LLVM_CONFIG} --includedir
|
|
||||||
OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
if(NOT DEFINED LLVM_VERSION)
|
if(NOT DEFINED LLVM_VERSION)
|
||||||
execute_process(COMMAND ${LLVM_CONFIG} --version
|
execute_process(COMMAND ${LLVM_CONFIG} --version
|
||||||
OUTPUT_VARIABLE LLVM_VERSION
|
OUTPUT_VARIABLE LLVM_VERSION
|
||||||
@@ -84,7 +84,7 @@ if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set LLVM_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set SDL2_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LLVM DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LLVM DEFAULT_MSG
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If LZO_ROOT_DIR was defined in the environment, use it.
|
# If LZO_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -52,7 +56,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZO DEFAULT_MSG
|
|||||||
IF(LZO_FOUND)
|
IF(LZO_FOUND)
|
||||||
SET(LZO_LIBRARIES ${LZO_LIBRARY})
|
SET(LZO_LIBRARIES ${LZO_LIBRARY})
|
||||||
SET(LZO_INCLUDE_DIRS ${LZO_INCLUDE_DIR})
|
SET(LZO_INCLUDE_DIRS ${LZO_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(LZO_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
LZO_INCLUDE_DIR
|
LZO_INCLUDE_DIR
|
||||||
|
@@ -1,49 +0,0 @@
|
|||||||
# - Find NanoVDB library
|
|
||||||
# Find the native NanoVDB includes and library
|
|
||||||
# This module defines
|
|
||||||
# NANOVDB_INCLUDE_DIRS, where to find nanovdb.h, Set when
|
|
||||||
# NANOVDB_INCLUDE_DIR is found.
|
|
||||||
# NANOVDB_ROOT_DIR, The base directory to search for NanoVDB.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# NANOVDB_FOUND, If false, do not try to use NanoVDB.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2020 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If NANOVDB_ROOT_DIR was defined in the environment, use it.
|
|
||||||
IF(NOT NANOVDB_ROOT_DIR AND NOT $ENV{NANOVDB_ROOT_DIR} STREQUAL "")
|
|
||||||
SET(NANOVDB_ROOT_DIR $ENV{NANOVDB_ROOT_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
SET(_nanovdb_SEARCH_DIRS
|
|
||||||
${NANOVDB_ROOT_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_PATH(NANOVDB_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
nanovdb/NanoVDB.h
|
|
||||||
HINTS
|
|
||||||
${_nanovdb_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include
|
|
||||||
)
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set NANOVDB_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE
|
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NanoVDB DEFAULT_MSG
|
|
||||||
NANOVDB_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(NANOVDB_FOUND)
|
|
||||||
SET(NANOVDB_INCLUDE_DIRS ${NANOVDB_INCLUDE_DIR})
|
|
||||||
ENDIF(NANOVDB_FOUND)
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
|
||||||
NANOVDB_INCLUDE_DIR
|
|
||||||
)
|
|
||||||
|
|
||||||
UNSET(_nanovdb_SEARCH_DIRS)
|
|
@@ -7,12 +7,19 @@
|
|||||||
# OPENCOLLADA_ROOT_DIR, The base directory to search for OpenCOLLADA.
|
# OPENCOLLADA_ROOT_DIR, The base directory to search for OpenCOLLADA.
|
||||||
# This can also be an environment variable.
|
# This can also be an environment variable.
|
||||||
# OPENCOLLADA_FOUND, If false, do not try to use OpenCOLLADA.
|
# OPENCOLLADA_FOUND, If false, do not try to use OpenCOLLADA.
|
||||||
|
#
|
||||||
|
# also defined, but not for general use are
|
||||||
|
# OPENCOLLADA_LIBRARY, where to find the OpenCOLLADA library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# note about include paths, there are 2 ways includes are set
|
# note about include paths, there are 2 ways includes are set
|
||||||
@@ -129,7 +136,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenCOLLADA DEFAULT_MSG
|
|||||||
IF(OPENCOLLADA_FOUND)
|
IF(OPENCOLLADA_FOUND)
|
||||||
SET(OPENCOLLADA_LIBRARIES ${_opencollada_LIBRARIES})
|
SET(OPENCOLLADA_LIBRARIES ${_opencollada_LIBRARIES})
|
||||||
SET(OPENCOLLADA_INCLUDE_DIRS ${_opencollada_INCLUDES})
|
SET(OPENCOLLADA_INCLUDE_DIRS ${_opencollada_INCLUDES})
|
||||||
ENDIF()
|
ENDIF(OPENCOLLADA_FOUND)
|
||||||
|
|
||||||
UNSET(COMPONENT)
|
UNSET(COMPONENT)
|
||||||
UNSET(UPPERCOMPONENT)
|
UNSET(UPPERCOMPONENT)
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2012 Blender Foundation.
|
# Copyright 2012 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
|
# If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -70,7 +74,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenColorIO DEFAULT_MSG
|
|||||||
IF(OPENCOLORIO_FOUND)
|
IF(OPENCOLORIO_FOUND)
|
||||||
SET(OPENCOLORIO_LIBRARIES ${_opencolorio_LIBRARIES})
|
SET(OPENCOLORIO_LIBRARIES ${_opencolorio_LIBRARIES})
|
||||||
SET(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO_INCLUDE_DIR})
|
SET(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO_INCLUDE_DIR})
|
||||||
ENDIF()
|
ENDIF(OPENCOLORIO_FOUND)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
OPENCOLORIO_INCLUDE_DIR
|
OPENCOLORIO_INCLUDE_DIR
|
||||||
|
@@ -21,8 +21,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -10,13 +10,6 @@
|
|||||||
# OPENGLES_LIBRARIES - all libraries needed for OpenGLES
|
# OPENGLES_LIBRARIES - all libraries needed for OpenGLES
|
||||||
# OPENGLES_INCLUDES - all includes needed for OpenGLES
|
# OPENGLES_INCLUDES - all includes needed for OpenGLES
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2014 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If OPENGLES_ROOT_DIR was defined in the environment, use it.
|
# If OPENGLES_ROOT_DIR was defined in the environment, use it.
|
||||||
IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "")
|
IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "")
|
||||||
SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR})
|
SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR})
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user