nalexandru / BlenderCompat

Windows 7 support for Blender 3.x and newer
BSD 3-Clause "New" or "Revised" License
245 stars 23 forks source link

Clarification in instructions for people not used to building from source? #5

Open televators opened 2 years ago

televators commented 2 years ago

Howdy! Just got my main desktop running again after hardware-related downtime. Super stoked to find this project since I started learning Blender with 3.0 on my laptop that has W10.

I just have two questions.

  1. What the hell is the Blender source tree? I do front-end web stuff and never have a need to build from source or even think about C langs and compiling. I have all the stuff downloaded and have the folders opened ready to copy the bcompat7.patch but I don't know what the "Blender source tree" means in the instructions. In blender/, is it build_files/? source/? /?
  2. In the second step,

    To use the your own build of this compatibility DLL, overwrite the files in the lib/win64_vc15/bcompat7 directory created after running make update

'to use your compatibility DLL' sounds like this is an optional step. Is this step required to run Blender on W7? And when you say, "overwrite the files..." but you don't say what I'm overwriting them with. Not sure what to do with this second step at all.

Sorry for the probably ubernoob questions, this is just an area I'm not sure how to make judgement calls on since I'm out of my wheelhouse. Thank you for any help!

Limezero commented 2 years ago

If you follow the building instructions on the Blender wiki, you will end up with a folder that looks like this:

2022 01 09_18 25 16

"blender" is the name of the folder git downloads the source code into.

If you type make update (in reality this launches a script called make.bat with the parameter 'update'), the build script downloads all of the external programs, libraries and dependencies you need to build Blender into a folder called "lib".

When you run the script again and actually compile the source code, everything gets turned into a nice self-contained Blender installation, and the final output is moved to a directory called "build_windows_Release_x64_vc16_Release".

What the hell is the Blender source tree?

Things in computer science are often kept track of as "trees" under the hood, source code management and files in directories being such examples. Basically, it's just a fancy term people use which means "the folder where the source code is" - in this case the folder named "blender" seen on the picture above.

You take bcompat7.patch, and you move it to the blender folder. JUST the blender folder, not any other folder inside that. In technical terms, you would be moving it to the root of the folder, hence the tree analogy.

'to use your compatibility DLL' sounds like this is an optional step.

Read that bit again, the instructions were for if you want to use your own build of the compatibility DLL. Basically, if you want to make modifications to bcompat7 and use that modified version in the copy of Blender you're compiling. If you recall back to earlier, the lib directory is where Blender stores third party stuff. bcompat7 piggybacks on top of that system - what that .patch file you apply does is change the build instructions very slightly to have Blender download bcompat7 from this GitHub page as an external dependency, and build it into the application along with everything else (that's why you have to apply the patch before running make update). So if you wanted to use your own special modified version of bcompat7, you'd need to move it into that folder and replace the one downloaded from GitHub with it.

...Also, chances are you don't need to do any of that, because there's already a compiled version of Blender 3.0 (the latest stable version) on the releases page of this project which you can use:

https://github.com/nalexandru/BlenderCompat/releases/tag/3.0.0