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:
-rw-r--r--build_files/windows/find_blender.cmd28
-rw-r--r--build_files/windows/find_inkscape.cmd21
-rw-r--r--build_files/windows/icons.cmd42
-rw-r--r--build_files/windows/icons_geom.cmd29
-rw-r--r--build_files/windows/parse_arguments.cmd6
-rw-r--r--build_files/windows/reset_variables.cmd2
-rw-r--r--make.bat10
-rwxr-xr-xrelease/datafiles/blender_icons_geom_update.py5
-rwxr-xr-xrelease/datafiles/blender_icons_update.py6
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
diff --git a/make.bat b/make.bat
index ea80bd591f7..75d424202ae 100644
--- a/make.bat
+++ b/make.bat
@@ -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")