Faster build steps for bug-fix releases?

I have a functional 3.6.1 build. If I wish to upgrade to 3.6.2 and later bug-fix releases, do I need to start each build from scratch, or are there any steps I can take to expedite the building process?

I assume you are building from the Blender source code. In which case, you will probably be on the blender-v3.6-release branch.

When things are backported to 3.6.X, they will be added to the blender-v3.6-release branch. You should be able to “pull” (download) the latest changes with git pull with the command line in the Blender source code directory, then just run make again. Typically only the areas that have been impacted by the recent changes will be re-built resulting in a faster build than just doing it from scratch.

Occasionally there will be changes (typically with cmake files) that can cause build errors. And it’s just easier to rebuild from scratch again in that case. Note: This is more common if you’re following the “main” branch of Blender, or switching from one major version to another (E.G. 3.5 → 3.6)

1 Like

When I build Blender, I run make full nobuild so that I can change a couple of things in CmakeCache.txt. After that I run rebuild.

Will these commands also preserve work done on the previous build (reducing subsequent versions build times) or will they overwrite everything causing the new version to be built from scratch?

I ask because I always delete the \blender-git\build_windows_Full_x64_vc16_Release folder after copying out the compiled Blender thinking it might cause problems with future versions.

If you delete the \blender-git\build_windows_Full_x64_vc16_Release folder, nothing is preserved, and next time you run it, it’ll build from scratch.

Thank you for clearing that up! I’ll keep the folder and try going through the process once 3.6.3 is ready.

So I made a full 3.6.4 build from scratch and this time I did not delete the \blender-git\build_windows_Full_x64_vc16_Release folder before building 3.6.5.

I encountered the following issues:

After going through make update 2019b, I type git checkout v.3.6.5

I get the following error:

checkout pathspec did not match any file(s) known to git

Only after I type git fetch am I able to checkout 3.6.5

Shouldn’t make update 2019b get everything up to date?

Finally, I go through make 2019b with the \blender-git\build_windows_Full_x64_vc16_Release folder of the last build intact.

This time, a new folder is created: build_windows_x64_vc16_Release. I don’t know if this behavior is normal as I expected the build to run in the old folder.

The build finishes but none of my previous modifications in my CMakeCache.txt are taken into account.

Do I need to go through an additional step so that the build process reads my previous CMakeCache.txt?

You need to use the same make command you used before to build in the same folder. So that means you should be using make full 2019b or make 2019b full if you want to reuse your old build folder. (Your old build was made using make full 2019b or make 2019b full)

This is expected because it’s an entirely seperate build in a seperate folder with it’s own CMakeCache.txt file. So it’s not going to re-use anything from the other build folders.

1 Like

Once you start making modifications to your CMakeCache best to start using the rebuild.cmd that is in your build folder rather than building using make.bat, it’ll leave your cmake settings alone.

1 Like

Thanks Alaska! It worked with make 2019b full

Ok, I’ll try the rebuild.cmd on the next release. Thank you for the info!

As for the checkout pathspec did not match any file(s) known to git error I get after I make update 2019b

Dose the make update command not update git? So I have to always make update 2019b + git fetch + git checkout v.X.X.X and then rebuild.cmd?

make update should update both git and svn, but perhaps it runs into trouble, you’d have to check the logs.

also just to be sure, if all you are doing is building stock blender, you can grab nightly builds off and save your self a whole bunch of trouble.

Ok, I’ll save the logs next time to try to see what is happening.

Yes, I’m aware of the nightly builds. I go through this because there are no builds (that I’m aware of at least) that don’t include FFMPEG, or that include FFMPEG without patent encumbered codecs like AAC and h264.