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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-06-28 14:36:19 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-08-05 16:25:36 +0300
commit2d60a546490c982b8ace7e8a1a71927596b08258 (patch)
treeb53515d83dff0c50cf7837930b36d98670bc82ac
parent47bf754de4ec60def018284023b5baf9b90ca696 (diff)
Build: add config for developers
This has faster builds, error checks and tests. The number of cmake options for this type of thing has grown over the years and it's convenient to be able to point new developers to a single target. Previously the combination of all these options did not work correctly, now all tests should pass. The easiest way to use this is with the make wrapper, for example: make full developer debug Or set it manually with CMake: cmake -C ../blender/build_files/cmake/config/blender_developer.cmake . Differential Revision: https://developer.blender.org/D5149
-rw-r--r--GNUmakefile6
-rw-r--r--build_files/cmake/config/blender_developer.cmake19
-rw-r--r--build_files/windows/parse_arguments.cmd2
-rw-r--r--build_files/windows/show_help.cmd1
4 files changed, 28 insertions, 0 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 69a2689cea1..fac7484859f 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -37,6 +37,7 @@ Convenience Targets
* bpy: Build as a python module which can be loaded from python directly.
* deps: Build library dependencies (intended only for platform maintainers).
+ * developer: Enable faster builds, error checking and tests, recommended for developers.
* config: Run cmake configuration tool to set build options.
Note: passing the argument 'BUILD_DIR=path' when calling make will override the default build dir.
@@ -221,6 +222,10 @@ ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C"$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake"
endif
+ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
+ BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake"
+endif
+
# -----------------------------------------------------------------------------
# Blender binary path
@@ -294,6 +299,7 @@ lite: all
cycles: all
headless: all
bpy: all
+developer: all
# -----------------------------------------------------------------------------
# Build dependencies
diff --git a/build_files/cmake/config/blender_developer.cmake b/build_files/cmake/config/blender_developer.cmake
new file mode 100644
index 00000000000..5209ce4ed25
--- /dev/null
+++ b/build_files/cmake/config/blender_developer.cmake
@@ -0,0 +1,19 @@
+# Configuration for developers, with faster builds, error checking and tests.
+#
+# Example usage:
+# cmake -C../blender/build_files/cmake/config/blender_developer.cmake ../blender
+#
+
+set(WITH_ASSERT_ABORT ON CACHE BOOL "" FORCE)
+set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
+set(WITH_COMPILER_ASAN ON CACHE BOOL "" FORCE)
+set(WITH_CYCLES_DEBUG ON CACHE BOOL "" FORCE)
+set(WITH_CYCLES_NATIVE_ONLY ON CACHE BOOL "" FORCE)
+set(WITH_GTESTS ON CACHE BOOL "" FORCE)
+set(WITH_LIBMV_SCHUR_SPECIALIZATIONS OFF CACHE BOOL "" FORCE)
+set(WITH_PYTHON_SAFETY ON CACHE BOOL "" FORCE)
+set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
+
+# This may have issues with C++ initialization order, needs to be tested
+# on all platforms to be sure this is safe to enable.
+# set(WITH_CXX_GUARDEDALLOC ON CACHE BOOL "" FORCE)
diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd
index 8c8b473dbcf..c43107163b8 100644
--- a/build_files/windows/parse_arguments.cmd
+++ b/build_files/windows/parse_arguments.cmd
@@ -41,6 +41,8 @@ if NOT "%1" == "" (
) else if "%1" == "release" (
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\blender_release.cmake"
set TARGET=Release
+ ) else if "%1" == "developer" (
+ set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\blender_developer.cmake"
) else if "%1" == "asan" (
set WITH_ASAN=1
) else if "%1" == "x86" (
diff --git a/build_files/windows/show_help.cmd b/build_files/windows/show_help.cmd
index 08a6c40731c..7c0d33e1e1f 100644
--- a/build_files/windows/show_help.cmd
+++ b/build_files/windows/show_help.cmd
@@ -17,6 +17,7 @@ echo - format [path] ^(Format the source using clang-format, path is optional, r
echo.
echo Configuration options
echo - verbose ^(enable diagnostic output during configuration^)
+echo - developer ^(enable faster builds, error checking and tests, recommended for developers^)
echo - with_tests ^(enable building unit tests^)
echo - nobuildinfo ^(disable buildinfo^)
echo - debug ^(Build an unoptimized debuggable build^)