diff options
-rw-r--r-- | build_files/windows/find_blender.cmd | 28 | ||||
-rw-r--r-- | build_files/windows/find_inkscape.cmd | 21 | ||||
-rw-r--r-- | build_files/windows/icons.cmd | 42 | ||||
-rw-r--r-- | build_files/windows/icons_geom.cmd | 29 | ||||
-rw-r--r-- | build_files/windows/parse_arguments.cmd | 6 | ||||
-rw-r--r-- | build_files/windows/reset_variables.cmd | 2 | ||||
-rw-r--r-- | make.bat | 10 | ||||
-rwxr-xr-x | release/datafiles/blender_icons_geom_update.py | 5 | ||||
-rwxr-xr-x | release/datafiles/blender_icons_update.py | 6 |
9 files changed, 149 insertions, 0 deletions
diff --git a/build_files/windows/find_blender.cmd b/build_files/windows/find_blender.cmd new file mode 100644 index 00000000000..9adbfd35ae9 --- /dev/null +++ b/build_files/windows/find_blender.cmd @@ -0,0 +1,28 @@ +REM First see if there is an environment variable set +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +REM Check the build folder next, if ninja was used there will be no +REM debug/release folder +set BLENDER_BIN=%BUILD_DIR%\bin\blender.exe +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +REM Check the release folder next +set BLENDER_BIN=%BUILD_DIR%\bin\release\blender.exe +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +REM Check the debug folder next +set BLENDER_BIN=%BUILD_DIR%\bin\debug\blender.exe +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +REM at this point, we don't know where blender is, clear the variable +set BLENDER_BIN= + +:detect_blender_done diff --git a/build_files/windows/find_inkscape.cmd b/build_files/windows/find_inkscape.cmd new file mode 100644 index 00000000000..2fa27f70d47 --- /dev/null +++ b/build_files/windows/find_inkscape.cmd @@ -0,0 +1,21 @@ +REM First see if there is an environment variable set +if EXIST "%INKSCAPE_BIN%" ( + goto detect_inkscape_done +) + +REM Then see if inkscape is available in the path +for %%X in (inkscape.exe) do (set INKSCAPE_BIN=%%~$PATH:X) +if EXIST "%INKSCAPE_BIN%" ( + goto detect_inkscape_done +) + +REM Finally see if it is perhaps installed at the default location +set INKSCAPE_BIN=%ProgramFiles%\Inkscape\bin\inkscape.exe +if EXIST "%INKSCAPE_BIN%" ( + goto detect_inkscape_done +) + +REM If still not found clear the variable +set INKSCAPE_BIN= + +:detect_inkscape_done diff --git a/build_files/windows/icons.cmd b/build_files/windows/icons.cmd new file mode 100644 index 00000000000..473a40885a8 --- /dev/null +++ b/build_files/windows/icons.cmd @@ -0,0 +1,42 @@ +if EXIST %PYTHON% ( + goto detect_python_done +) + +set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe +if EXIST %PYTHON% ( + goto detect_python_done +) + +echo python not found at %PYTHON% +exit /b 1 + +:detect_python_done +echo found python (%PYTHON%) + +call "%~dp0\find_inkscape.cmd" + +if EXIST "%INKSCAPE_BIN%" ( + goto detect_inkscape_done +) + +echo unable to locate inkscape, run "set inkscape_BIN=full_path_to_inkscape.exe" +exit /b 1 + +:detect_inkscape_done + +call "%~dp0\find_blender.cmd" + +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +echo unable to locate blender, run "set BLENDER_BIN=full_path_to_blender.exe" +exit /b 1 + +:detect_blender_done + +%PYTHON% -B %BLENDER_DIR%\release\datafiles\blender_icons_update.py +%PYTHON% -B %BLENDER_DIR%\release\datafiles\prvicons_update.py +%PYTHON% -B %BLENDER_DIR%\release\datafiles\alert_icons_update.py + +:EOF diff --git a/build_files/windows/icons_geom.cmd b/build_files/windows/icons_geom.cmd new file mode 100644 index 00000000000..18312daf35b --- /dev/null +++ b/build_files/windows/icons_geom.cmd @@ -0,0 +1,29 @@ +if EXIST %PYTHON% ( + goto detect_python_done +) + +set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe +if EXIST %PYTHON% ( + goto detect_python_done +) + +echo python not found at %PYTHON% +exit /b 1 + +:detect_python_done +echo found python (%PYTHON%) + +call "%~dp0\find_blender.cmd" + +if EXIST "%BLENDER_BIN%" ( + goto detect_blender_done +) + +echo unable to locate blender, run "set BLENDER_BIN=full_path_to_blender.exe" +exit /b 1 + +:detect_blender_done + +%PYTHON% -B %BLENDER_DIR%\release\datafiles\blender_icons_geom_update.py + +:EOF diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd index 000b98c992e..c71093f2394 100644 --- a/build_files/windows/parse_arguments.cmd +++ b/build_files/windows/parse_arguments.cmd @@ -107,6 +107,12 @@ if NOT "%1" == "" ( set FORMAT=1 set FORMAT_ARGS=%2 %3 %4 %5 %6 %7 %8 %9 goto EOF + ) else if "%1" == "icons" ( + set ICONS=1 + goto EOF + ) else if "%1" == "icons_geom" ( + set ICONS_GEOM=1 + goto EOF ) else ( echo Command "%1" unknown, aborting! goto ERR diff --git a/build_files/windows/reset_variables.cmd b/build_files/windows/reset_variables.cmd index 262874713eb..590d4ca246a 100644 --- a/build_files/windows/reset_variables.cmd +++ b/build_files/windows/reset_variables.cmd @@ -31,3 +31,5 @@ set PYDEBUG_CMAKE_ARGS= set FORMAT= set TEST= set BUILD_WITH_SCCACHE= +set ICONS= +set ICONS_GEOM=
\ No newline at end of file @@ -58,6 +58,16 @@ if "%BUILD_UPDATE%" == "1" ( call "%BLENDER_DIR%\build_files\windows\set_build_dir.cmd" +if "%ICONS%" == "1" ( + call "%BLENDER_DIR%\build_files\windows\icons.cmd" + goto EOF +) + +if "%ICONS_GEOM%" == "1" ( + call "%BLENDER_DIR%\build_files\windows\icons_geom.cmd" + 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" diff --git a/release/datafiles/blender_icons_geom_update.py b/release/datafiles/blender_icons_geom_update.py index df4683809db..257b7a49285 100755 --- a/release/datafiles/blender_icons_geom_update.py +++ b/release/datafiles/blender_icons_geom_update.py @@ -96,6 +96,11 @@ for blend in icons_blend: env = {} # Developers may have ASAN enabled, avoid non-zero exit codes. env["ASAN_OPTIONS"] = "exitcode=0:" + os.environ.get("ASAN_OPTIONS", "") + # These NEED to be set on windows for python to initialize properly. + if sys.platform[:3] == "win": + env["PATHEXT"] = os.environ.get("PATHEXT", "") + env["SystemDrive"] = os.environ.get("SystemDrive", "") + env["SystemRoot"] = os.environ.get("SystemRoot", "") run(cmd, env=env) files_new = set(names_and_time_from_path(output_dir)) diff --git a/release/datafiles/blender_icons_update.py b/release/datafiles/blender_icons_update.py index dab3cd76a87..524cc512f29 100755 --- a/release/datafiles/blender_icons_update.py +++ b/release/datafiles/blender_icons_update.py @@ -37,6 +37,12 @@ env = {} # Developers may have ASAN enabled, avoid non-zero exit codes. env["ASAN_OPTIONS"] = "exitcode=0:" + os.environ.get("ASAN_OPTIONS", "") +# These NEED to be set on windows for python to initialize properly. +if sys.platform[:3] == "win": + env["PATHEXT"] = os.environ.get("PATHEXT", "") + env["SystemDrive"] = os.environ.get("SystemDrive", "") + env["SystemRoot"] = os.environ.get("SystemRoot", "") + inkscape_bin = os.environ.get("INKSCAPE_BIN", "inkscape") blender_bin = os.environ.get("BLENDER_BIN", "blender") |