diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2018-06-05 23:23:35 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2018-06-05 23:23:35 +0300 |
commit | 1aae5ac1a8ef63d954f85ad2425c07e648de722a (patch) | |
tree | 8d6f585a5e5a669893f9cf8938713fe0b4a0eea4 /build_files | |
parent | e44b3bf7b8480a51ad7a80e9e30e8396cd992f6f (diff) | |
parent | b28c35daef4a39d6bfa53af702bd66006ee9c7f1 (diff) |
Merge branch 'hair_guides' into hair_guides_grooming
Diffstat (limited to 'build_files')
29 files changed, 754 insertions, 17 deletions
diff --git a/build_files/build_environment/cmake/openal.cmake b/build_files/build_environment/cmake/openal.cmake index 3331361bfbc..2af530069a5 100644 --- a/build_files/build_environment/cmake/openal.cmake +++ b/build_files/build_environment/cmake/openal.cmake @@ -39,5 +39,6 @@ if(BUILD_MODE STREQUAL Release) PREFIX ${BUILD_DIR}/openal CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal ${DEFAULT_CMAKE_FLAGS} ${OPENAL_EXTRA_ARGS} INSTALL_DIR ${LIBDIR}/openal + PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openal/src/external_openal < ${PATCH_DIR}/openal.diff ) endif() diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake index 2dcf653db43..2a89bd726c1 100644 --- a/build_files/build_environment/cmake/options.cmake +++ b/build_files/build_environment/cmake/options.cmake @@ -56,24 +56,27 @@ if(WIN32) # For OIIO and OSL set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS) - # TODO FIXME highly MSVC specific + 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. + endif() + if(WITH_OPTIMIZED_DEBUG) - set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") else() - set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") endif() - set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") - set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") - set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") if(WITH_OPTIMIZED_DEBUG) - set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") else() - set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") endif() - set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") - set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") - set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") + set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(PLATFORM_FLAGS) set(PLATFORM_CXX_FLAGS) diff --git a/build_files/build_environment/patches/boost.diff b/build_files/build_environment/patches/boost.diff index ea3ec035518..41b40d7a915 100644 --- a/build_files/build_environment/patches/boost.diff +++ b/build_files/build_environment/patches/boost.diff @@ -13,3 +13,25 @@ -# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif +--- a/boost/type_traits/has_nothrow_assign.hpp 2015-12-13 05:49:42 -0700 ++++ b/boost/type_traits/has_nothrow_assign.hpp 2018-05-27 11:11:02 -0600 +@@ -24,7 +24,7 @@ + #include <boost/type_traits/remove_reference.hpp> + #endif + #endif +-#if defined(__GNUC__) || defined(__SUNPRO_CC) ++#if defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__clang__) + #include <boost/type_traits/is_const.hpp> + #include <boost/type_traits/is_volatile.hpp> + #include <boost/type_traits/is_assignable.hpp> +--- a/boost/type_traits/has_nothrow_constructor.hpp 2015-12-13 05:49:42 -0700 ++++ b/boost/type_traits/has_nothrow_constructor.hpp 2018-05-27 11:11:02 -0600 +@@ -17,7 +17,7 @@ + #if defined(BOOST_MSVC) || defined(BOOST_INTEL) + #include <boost/type_traits/has_trivial_constructor.hpp> + #endif +-#if defined(__GNUC__ ) || defined(__SUNPRO_CC) ++#if defined(__GNUC__ ) || defined(__SUNPRO_CC) || defined(__clang__) + #include <boost/type_traits/is_default_constructible.hpp> + #endif + diff --git a/build_files/build_environment/patches/openal.diff b/build_files/build_environment/patches/openal.diff new file mode 100644 index 00000000000..2c9862b95a0 --- /dev/null +++ b/build_files/build_environment/patches/openal.diff @@ -0,0 +1,13 @@ +diff -Naur external_openal_original/CMakeLists.txt external_openal/CMakeLists.txt +--- external_openal_original/CMakeLists.txt 2016-01-24 20:12:39 -0700 ++++ external_openal/CMakeLists.txt 2018-06-02 12:16:52 -0600 +@@ -885,7 +885,8 @@ + OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi backend" OFF) + IF(HAVE_WINDOWS_H) + # Check MMSystem backend +- CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0502) ++ set(CMAKE_REQUIRED_FLAGS "-D_WIN32_WINNT=0x0502") ++ CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H) + IF(HAVE_MMSYSTEM_H) + CHECK_SHARED_FUNCTION_EXISTS(waveOutOpen "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM) + IF(HAVE_LIBWINMM) diff --git a/build_files/build_environment/patches/osl.diff b/build_files/build_environment/patches/osl.diff index fcb5ec4165f..ccf34d99699 100644 --- a/build_files/build_environment/patches/osl.diff +++ b/build_files/build_environment/patches/osl.diff @@ -10,3 +10,29 @@ diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_o MAIN_DEPENDENCY ${flexsrc} DEPENDS ${${compiler_headers}} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) +--- osl/src/external_osl/src/include/OSL/oslconfig.h 2016-10-31 16:48:19 -0600 ++++ osl/src/external_osl/src/include/OSL/oslconfig.h 2018-05-27 11:18:08 -0600 +@@ -44,12 +44,18 @@ + // same if another packages is compiling against OSL and using these headers + // (OSL may be C++11 but the client package may be older, or vice versa -- + // use these two symbols to differentiate these cases, when important). +-#if (__cplusplus >= 201402L) +-# define OSL_CPLUSPLUS_VERSION 14 +-#elif (__cplusplus >= 201103L) +-# define OSL_CPLUSPLUS_VERSION 11 ++ ++// Force C++03 for MSVC in blender since svn the libraries are build with that ++#if !defined(_MSC_VER) ++ #if (__cplusplus >= 201402L) ++ # define OSL_CPLUSPLUS_VERSION 14 ++ #elif (__cplusplus >= 201103L) ++ # define OSL_CPLUSPLUS_VERSION 11 ++ #else ++ # define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */ ++ #endif + #else +-# define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */ ++ # define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */ + #endif + + // Symbol export defines diff --git a/build_files/build_environment/windows/build_deps.cmd b/build_files/build_environment/windows/build_deps.cmd index 96280014df2..500e689cdc8 100644 --- a/build_files/build_environment/windows/build_deps.cmd +++ b/build_files/build_environment/windows/build_deps.cmd @@ -14,10 +14,18 @@ if NOT "%1" == "" ( set BuildDir=VS14 goto par2 ) + if "%1" == "2017" ( + echo "Building for VS2017" + set VSVER=15.0 + set VSVER_SHORT=15 + set BuildDir=VS15 + goto par2 + ) + ) :usage -Echo Usage build_deps 2013/2015 x64/x86 +Echo Usage build_deps 2013/2015/2017 x64/x86 goto exit :par2 if NOT "%2" == "" ( @@ -31,6 +39,10 @@ if NOT "%2" == "" ( if "%1" == "2015" ( set CMAKE_BUILDER=Visual Studio 14 2015 ) + if "%1" == "2017" ( + set CMAKE_BUILDER=Visual Studio 15 2017 + ) + goto start ) if "%2" == "x64" ( @@ -43,6 +55,10 @@ if NOT "%2" == "" ( if "%1" == "2015" ( set CMAKE_BUILDER=Visual Studio 14 2015 Win64 ) + if "%1" == "2017" ( + set CMAKE_BUILDER=Visual Studio 15 2017 Win64 + ) + goto start ) ) diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake index ba1334d750e..dd80013cb91 100644 --- a/build_files/cmake/Modules/GTestTesting.cmake +++ b/build_files/cmake/Modules/GTestTesting.cmake @@ -32,6 +32,7 @@ macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST) ${EXTRA_LIBS} ${PLATFORM_LINKLIBS} bf_testing_main + bf_intern_eigen bf_intern_guardedalloc extern_gtest extern_gmock diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 72b1af050ec..65cf848136e 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -352,6 +352,11 @@ function(SETUP_LIBDIRS) endif() endfunction() +macro(setup_platform_linker_flags) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") +endmacro() + function(setup_liblinks target ) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 7e978a71ad4..f55178b89e2 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -29,7 +29,15 @@ if(NOT MSVC) message(FATAL_ERROR "Compiler is unsupported") endif() -# Libraries configuration for Windows when compiling with MSVC. +if(CMAKE_C_COMPILER_ID MATCHES "Clang") + set(MSVC_CLANG On) + set(MSVC_REDIST_DIR $ENV{VCToolsRedistDir}) + if (DEFINED MSVC_REDIST_DIR) + file(TO_CMAKE_PATH ${MSVC_REDIST_DIR} MSVC_REDIST_DIR) + else() + message("Unable to detect the Visual Studio redist directory, copying of the runtime dlls will not work, try running from the visual studio developer prompt.") + endif() +endif() set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_FOLDERS}) @@ -119,8 +127,18 @@ set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP}) set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .) include(InstallRequiredSystemLibraries) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP") +remove_cc_flag("/MDd" "/MD") + +if(MSVC_CLANG) # Clangs version of cl doesn't support all flags + if(NOT WITH_CXX11) # C++11 is on by default in clang-cl and can't be turned off, if c++11 is not enabled in blender repress some c++11 related warnings. + set(CXX_WARN_FLAGS "-Wno-inconsistent-missing-override") + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference") +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP") +endif() set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") @@ -131,7 +149,7 @@ set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MT") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MT") -set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO ") +set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO ") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib ") # Ignore meaningless for us linker warnings. @@ -144,7 +162,7 @@ else() set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") endif() -set(PLATFORM_LINKFLAGS_DEBUG "/IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") +set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") if(NOT DEFINED LIBDIR) diff --git a/build_files/windows/autodetect_msvc.cmd b/build_files/windows/autodetect_msvc.cmd new file mode 100644 index 00000000000..6fce3829e7b --- /dev/null +++ b/build_files/windows/autodetect_msvc.cmd @@ -0,0 +1,17 @@ +echo No explicit msvc version requested, autodetecting version. + +call "%~dp0\detect_msvc2013.cmd" +if %ERRORLEVEL% EQU 0 goto DetectionComplete + +call "%~dp0\detect_msvc2015.cmd" +if %ERRORLEVEL% EQU 0 goto DetectionComplete + +call "%~dp0\detect_msvc2017.cmd" +if %ERRORLEVEL% EQU 0 goto DetectionComplete + +echo Compiler Detection failed. Use verbose switch for more information. +exit /b 1 + +:DetectionComplete +echo Compiler Detection successfull, detected VS%BUILD_VS_YEAR% +exit /b 0
\ No newline at end of file diff --git a/build_files/windows/build_msbuild.cmd b/build_files/windows/build_msbuild.cmd new file mode 100644 index 00000000000..6ca5f1b0df8 --- /dev/null +++ b/build_files/windows/build_msbuild.cmd @@ -0,0 +1,26 @@ +if "%NOBUILD%"=="1" goto EOF +echo %TIME% > %BUILD_DIR%\buildtime.txt +msbuild ^ + %BUILD_DIR%\Blender.sln ^ + /target:build ^ + /property:Configuration=%BUILD_TYPE% ^ + /maxcpucount:2 ^ + /verbosity:minimal ^ + /p:platform=%MSBUILD_PLATFORM% ^ + /flp:Summary;Verbosity=minimal;LogFile=%BUILD_DIR%\Build.log + if errorlevel 1 ( + echo Error during build, see %BUILD_DIR%\Build.log for details + exit /b 1 + ) + +msbuild ^ + %BUILD_DIR%\INSTALL.vcxproj ^ + /property:Configuration=%BUILD_TYPE% ^ + /verbosity:minimal ^ + /p:platform=%MSBUILD_PLATFORM% + if errorlevel 1 ( + echo Error during install phase + exit /b 1 + ) +echo %TIME% >> %BUILD_DIR%\buildtime.txt +:EOF
\ No newline at end of file diff --git a/build_files/windows/build_ninja.cmd b/build_files/windows/build_ninja.cmd new file mode 100644 index 00000000000..4f1a5408c28 --- /dev/null +++ b/build_files/windows/build_ninja.cmd @@ -0,0 +1,16 @@ +if "%NOBUILD%"=="1" goto EOF +set HAS_ERROR= +cd %BUILD_DIR% +echo %TIME% > buildtime.txt +ninja install +if errorlevel 1 ( + set HAS_ERROR=1 + ) +echo %TIME% >>buildtime.txt +cd %BLENDER_DIR% + +if "%HAS_ERROR%" == "1" ( + echo Error during build + exit /b 1 +) +:EOF
\ No newline at end of file diff --git a/build_files/windows/check_libraries.cmd b/build_files/windows/check_libraries.cmd new file mode 100644 index 00000000000..c8aad7c9adb --- /dev/null +++ b/build_files/windows/check_libraries.cmd @@ -0,0 +1,54 @@ +if "%BUILD_VS_YEAR%"=="2013" set BUILD_VS_LIBDIRPOST=vc12 +if "%BUILD_VS_YEAR%"=="2015" set BUILD_VS_LIBDIRPOST=vc14 +if "%BUILD_VS_YEAR%"=="2017" set BUILD_VS_LIBDIRPOST=vc14 + +if "%BUILD_ARCH%"=="x64" ( + set BUILD_VS_SVNDIR=win64_%BUILD_VS_LIBDIRPOST% +) else if "%BUILD_ARCH%"=="x86" ( + set BUILD_VS_SVNDIR=windows_%BUILD_VS_LIBDIRPOST% +) +set BUILD_VS_LIBDIR="%BLENDER_DIR%..\lib\%BUILD_VS_SVNDIR%" + +if NOT "%verbose%" == "" ( + echo Library Directory = "%BUILD_VS_LIBDIR%" +) +if NOT EXIST %BUILD_VS_LIBDIR% ( + rem libs not found, but svn is on the system + echo + if not "%SVN%"=="" ( + echo. + echo The required external libraries in %BUILD_VS_LIBDIR% are missing + echo. + set /p GetLibs= "Would you like to download them? (y/n)" + if /I "!GetLibs!"=="Y" ( + echo. + echo Downloading %BUILD_VS_SVNDIR% libraries, please wait. + echo. +:RETRY + "%SVN%" checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/%BUILD_VS_SVNDIR% %BUILD_VS_LIBDIR% + if errorlevel 1 ( + set /p LibRetry= "Error during donwload, retry? y/n" + if /I "!LibRetry!"=="Y" ( + cd %BUILD_VS_LIBDIR% + "%SVN%" cleanup + cd %BLENDER_DIR% + goto RETRY + ) + echo. + echo Error: Download of external libraries failed. + echo This is needed for building, please manually run 'svn cleanup' and 'svn update' in + echo %BUILD_VS_LIBDIR% , until this is resolved you CANNOT make a successfull blender build + echo. + exit /b 1 + ) + ) + ) +) + +if NOT EXIST %BUILD_VS_LIBDIR% ( + echo. + echo Error: Required libraries not found at "%BUILD_VS_LIBDIR%" + echo This is needed for building, aborting! + echo. + exit /b 1 +)
\ No newline at end of file diff --git a/build_files/windows/check_spaces_in_path.cmd b/build_files/windows/check_spaces_in_path.cmd new file mode 100644 index 00000000000..2e9300ae6d5 --- /dev/null +++ b/build_files/windows/check_spaces_in_path.cmd @@ -0,0 +1,6 @@ +set BLENDER_DIR_NOSPACES=%BLENDER_DIR: =% + +if not "%BLENDER_DIR%"=="%BLENDER_DIR_NOSPACES%" ( + echo There are spaces detected in the build path "%BLENDER_DIR%", this is currently not supported, exiting.... + exit /b 1 +)
\ No newline at end of file diff --git a/build_files/windows/check_submodules.cmd b/build_files/windows/check_submodules.cmd new file mode 100644 index 00000000000..c0c64148dd7 --- /dev/null +++ b/build_files/windows/check_submodules.cmd @@ -0,0 +1,20 @@ +if NOT exist "%BLENDER_DIR%/source/tools" ( + echo Checking out sub-modules + if not "%GIT%" == "" ( + "%GIT%" submodule update --init --recursive --progress + if errorlevel 1 goto FAIL + "%GIT%" submodule foreach git checkout master + if errorlevel 1 goto FAIL + "%GIT%" submodule foreach git pull --rebase origin master + if errorlevel 1 goto FAIL + goto EOF + ) else ( + echo Blender submodules not found, and git not found in path to retrieve them. + goto FAIL + ) +) +goto EOF + +:FAIL +exit /b 1 +:EOF
\ No newline at end of file diff --git a/build_files/windows/configure_msbuild.cmd b/build_files/windows/configure_msbuild.cmd new file mode 100644 index 00000000000..eee21f568be --- /dev/null +++ b/build_files/windows/configure_msbuild.cmd @@ -0,0 +1,75 @@ +set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Visual Studio %BUILD_VS_VER% %BUILD_VS_YEAR%%WINDOWS_ARCH%" %TESTS_CMAKE_ARGS% + +if "%BUILD_ARCH%"=="x64" ( + set MSBUILD_PLATFORM=x64 +) else if "%BUILD_ARCH%"=="x86" ( + set MSBUILD_PLATFORM=win32 + if "%WITH_CLANG%"=="1" ( + echo Clang not supported for X86 + exit /b 1 + ) +) + +if "%WITH_CLANG%"=="1" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -T"LLVM-vs2017" + if "%WITH_ASAN%"=="1" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_COMPILER_ASAN=On + ) +) else ( + if "%WITH_ASAN%"=="1" ( + echo ASAN is only supported with clang. + exit /b 1 + ) +) + +if NOT EXIST %BUILD_DIR%\nul ( + mkdir %BUILD_DIR% +) + +if "%MUST_CLEAN%"=="1" ( + echo Cleaning %BUILD_DIR% + msbuild ^ + %BUILD_DIR%\Blender.sln ^ + /target:clean ^ + /property:Configuration=%BUILD_TYPE% ^ + /verbosity:minimal ^ + /p:platform=%MSBUILD_PLATFORM% +) + +if NOT EXIST %BUILD_DIR%\Blender.sln set MUST_CONFIGURE=1 +if "%NOBUILD%"=="1" set MUST_CONFIGURE=1 + +if "%MUST_CONFIGURE%"=="1" ( + + if NOT "%verbose%" == "" ( + echo %CMAKE% %BUILD_CMAKE_ARGS% -H%BLENDER_DIR% -B%BUILD_DIR% + ) + + cmake ^ + %BUILD_CMAKE_ARGS% ^ + -H%BLENDER_DIR% ^ + -B%BUILD_DIR% + + if %ERRORLEVEL% NEQ 0 ( + echo "Configuration Failed" + exit /b 1 + ) +) + +echo call "%VCVARS%" %BUILD_ARCH% > %BUILD_DIR%\rebuild.cmd +echo "%CMAKE%" . >> %BUILD_DIR%\rebuild.cmd +echo echo %%TIME%% ^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd +echo msbuild ^ + %BUILD_DIR%\Blender.sln ^ + /target:build ^ + /property:Configuration=%BUILD_TYPE% ^ + /maxcpucount:2 ^ + /verbosity:minimal ^ + /p:platform=%MSBUILD_PLATFORM% ^ + /flp:Summary;Verbosity=minimal;LogFile=%BUILD_DIR%\Build.log >> %BUILD_DIR%\rebuild.cmd +echo msbuild ^ + %BUILD_DIR%\INSTALL.vcxproj ^ + /property:Configuration=%BUILD_TYPE% ^ + /verbosity:minimal ^ + /p:platform=%MSBUILD_PLATFORM% >> %BUILD_DIR%\rebuild.cmd +echo echo %%TIME%% ^>^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd
\ No newline at end of file diff --git a/build_files/windows/configure_ninja.cmd b/build_files/windows/configure_ninja.cmd new file mode 100644 index 00000000000..d3b002e9a24 --- /dev/null +++ b/build_files/windows/configure_ninja.cmd @@ -0,0 +1,74 @@ +set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Ninja" %TESTS_CMAKE_ARGS% -DCMAKE_BUILD_TYPE=%BUILD_TYPE% + +if "%WITH_CLANG%" == "1" ( +set LLVM_DIR= + for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LLVM\LLVM" /ve 2^>nul`) DO set LLVM_DIR=%%C + if DEFINED LLVM_DIR ( + if NOT "%verbose%" == "" ( + echo LLVM Detected at "%LLVM_DIR%" + ) + goto DetectionComplete + ) + + REM Check 32 bits + for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\LLVM\LLVM" /ve 2^>nul`) DO set LLVM_DIR=%%C + if DEFINED LLVM_DIR ( + if NOT "%verbose%" == "" ( + echo LLVM Detected at "%LLVM_DIR%" + ) + goto DetectionComplete + ) + echo LLVM not found + exit /b 1 + +:DetectionComplete + set CC=%LLVM_DIR%\bin\clang-cl + set CXX=%LLVM_DIR%\bin\clang-cl + rem build and tested against 2017 15.7 + set CFLAGS=-m64 -fmsc-version=1914 + set CXXFLAGS=-m64 -fmsc-version=1914 + if "%WITH_ASAN%"=="1" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_COMPILER_ASAN=On + ) +) + +if "%WITH_ASAN%"=="1" ( + if "%WITH_CLANG%" == "" ( + echo ASAN is only supported with clang. + exit /b 1 + ) +) + +if NOT "%verbose%" == "" ( + echo BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% +) + +if NOT EXIST %BUILD_DIR%\nul ( + mkdir %BUILD_DIR% +) + +if "%MUST_CLEAN%"=="1" ( + echo Cleaning %BUILD_DIR% + cd %BUILD_DIR% + %CMAKE% cmake --build . --config Clean +) + +if NOT EXIST %BUILD_DIR%\Blender.sln set MUST_CONFIGURE=1 +if "%NOBUILD%"=="1" set MUST_CONFIGURE=1 + +if "%MUST_CONFIGURE%"=="1" ( + cmake ^ + %BUILD_CMAKE_ARGS% ^ + -H%BLENDER_DIR% ^ + -B%BUILD_DIR% + + if %ERRORLEVEL% NEQ 0 ( + echo "Configuration Failed" + exit /b 1 + ) +) + +echo call "%VCVARS%" %BUILD_ARCH% > %BUILD_DIR%\rebuild.cmd +echo echo %%TIME%% ^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd +echo ninja install >> %BUILD_DIR%\rebuild.cmd +echo echo %%TIME%% ^>^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd
\ No newline at end of file diff --git a/build_files/windows/detect_architecture.cmd b/build_files/windows/detect_architecture.cmd new file mode 100644 index 00000000000..cd211668b7f --- /dev/null +++ b/build_files/windows/detect_architecture.cmd @@ -0,0 +1,16 @@ +if "%BUILD_ARCH%"=="" ( + if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( + set WINDOWS_ARCH= Win64 + set BUILD_ARCH=x64 + ) else if "%PROCESSOR_ARCHITEW6432%" == "AMD64" ( + set WINDOWS_ARCH= Win64 + set BUILD_ARCH=x64 + ) else ( + set WINDOWS_ARCH= + set BUILD_ARCH=x86 + ) +) else if "%BUILD_ARCH%"=="x64" ( + set WINDOWS_ARCH= Win64 +) else if "%BUILD_ARCH%"=="x86" ( + set WINDOWS_ARCH= +) diff --git a/build_files/windows/detect_msvc2013.cmd b/build_files/windows/detect_msvc2013.cmd new file mode 100644 index 00000000000..5688d31c4b6 --- /dev/null +++ b/build_files/windows/detect_msvc2013.cmd @@ -0,0 +1,3 @@ +set BUILD_VS_VER=12 +set BUILD_VS_YEAR=2013 +call "%~dp0\detect_msvc_classic.cmd"
\ No newline at end of file diff --git a/build_files/windows/detect_msvc2015.cmd b/build_files/windows/detect_msvc2015.cmd new file mode 100644 index 00000000000..0818d1dfffc --- /dev/null +++ b/build_files/windows/detect_msvc2015.cmd @@ -0,0 +1,3 @@ +set BUILD_VS_VER=14 +set BUILD_VS_YEAR=2015 +call "%~dp0\detect_msvc_classic.cmd"
\ No newline at end of file diff --git a/build_files/windows/detect_msvc2017.cmd b/build_files/windows/detect_msvc2017.cmd new file mode 100644 index 00000000000..90fad8744b5 --- /dev/null +++ b/build_files/windows/detect_msvc2017.cmd @@ -0,0 +1,70 @@ +if NOT "%verbose%" == "" ( + echo Detecting msvc 2017 +) +set BUILD_VS_VER=15 +set ProgramFilesX86=%ProgramFiles(x86)% +if not exist "%ProgramFilesX86%" set ProgramFilesX86=%ProgramFiles% + +set vs_where=%ProgramFilesX86%\Microsoft Visual Studio\Installer\vswhere.exe +if not exist "%vs_where%" ( + if NOT "%verbose%" == "" ( + echo Visual Studio 2017 ^(15.2 or newer^) is not detected + goto FAIL + ) +) +for /f "usebackq tokens=1* delims=: " %%i in (`"%vs_where%" -products * -latest %VSWHERE_ARGS% -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64`) do ( + if /i "%%i"=="installationPath" set VS_InstallDir=%%j +) + +if "%VS_InstallDir%"=="" ( + if NOT "%verbose%" == "" ( + echo Visual Studio is detected but the "Desktop development with C++" workload has not been instlled + goto FAIL + ) +) + +set VCVARS=%VS_InstallDir%\VC\Auxiliary\Build\vcvarsall.bat +if exist "%VCVARS%" ( + call "%VCVARS%" %BUILD_ARCH% +) else ( + if NOT "%verbose%" == "" ( + echo "%VCVARS%" not found + ) + goto FAIL +) + +rem try msbuild +msbuild /version > NUL +if errorlevel 1 ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% msbuild not found + ) + goto FAIL +) + +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% msbuild found +) + +REM try the c++ compiler +cl 2> NUL 1>&2 +if errorlevel 1 ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found + ) + goto FAIL +) + +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found +) + +if NOT "%verbose%" == "" ( + echo Visual Studio 2017 is detected successfully +) +goto EOF + +:FAIL +exit /b 1 + +:EOF diff --git a/build_files/windows/detect_msvc_classic.cmd b/build_files/windows/detect_msvc_classic.cmd new file mode 100644 index 00000000000..61bfcf92ddf --- /dev/null +++ b/build_files/windows/detect_msvc_classic.cmd @@ -0,0 +1,69 @@ +if NOT "%verbose%" == "" ( + echo Detecting msvc %BUILD_VS_YEAR% +) +set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%BUILD_VS_VER%.0\Setup\VC" +for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY %KEY_NAME% /v ProductDir 2^>nul`) DO set MSVC_VC_DIR=%%C +if DEFINED MSVC_VC_DIR ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% on Win64 detected at "%MSVC_VC_DIR%" + ) + goto msvc_detect_finally +) + +REM Check 32 bits +set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\%BUILD_VS_VER%.0\Setup\VC" +for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY %KEY_NAME% /v ProductDir 2^>nul`) DO set MSVC_VC_DIR=%%C +if DEFINED MSVC_VC_DIR ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% on Win32 detected at "%MSVC_VC_DIR%" + ) + goto msvc_detect_finally +) +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% not found. +) +goto FAIL +:msvc_detect_finally +set VCVARS=%MSVC_VC_DIR%\vcvarsall.bat +if not exist "%VCVARS%" ( + echo "%VCVARS%" not found. + goto FAIL +) + +call "%vcvars%" %BUILD_ARCH% + +rem try msbuild +msbuild /version > NUL +if errorlevel 1 ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% msbuild not found + ) + goto FAIL +) + +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% msbuild found +) + +REM try the c++ compiler +cl 2> NUL 1>&2 +if errorlevel 1 ( + if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found + ) + goto FAIL +) + +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found +) +goto DetectionComplete + +:FAIL +exit /b 1 + +:DetectionComplete +if NOT "%verbose%" == "" ( + echo Visual Studio %BUILD_VS_YEAR% Detected successfuly +) +exit /b 0 diff --git a/build_files/windows/find_dependencies.cmd b/build_files/windows/find_dependencies.cmd new file mode 100644 index 00000000000..219e9801831 --- /dev/null +++ b/build_files/windows/find_dependencies.cmd @@ -0,0 +1,13 @@ +REM find all dependencies and set the corresponding environement variables. +for %%X in (svn.exe) do (set SVN=%%~$PATH:X) +for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X) +for %%X in (git.exe) do (set GIT=%%~$PATH:X) +if NOT "%verbose%" == "" ( + echo svn : %SVN% + echo cmake : %CMAKE% + echo git : %GIT% +) +if "%CMAKE%" == "" ( + echo Cmake not found in path, required for building, exiting... + exit /b 1 +)
\ No newline at end of file diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd new file mode 100644 index 00000000000..2cc0acfd243 --- /dev/null +++ b/build_files/windows/parse_arguments.cmd @@ -0,0 +1,84 @@ +set BUILD_DIR=%BLENDER_DIR%..\build_windows +set BUILD_TYPE=Release +:argv_loop +if NOT "%1" == "" ( + + REM Help Message + if "%1" == "help" ( + set SHOW_HELP=1 + goto EOF + ) + REM Build Types + if "%1" == "debug" ( + set BUILD_TYPE=Debug + REM Build Configurations + ) else if "%1" == "noge" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_GAMEENGINE=OFF -DWITH_PLAYER=OFF + set BUILD_NGE=_noge + ) else if "%1" == "builddir" ( + set BUILD_DIR_OVERRRIDE="%BLENDER_DIR%..\%2" + shift /1 + ) else if "%1" == "with_tests" ( + set TESTS_CMAKE_ARGS=-DWITH_GTESTS=On + ) else if "%1" == "full" ( + set TARGET=Full + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% ^ + -C"%BLENDER_DIR%\build_files\cmake\config\blender_full.cmake" + ) else if "%1" == "lite" ( + set TARGET=Lite + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\blender_lite.cmake" + ) else if "%1" == "cycles" ( + set TARGET=Cycles + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\cycles_standalone.cmake" + ) else if "%1" == "headless" ( + set TARGET=Headless + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\blender_headless.cmake" + ) else if "%1" == "bpy" ( + set TARGET=Bpy + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -C"%BLENDER_DIR%\build_files\cmake\config\bpy_module.cmake" + ) else if "%1" == "clang" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% + set WITH_CLANG=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" == "asan" ( + set WITH_ASAN=1 + ) else if "%1" == "x86" ( + set BUILD_ARCH=x86 + ) else if "%1" == "x64" ( + set BUILD_ARCH=x64 + ) else if "%1" == "2017" ( + set BUILD_VS_YEAR=2017 + ) else if "%1" == "2017pre" ( + set BUILD_VS_YEAR=2017 + set VSWHERE_ARGS=-prerelease + ) else if "%1" == "2015" ( + set BUILD_VS_YEAR=2015 + ) else if "%1" == "2013" ( + set BUILD_VS_YEAR=2013 + ) else if "%1" == "packagename" ( + set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DCPACK_OVERRIDE_PACKAGENAME="%2" + shift /1 + ) else if "%1" == "nobuild" ( + set NOBUILD=1 + ) else if "%1" == "showhash" ( + SET BUILD_SHOW_HASHES=1 + REM Non-Build Commands + ) else if "%1" == "update" ( + SET BUILD_UPDATE=1 + ) else if "%1" == "ninja" ( + SET BUILD_WITH_NINJA=1 + ) else if "%1" == "clean" ( + set MUST_CLEAN=1 + ) else if "%1" == "verbose" ( + set VERBOSE=1 + ) else ( + echo Command "%1" unknown, aborting! + exit /b 1 + ) + shift /1 + goto argv_loop +) +:EOF +exit /b 0
\ No newline at end of file diff --git a/build_files/windows/reset_variables.cmd b/build_files/windows/reset_variables.cmd new file mode 100644 index 00000000000..f933729b91c --- /dev/null +++ b/build_files/windows/reset_variables.cmd @@ -0,0 +1,25 @@ +rem reset all variables so they do not get accidentally get carried over from previous builds +set BUILD_DIR_OVERRRIDE= +set BUILD_CMAKE_ARGS= +set BUILD_ARCH= +set BUILD_VS_VER= +set BUILD_VS_YEAR= +set BUILD_VS_LIBDIRPOST= +set BUILD_VS_LIBDIR= +set BUILD_VS_SVNDIR= +set BUILD_NGE= +set KEY_NAME= +set MSBUILD_PLATFORM= +set MUST_CLEAN= +set NOBUILD= +set TARGET= +set VERBOSE= +set WINDOWS_ARCH= +set TESTS_CMAKE_ARGS= +set VSWHERE_ARGS= +set BUILD_UPDATE= +set BUILD_SHOW_HASHES= +set SHOW_HELP= +set BUILD_WITH_NINJA= +set WITH_CLANG= +set WITH_ASAN=
\ No newline at end of file diff --git a/build_files/windows/set_build_dir.cmd b/build_files/windows/set_build_dir.cmd new file mode 100644 index 00000000000..8842a52eb5b --- /dev/null +++ b/build_files/windows/set_build_dir.cmd @@ -0,0 +1,4 @@ +set BUILD_DIR=%BUILD_DIR%_%TARGET%%BUILD_NGE%_%BUILD_ARCH%_vc%BUILD_VS_VER%_%BUILD_TYPE% +if NOT "%BUILD_DIR_OVERRRIDE%"=="" ( + set BUILD_DIR=%BUILD_DIR_OVERRRIDE% +)
\ No newline at end of file diff --git a/build_files/windows/show_hashes.cmd b/build_files/windows/show_hashes.cmd new file mode 100644 index 00000000000..ff036733946 --- /dev/null +++ b/build_files/windows/show_hashes.cmd @@ -0,0 +1,12 @@ +if "%GIT%" == "" ( + echo Git not found, cannot show hashes. + goto EOF +) +cd "%BLENDER_DIR%" +for /f "delims=" %%i in ('%GIT% rev-parse HEAD') do echo Branch_hash=%%i +cd "%BLENDER_DIR%/release/datafiles/locale" +for /f "delims=" %%i in ('%GIT% rev-parse HEAD') do echo Locale_hash=%%i +cd "%BLENDER_DIR%/release/scripts/addons" +for /f "delims=" %%i in ('%GIT% rev-parse HEAD') do echo Addons_Hash=%%i +cd "%BLENDER_DIR%" +:EOF
\ No newline at end of file diff --git a/build_files/windows/show_help.cmd b/build_files/windows/show_help.cmd new file mode 100644 index 00000000000..0524e8a84fc --- /dev/null +++ b/build_files/windows/show_help.cmd @@ -0,0 +1,29 @@ +echo. +echo Convenience targets +echo - release ^(identical to the official blender.org builds^) +echo - full ^(same as release minus the cuda kernels^) +echo - lite +echo - headless +echo - cycles +echo - bpy +echo. +echo Utilities ^(not associated with building^) +echo - clean ^(Target must be set^) +echo - update +echo - nobuild ^(only generate project files^) +echo - showhash ^(Show git hashes of source tree^) +echo. +echo Configuration options +echo - verbose ^(enable diagnostic output during configuration^) +echo - with_tests ^(enable building unit tests^) +echo - noge ^(disable building game enginge and player^) +echo - debug ^(Build an unoptimized debuggable build^) +echo - packagename [newname] ^(override default cpack package name^) +echo - buildir [newdir] ^(override default build folder^) +echo - x86 ^(override host auto-detect and build 32 bit code^) +echo - x64 ^(override host auto-detect and build 64 bit code^) +echo - 2013 ^(build with visual studio 2013^) +echo - 2015 ^(build with visual studio 2015^) [EXPERIMENTAL] +echo - 2017 ^(build with visual studio 2017^) [EXPERIMENTAL] +echo - 2017pre ^(build with visual studio 2017 pre-release^) [EXPERIMENTAL] +echo. diff --git a/build_files/windows/update_sources.cmd b/build_files/windows/update_sources.cmd new file mode 100644 index 00000000000..22d93fabb95 --- /dev/null +++ b/build_files/windows/update_sources.cmd @@ -0,0 +1,16 @@ +if "%SVN%" == "" ( + echo svn not found, cannot update libraries + goto UPDATE_GIT +) +"%SVN%" up "%BLENDER_DIR%/../lib/*" + +:UPDATE_GIT + +if "%GIT%" == "" ( + echo Git not found, cannot update code + goto EOF +) +"%GIT%" pull --rebase +"%GIT%" submodule foreach git pull --rebase origin master + +:EOF
\ No newline at end of file |