Merge branch 'master' into blender2.8
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Mon, 7 Aug 2017 15:48:14 +0000 (17:48 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Mon, 7 Aug 2017 15:48:14 +0000 (17:48 +0200)
1  2 
GNUmakefile
build_files/build_environment/install_deps.sh
intern/cycles/kernel/kernel_path_state.h

diff --combined GNUmakefile
index dbba6ffab8e9cf21556921e8a291bda55188606e,9661f2926992ec60ef20cb0bb04c5996686e97a4..52930595e5b2140ba94eddb201447f5ea0f0d1c7
@@@ -43,6 -43,11 +43,11 @@@ ifndef BUILD_DI
        BUILD_DIR:=$(shell dirname "$(BLENDER_DIR)")/build_$(OS_NCASE)
  endif
  
+ # Dependencies DIR's
+ DEPS_SOURCE_DIR:=$(BLENDER_DIR)/build_files/build_environment
+ DEPS_BUILD_DIR:=$(BUILD_DIR)/deps
+ DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
  # Allow to use alternative binary (pypy3, etc)
  ifndef PYTHON
        PYTHON:=python3
@@@ -146,6 -151,27 +151,27 @@@ cycles: al
  headless: all
  bpy: all
  
+ # -----------------------------------------------------------------------------
+ # Build dependencies
+ DEPS_TARGET = install
+ ifneq "$(findstring clean, $(MAKECMDGOALS))" ""
+       DEPS_TARGET = clean
+ endif
+ deps: .FORCE
+       @echo
+       @echo Configuring dependencies in \"$(DEPS_BUILD_DIR)\"
+       @cmake -H"$(DEPS_SOURCE_DIR)" \
+              -B"$(DEPS_BUILD_DIR)" \
+                  -DHARVEST_TARGET=$(DEPS_INSTALL_DIR)
+       @echo
+       @echo Building dependencies ...
+       $(MAKE) -C "$(DEPS_BUILD_DIR)" -s -j $(NPROCS) $(DEPS_TARGET)
+       @echo
+       @echo Dependencies successfully built and installed to $(DEPS_INSTALL_DIR).
+       @echo
  
  # -----------------------------------------------------------------------------
  # Configuration (save some cd'ing around)
@@@ -164,6 -190,7 +190,7 @@@ help: .FORC
        @echo "  * headless  - build without an interface (renderfarm or server automation)"
        @echo "  * cycles    - build Cycles standalone only, without Blender"
        @echo "  * bpy       - build as a python module which can be loaded from python directly"
+       @echo "  * deps      - build library dependencies (intended only for platform maintainers)"
        @echo ""
        @echo "  * config    - run cmake configuration tool to set build options"
        @echo ""
@@@ -402,7 -429,7 +429,7 @@@ update: .FORC
                svn update ../lib/* ; \
        fi
        git pull --rebase
 -      git submodule foreach git pull --rebase origin master
 +      git submodule update --remote
  
  
  # -----------------------------------------------------------------------------
index ad9ef3f8594ceb9d3f2ee173276698b429dd0936,b2aa6978a475546d72a48811eca8333851b5b749..1c1e9ea151d42ec867984ab163a54ad4cefb1ed6
@@@ -25,7 -25,7 +25,7 @@@
  ARGS=$( \
  getopt \
  -o s:i:t:h \
 ---long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,use-cxx11,\
 +--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
  with-all,with-opencollada,with-jack,\
  ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,\
  force-all,force-python,force-numpy,force-boost,\
@@@ -104,6 -104,11 +104,6 @@@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENT
      --no-confirm
          Disable any interaction with user (suitable for automated run).
  
 -    --use-cxx11
 -        Build all libraries in cpp11 'mode' (will be mandatory soon in blender2.8 branch).
 -        NOTE: If your compiler is gcc-6.0 or above, you probably *want* to enable this option (since it's default
 -              standard starting from this version).
 -
      --with-all
          By default, a number of optional and not-so-often needed libraries are not installed.
          This option will try to install them, at the cost of potential conflicts (depending on
@@@ -285,7 -290,7 +285,7 @@@ SUDO="sudo
  
  NO_BUILD=false
  NO_CONFIRM=false
 -USE_CXX11=false
 +USE_CXX11=true  # Mandatory in blender2.8
  
  PYTHON_VERSION="3.5.3"
  PYTHON_VERSION_MIN="3.5"
@@@ -496,6 -501,9 +496,6 @@@ while true; d
      --no-confirm)
        NO_CONFIRM=true; shift; continue
      ;;
 -    --use-cxx11)
 -      USE_CXX11=true; shift; continue
 -    ;;
      --with-all)
        WITH_ALL=true; shift; continue
      ;;
@@@ -796,7 -804,7 +796,7 @@@ FFMPEG_SOURCE=( "http://ffmpeg.org/rele
  
  CXXFLAGS_BACK=$CXXFLAGS
  if [ "$USE_CXX11" = true ]; then
 -  WARNING "You are trying to use c++11, this *should* go smoothely with any very recent distribution
 +  WARNING "C++11 is now mandatory for blender2.8, this *should* go smoothly with any very recent distribution.
  However, if you are experiencing linking errors (also when building Blender itself), please try the following:
      * Re-run this script with '--build-all --force-all' options.
      * Ensure your gcc version is at the very least 4.8, if possible you should really rather use gcc-5.1 or above.
@@@ -1766,7 -1774,7 +1766,7 @@@ compile_LLVM() 
        cd $_src
  
        # XXX Ugly patching hack!
-       patch -p1 -i "$SCRIPT_DIR/install_deps_patches/llvm.patch"
+       patch -p1 -i "$SCRIPT_DIR/patches/install_deps_llvm.patch"
  
        cd $CWD
  
@@@ -1872,7 -1880,7 +1872,7 @@@ compile_OSL() 
        git reset --hard
  
        # XXX Ugly patching hack!
-       patch -p1 -i "$SCRIPT_DIR/install_deps_patches/osl.patch"
+       patch -p1 -i "$SCRIPT_DIR/patches/install_deps_osl.patch"
      fi
  
      # Always refresh the whole build!
index 3ce183bf67a34be4fd0609c8316712be28ca66fa,6fb0b32832e3484de5ef93c580f7edd59564af43..0102de183f335eeb325c6b7d8a62f7b72c5cdf0c
@@@ -64,10 -64,6 +64,6 @@@ ccl_device_inline void path_state_init(
                state->volume_stack[0].shader = SHADER_NONE;
        }
  #endif
- #ifdef __SHADOW_TRICKS__
-       state->catcher_object = OBJECT_NONE;
- #endif
  }
  
  ccl_device_inline void path_state_next(KernelGlobals *kg, ccl_addr_space PathState *state, int label)
@@@ -173,7 -169,7 +169,7 @@@ ccl_device_inline float path_state_term
                }
  #ifdef __SHADOW_TRICKS__
                /* Exception for shadow catcher not working correctly with RR. */
 -              else if ((state->flag & PATH_RAY_SHADOW_CATCHER) && (state->transparent_bounce <= 8)) {
 +              else if((state->flag & PATH_RAY_SHADOW_CATCHER) && (state->transparent_bounce <= 8)) {
                        return 1.0f;
                }
  #endif
                }
  #ifdef __SHADOW_TRICKS__
                /* Exception for shadow catcher not working correctly with RR. */
 -              else if ((state->flag & PATH_RAY_SHADOW_CATCHER) && (state->bounce <= 3)) {
 +              else if((state->flag & PATH_RAY_SHADOW_CATCHER) && (state->bounce <= 3)) {
                        return 1.0f;
                }
  #endif