Merge branch 'master' into blender2.8
This commit is contained in:
@@ -1461,6 +1461,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|||||||
"/wd4267" # conversion from 'size_t' to 'type', possible loss of data
|
"/wd4267" # conversion from 'size_t' to 'type', possible loss of data
|
||||||
"/wd4305" # truncation from 'type1' to 'type2'
|
"/wd4305" # truncation from 'type1' to 'type2'
|
||||||
"/wd4800" # forcing value to bool 'true' or 'false'
|
"/wd4800" # forcing value to bool 'true' or 'false'
|
||||||
|
"/wd4828" # The file contains a character that is illegal
|
||||||
# errors:
|
# errors:
|
||||||
"/we4013" # 'function' undefined; assuming extern returning int
|
"/we4013" # 'function' undefined; assuming extern returning int
|
||||||
"/we4133" # incompatible pointer types
|
"/we4133" # incompatible pointer types
|
||||||
|
@@ -53,17 +53,20 @@ if(WIN32)
|
|||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_60/ ${HARVEST_TARGET}/boost/include/)
|
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_60/ ${HARVEST_TARGET}/boost/include/)
|
||||||
endif()
|
endif()
|
||||||
|
set(BOOST_PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/boost/src/external_boost < ${PATCH_DIR}/boost.diff)
|
||||||
|
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
||||||
set(BOOST_BUILD_COMMAND ./bjam)
|
set(BOOST_BUILD_COMMAND ./bjam)
|
||||||
set(BOOST_BUILD_OPTIONS toolset=clang cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS toolset=clang cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
|
||||||
set(BOOST_HARVEST_CMD echo .)
|
set(BOOST_HARVEST_CMD echo .)
|
||||||
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
else()
|
else()
|
||||||
set(BOOST_HARVEST_CMD echo .)
|
set(BOOST_HARVEST_CMD echo .)
|
||||||
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
||||||
set(BOOST_BUILD_COMMAND ./bjam)
|
set(BOOST_BUILD_COMMAND ./bjam)
|
||||||
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
||||||
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(BOOST_OPTIONS
|
set(BOOST_OPTIONS
|
||||||
@@ -96,6 +99,7 @@ ExternalProject_Add(external_boost
|
|||||||
URL_HASH MD5=${BOOST_MD5}
|
URL_HASH MD5=${BOOST_MD5}
|
||||||
PREFIX ${BUILD_DIR}/boost
|
PREFIX ${BUILD_DIR}/boost
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
|
PATCH_COMMAND ${BOOST_PATCH_COMMAND}
|
||||||
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} variant=${BOOST_BUILD_TYPE} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
|
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} variant=${BOOST_BUILD_TYPE} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
|
15
build_files/build_environment/patches/boost.diff
Normal file
15
build_files/build_environment/patches/boost.diff
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
--- a/boost/config/compiler/visualc.hpp 2015-12-08 11:55:19 -0700
|
||||||
|
+++ b/boost/config/compiler/visualc.hpp 2018-03-17 10:29:52 -0600
|
||||||
|
@@ -287,12 +287,3 @@
|
||||||
|
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-//
|
||||||
|
-// last known and checked version is 19.00.23026 (VC++ 2015 RTM):
|
||||||
|
-#if (_MSC_VER > 1900)
|
||||||
|
-# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
-# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
-# else
|
||||||
|
-# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||||
|
-# endif
|
||||||
|
-#endif
|
@@ -9,6 +9,7 @@ set(WITH_INSTALL_PORTABLE ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_SYSTEM_GLEW ON CACHE BOOL "" FORCE)
|
set(WITH_SYSTEM_GLEW ON CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
|
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_BOOST OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
|
set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_BULLET OFF CACHE BOOL "" FORCE)
|
set(WITH_BULLET OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_CODEC_AVI OFF CACHE BOOL "" FORCE)
|
set(WITH_CODEC_AVI OFF CACHE BOOL "" FORCE)
|
||||||
@@ -54,4 +55,3 @@ set(WITH_RAYOPTIMIZATION OFF CACHE BOOL "" FORCE)
|
|||||||
set(WITH_SDL OFF CACHE BOOL "" FORCE)
|
set(WITH_SDL OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_X11_XINPUT OFF CACHE BOOL "" FORCE)
|
set(WITH_X11_XINPUT OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_X11_XF86VMODE OFF CACHE BOOL "" FORCE)
|
set(WITH_X11_XF86VMODE OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
@@ -856,9 +856,8 @@ static void non_recursive_bvh_div_nodes_task_cb(
|
|||||||
else {
|
else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
parent->totnode = (char)(k + 1);
|
|
||||||
}
|
}
|
||||||
|
parent->totnode = (char)k;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -560,12 +560,10 @@ int join_mesh_exec(bContext *C, wmOperator *op)
|
|||||||
if (ma)
|
if (ma)
|
||||||
id_us_min(&ma->id);
|
id_us_min(&ma->id);
|
||||||
}
|
}
|
||||||
if (ob->mat) MEM_freeN(ob->mat);
|
MEM_SAFE_FREE(ob->mat);
|
||||||
if (ob->matbits) MEM_freeN(ob->matbits);
|
MEM_SAFE_FREE(ob->matbits);
|
||||||
if (me->mat) MEM_freeN(me->mat);
|
MEM_SAFE_FREE(me->mat);
|
||||||
ob->mat = me->mat = NULL;
|
|
||||||
ob->matbits = NULL;
|
|
||||||
|
|
||||||
if (totcol) {
|
if (totcol) {
|
||||||
me->mat = matar;
|
me->mat = matar;
|
||||||
ob->mat = MEM_callocN(sizeof(*ob->mat) * totcol, "join obmatar");
|
ob->mat = MEM_callocN(sizeof(*ob->mat) * totcol, "join obmatar");
|
||||||
|
@@ -723,11 +723,11 @@ static void rna_def_canvas_surface(BlenderRNA *brna)
|
|||||||
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_DPAINT_WAVE_OPEN_BORDERS);
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_DPAINT_WAVE_OPEN_BORDERS);
|
||||||
RNA_def_property_ui_text(prop, "Open Borders", "Pass waves through mesh edges");
|
RNA_def_property_ui_text(prop, "Open Borders", "Pass waves through mesh edges");
|
||||||
|
|
||||||
|
|
||||||
/* cache */
|
/* cache */
|
||||||
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
||||||
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
||||||
RNA_def_property_pointer_sdna(prop, NULL, "pointcache");
|
RNA_def_property_pointer_sdna(prop, NULL, "pointcache");
|
||||||
|
RNA_def_property_struct_type(prop, "PointCache");
|
||||||
RNA_def_property_ui_text(prop, "Point Cache", "");
|
RNA_def_property_ui_text(prop, "Point Cache", "");
|
||||||
|
|
||||||
/* is cache used */
|
/* is cache used */
|
||||||
|
@@ -772,31 +772,8 @@ static const EnumPropertyItem *rna_Effector_shape_itemf(bContext *UNUSED(C), Poi
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* ptcache.point_caches */
|
static void rna_def_pointcache_common(StructRNA *srna)
|
||||||
static void rna_def_ptcache_point_caches(BlenderRNA *brna, PropertyRNA *cprop)
|
|
||||||
{
|
{
|
||||||
StructRNA *srna;
|
|
||||||
PropertyRNA *prop;
|
|
||||||
|
|
||||||
/* FunctionRNA *func; */
|
|
||||||
/* PropertyRNA *parm; */
|
|
||||||
|
|
||||||
RNA_def_property_srna(cprop, "PointCaches");
|
|
||||||
srna = RNA_def_struct(brna, "PointCaches", NULL);
|
|
||||||
RNA_def_struct_sdna(srna, "PointCache");
|
|
||||||
RNA_def_struct_ui_text(srna, "Point Caches", "Collection of point caches");
|
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "active_index", PROP_INT, PROP_UNSIGNED);
|
|
||||||
RNA_def_property_int_funcs(prop, "rna_Cache_active_point_cache_index_get",
|
|
||||||
"rna_Cache_active_point_cache_index_set",
|
|
||||||
"rna_Cache_active_point_cache_index_range");
|
|
||||||
RNA_def_property_ui_text(prop, "Active Point Cache Index", "");
|
|
||||||
RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_change");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void rna_def_pointcache(BlenderRNA *brna)
|
|
||||||
{
|
|
||||||
StructRNA *srna;
|
|
||||||
PropertyRNA *prop;
|
PropertyRNA *prop;
|
||||||
|
|
||||||
static const EnumPropertyItem point_cache_compress_items[] = {
|
static const EnumPropertyItem point_cache_compress_items[] = {
|
||||||
@@ -806,16 +783,12 @@ static void rna_def_pointcache(BlenderRNA *brna)
|
|||||||
{0, NULL, 0, NULL, NULL}
|
{0, NULL, 0, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
srna = RNA_def_struct(brna, "PointCache", NULL);
|
|
||||||
RNA_def_struct_ui_text(srna, "Point Cache", "Point cache for physics simulations");
|
|
||||||
RNA_def_struct_ui_icon(srna, ICON_PHYSICS);
|
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_TIME);
|
prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_TIME);
|
||||||
RNA_def_property_int_sdna(prop, NULL, "startframe");
|
RNA_def_property_int_sdna(prop, NULL, "startframe");
|
||||||
RNA_def_property_range(prop, -MAXFRAME, MAXFRAME);
|
RNA_def_property_range(prop, -MAXFRAME, MAXFRAME);
|
||||||
RNA_def_property_ui_range(prop, 1, MAXFRAME, 1, 1);
|
RNA_def_property_ui_range(prop, 1, MAXFRAME, 1, 1);
|
||||||
RNA_def_property_ui_text(prop, "Start", "Frame on which the simulation starts");
|
RNA_def_property_ui_text(prop, "Start", "Frame on which the simulation starts");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "frame_end", PROP_INT, PROP_TIME);
|
prop = RNA_def_property(srna, "frame_end", PROP_INT, PROP_TIME);
|
||||||
RNA_def_property_int_sdna(prop, NULL, "endframe");
|
RNA_def_property_int_sdna(prop, NULL, "endframe");
|
||||||
RNA_def_property_range(prop, 1, MAXFRAME);
|
RNA_def_property_range(prop, 1, MAXFRAME);
|
||||||
@@ -896,13 +869,59 @@ static void rna_def_pointcache(BlenderRNA *brna)
|
|||||||
"Use this file's path for the disk cache when library linked into another file "
|
"Use this file's path for the disk cache when library linked into another file "
|
||||||
"(for local bakes per scene file, disable this option)");
|
"(for local bakes per scene file, disable this option)");
|
||||||
RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_idname_change");
|
RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_idname_change");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rna_def_ptcache_point_caches(BlenderRNA *brna, PropertyRNA *cprop)
|
||||||
|
{
|
||||||
|
StructRNA *srna;
|
||||||
|
PropertyRNA *prop;
|
||||||
|
|
||||||
|
/* FunctionRNA *func; */
|
||||||
|
/* PropertyRNA *parm; */
|
||||||
|
|
||||||
|
RNA_def_property_srna(cprop, "PointCaches");
|
||||||
|
srna = RNA_def_struct(brna, "PointCaches", NULL);
|
||||||
|
RNA_def_struct_sdna(srna, "PointCache");
|
||||||
|
RNA_def_struct_ui_text(srna, "Point Caches", "Collection of point caches");
|
||||||
|
|
||||||
|
prop = RNA_def_property(srna, "active_index", PROP_INT, PROP_UNSIGNED);
|
||||||
|
RNA_def_property_int_funcs(prop, "rna_Cache_active_point_cache_index_get",
|
||||||
|
"rna_Cache_active_point_cache_index_set",
|
||||||
|
"rna_Cache_active_point_cache_index_range");
|
||||||
|
RNA_def_property_ui_text(prop, "Active Point Cache Index", "");
|
||||||
|
RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_change");
|
||||||
|
|
||||||
|
/* And define another RNA type for those collection items. */
|
||||||
|
srna = RNA_def_struct(brna, "PointCacheItem", NULL);
|
||||||
|
RNA_def_struct_sdna(srna, "PointCache");
|
||||||
|
RNA_def_struct_ui_text(srna, "Point Cache", "point cache for physics simulations");
|
||||||
|
RNA_def_struct_ui_icon(srna, ICON_PHYSICS);
|
||||||
|
|
||||||
|
rna_def_pointcache_common(srna);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rna_def_pointcache_active(BlenderRNA *brna)
|
||||||
|
{
|
||||||
|
StructRNA *srna;
|
||||||
|
PropertyRNA *prop;
|
||||||
|
|
||||||
|
srna = RNA_def_struct(brna, "PointCache", NULL);
|
||||||
|
RNA_def_struct_ui_text(srna, "Active Point Cache", "Active point cache for physics simulations");
|
||||||
|
RNA_def_struct_ui_icon(srna, ICON_PHYSICS);
|
||||||
|
|
||||||
|
rna_def_pointcache_common(srna);
|
||||||
|
|
||||||
|
/* This first-level RNA pointer also has list of all caches from owning ID.
|
||||||
|
* Those caches items have exact same content as 'active' one, except for that collection,
|
||||||
|
* to prevent ugly recursive layout pattern.
|
||||||
|
* Note: This shall probably be redone from scratch in a proper way at some poitn, but for now that will do,
|
||||||
|
* and shall not break anything in the API. */
|
||||||
prop = RNA_def_property(srna, "point_caches", PROP_COLLECTION, PROP_NONE);
|
prop = RNA_def_property(srna, "point_caches", PROP_COLLECTION, PROP_NONE);
|
||||||
RNA_def_property_collection_funcs(prop, "rna_Cache_list_begin", "rna_iterator_listbase_next",
|
RNA_def_property_collection_funcs(prop, "rna_Cache_list_begin", "rna_iterator_listbase_next",
|
||||||
"rna_iterator_listbase_end", "rna_iterator_listbase_get",
|
"rna_iterator_listbase_end", "rna_iterator_listbase_get",
|
||||||
NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, NULL);
|
||||||
RNA_def_property_struct_type(prop, "PointCache");
|
RNA_def_property_struct_type(prop, "PointCacheItem");
|
||||||
RNA_def_property_ui_text(prop, "Point Cache List", "Point cache list");
|
RNA_def_property_ui_text(prop, "Point Cache List", "");
|
||||||
rna_def_ptcache_point_caches(brna, prop);
|
rna_def_ptcache_point_caches(brna, prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1882,7 +1901,7 @@ static void rna_def_softbody(BlenderRNA *brna)
|
|||||||
|
|
||||||
void RNA_def_object_force(BlenderRNA *brna)
|
void RNA_def_object_force(BlenderRNA *brna)
|
||||||
{
|
{
|
||||||
rna_def_pointcache(brna);
|
rna_def_pointcache_active(brna);
|
||||||
rna_def_collision(brna);
|
rna_def_collision(brna);
|
||||||
rna_def_effector_weight(brna);
|
rna_def_effector_weight(brna);
|
||||||
rna_def_field(brna);
|
rna_def_field(brna);
|
||||||
|
@@ -802,6 +802,7 @@ static void rna_def_rigidbody_world(BlenderRNA *brna)
|
|||||||
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
||||||
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
||||||
RNA_def_property_pointer_sdna(prop, NULL, "pointcache");
|
RNA_def_property_pointer_sdna(prop, NULL, "pointcache");
|
||||||
|
RNA_def_property_struct_type(prop, "PointCache");
|
||||||
RNA_def_property_ui_text(prop, "Point Cache", "");
|
RNA_def_property_ui_text(prop, "Point Cache", "");
|
||||||
|
|
||||||
/* effector weights */
|
/* effector weights */
|
||||||
|
@@ -624,6 +624,7 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
|
|||||||
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
||||||
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
||||||
RNA_def_property_pointer_sdna(prop, NULL, "point_cache[0]");
|
RNA_def_property_pointer_sdna(prop, NULL, "point_cache[0]");
|
||||||
|
RNA_def_property_struct_type(prop, "PointCache");
|
||||||
RNA_def_property_ui_text(prop, "Point Cache", "");
|
RNA_def_property_ui_text(prop, "Point Cache", "");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "point_cache_compress_type", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "point_cache_compress_type", PROP_ENUM, PROP_NONE);
|
||||||
|
@@ -1710,10 +1710,18 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args)
|
|||||||
|
|
||||||
/* TODO, different sized matrix */
|
/* TODO, different sized matrix */
|
||||||
if (self->num_col == 4 && self->num_row == 4) {
|
if (self->num_col == 4 && self->num_row == 4) {
|
||||||
|
#ifdef MATH_STANDALONE
|
||||||
|
blend_m4_m4m4((float (*)[4])mat, (float (*)[4])self->matrix, (float (*)[4])mat2->matrix, fac);
|
||||||
|
#else
|
||||||
interp_m4_m4m4((float (*)[4])mat, (float (*)[4])self->matrix, (float (*)[4])mat2->matrix, fac);
|
interp_m4_m4m4((float (*)[4])mat, (float (*)[4])self->matrix, (float (*)[4])mat2->matrix, fac);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (self->num_col == 3 && self->num_row == 3) {
|
else if (self->num_col == 3 && self->num_row == 3) {
|
||||||
|
#ifdef MATH_STANDALONE
|
||||||
|
blend_m3_m3m3((float (*)[3])mat, (float (*)[3])self->matrix, (float (*)[3])mat2->matrix, fac);
|
||||||
|
#else
|
||||||
interp_m3_m3m3((float (*)[3])mat, (float (*)[3])self->matrix, (float (*)[3])mat2->matrix, fac);
|
interp_m3_m3m3((float (*)[3])mat, (float (*)[3])self->matrix, (float (*)[3])mat2->matrix, fac);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
PyErr_SetString(PyExc_ValueError,
|
PyErr_SetString(PyExc_ValueError,
|
||||||
|
Reference in New Issue
Block a user