
This switches clang to be the default compiler on Windows ARM64, allowing for an override to MSVC. Turns out MSVC builds have been broken for months, but nobody checked, so I'm just switching them off for now and setting clang as the default. These updated scripts allow for the msbuild generator to use an external (ie, non-MSVC) clang installation properly, otherwise they failed. They also allow for users to specify their own desired clang compiler via an environment variable. An update to the docs will come seperately. Pull Request: https://projects.blender.org/blender/blender/pulls/134566
147 lines
4.1 KiB
Batchfile
147 lines
4.1 KiB
Batchfile
@echo off
|
|
REM This batch file does an out-of-source CMake build in ../build_windows
|
|
REM This is for users who like to configure & build Blender with a single command.
|
|
setlocal EnableDelayedExpansion
|
|
setlocal ENABLEEXTENSIONS
|
|
set BLENDER_DIR=%~dp0
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\reset_variables.cmd"
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\check_spaces_in_path.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\parse_arguments.cmd" %*
|
|
if errorlevel 1 goto EOF
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
REM if it is one of the convenience targets and BLENDER_BIN is set
|
|
REM skip compiler detection
|
|
if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
|
|
if EXIST "%BLENDER_BIN%" (
|
|
goto convenience_targets
|
|
)
|
|
)
|
|
|
|
if "%BUILD_SHOW_HASHES%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\show_hashes.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%SHOW_HELP%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\show_help.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%FORMAT%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\format.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%LICENSE%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\license.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\detect_architecture.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
REM Enforce the default compiler to be clang on ARM64
|
|
if "%BUILD_ARCH%" == "arm64" (
|
|
if not "%WITH_CLANG%" == "1" (
|
|
if "%WITH_MSVC%" == "1" (
|
|
echo WARNING, MSVC compilation on Windows ARM64 is unsupported, and errors may occur.
|
|
) else (
|
|
echo Windows ARM64 builds with clang by default, enabling. If you wish to use MSVC ^(unsupported^), please use the msvc switch.
|
|
set WITH_CLANG=1
|
|
)
|
|
)
|
|
)
|
|
|
|
if "%BUILD_VS_YEAR%" == "" (
|
|
call "%BLENDER_DIR%\build_files\windows\autodetect_msvc.cmd"
|
|
if errorlevel 1 (
|
|
echo Visual Studio not found ^(try with the 'verbose' switch for more information^)
|
|
goto EOF
|
|
)
|
|
) else (
|
|
call "%BLENDER_DIR%\build_files\windows\detect_msvc%BUILD_VS_YEAR%.cmd"
|
|
if errorlevel 1 (
|
|
echo Visual Studio %BUILD_VS_YEAR% not found ^(try with the 'verbose' switch for more information^)
|
|
goto EOF
|
|
)
|
|
)
|
|
|
|
if "%BUILD_UPDATE%" == "1" (
|
|
REM First see if the SVN libs are there and check them out if they are not.
|
|
call "%BLENDER_DIR%\build_files\windows\check_libraries.cmd"
|
|
if errorlevel 1 goto EOF
|
|
if "%BUILD_UPDATE_SVN%" == "1" (
|
|
REM Then update SVN platform libraries, since updating python while python is
|
|
REM running tends to be problematic. The python script that update_sources
|
|
REM calls later on may still try to switch branches and run into trouble,
|
|
REM but for *most* people this will side step the problem.
|
|
call "%BLENDER_DIR%\build_files\windows\lib_update.cmd"
|
|
)
|
|
REM Finally call the python script shared between all platforms that updates git
|
|
REM and does any other SVN work like update the tests or branch switches
|
|
REM if required.
|
|
call "%BLENDER_DIR%\build_files\windows\update_sources.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\set_build_dir.cmd"
|
|
|
|
:convenience_targets
|
|
|
|
if "%ICONS_GEOM%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\icons_geom.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%DOC_PY%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\doc_py.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%CMAKE%" == "" (
|
|
echo Cmake not found in path, required for building, exiting...
|
|
exit /b 1
|
|
)
|
|
|
|
if "%WITH_CLANG%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\find_llvm.cmd"
|
|
if errorlevel 1 (
|
|
echo LLVM/Clang not found ^(try with the 'verbose' switch for more information^)
|
|
goto EOF
|
|
)
|
|
)
|
|
|
|
echo Building blender with VS%BUILD_VS_YEAR% for %BUILD_ARCH% in %BUILD_DIR%
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\check_libraries.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
if "%TEST%" == "1" (
|
|
call "%BLENDER_DIR%\build_files\windows\test.cmd"
|
|
goto EOF
|
|
)
|
|
|
|
if "%BUILD_WITH_NINJA%" == "" (
|
|
call "%BLENDER_DIR%\build_files\windows\configure_msbuild.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\build_msbuild.cmd"
|
|
if errorlevel 1 goto EOF
|
|
) else (
|
|
call "%BLENDER_DIR%\build_files\windows\configure_ninja.cmd"
|
|
if errorlevel 1 goto EOF
|
|
|
|
call "%BLENDER_DIR%\build_files\windows\build_ninja.cmd"
|
|
if errorlevel 1 goto EOF
|
|
)
|
|
|
|
:EOF
|
|
if errorlevel 1 exit /b %errorlevel%
|