nalexandru / BlenderCompat

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

trying to compile blender 3.5.0 in Windows 7 with Visual Studio 2019 but not successful #43

Closed gfernval closed 1 year ago

gfernval commented 1 year ago

Uncompress source code of blender 3.5.0 into a folder "src" (blender-3.5.0.zip 78376574 bytes), and copy bcompat7.patch into the folder src\blender-3.5.0, after running "git apply bcompat7.patch" in the folder src\blender-3.5.0 (where I have copied bcompat7.patch and where make.bat lives) I get the errors: "error: patch failed: source/creator/CMakeLists.txt:1083 error: source/creator/CMakeLists.txt: patch does not apply" What I´m doing wrong?

nalexandru commented 1 year ago

There was a problem with applying the patch on the 3.5 source, I have corrected it. Please download it and try again.

gfernval commented 1 year ago

Before running make I build OpenEXR successfully (version 3.1.7) running "build.cmd c:\blender\src\lib\win64_vc15" (after running git apply openexr_w7.patch). In doing the final make I get the errors:

cl : command line warning D9025: overriding '/external:W3' with '/external:W0' [c:\blender\src\build_windows_x64_vc16_Release\source\creator\buildinfoobj.vcxproj] cl : command line warning D9025: overriding '/external:W3' with '/external:W0' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(82,23): error C3646: 'context': unknown override specifier [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(82,30): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(79,30): error C2065: 'context': undeclared identifier [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(79,5): error C3861: 'rtcInitIntersectContext': identifier not found [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(470,50): error C2039: 'context': is not a member of 'ccl::IntersectContext' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(524,38): error C2039: 'context': is not a member of 'ccl::IntersectContext' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(529,51): error C2039: 'context': is not a member of 'ccl::IntersectContext' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(554,49): error C2039: 'context': is not a member of 'ccl::IntersectContext' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] C:\blender\src\blender-3.5.0\intern\cycles\kernel/device/cpu/bvh.h(577,49): error C2039: 'context': is not a member of 'ccl::IntersectContext' [c:\blender\src\build_windows_x64_vc16_Release\intern\cycles\kernel\osl\cycles_kernel_osl.vcxproj] 2 Warning(s) 9 Error(s)

What is the problem with bvh.h include file?

gfernval commented 1 year ago

Problem solved, I downloaded source code https://github.com/blender/blender/archive/refs/tags/v3.5.1.zip and uncompress it, do not use git to get the source code of blender 3.5.1, it seems it gets the latest repository -in doing make update- (downloads embree4 and not embree3) and not the 3.5.1 repository. Downloaded the 3.5.1 repository by doing "svn checkout https://svn.blender.org/svnroot/bf-blender/tags/blender-3.5-release/lib/win64_vc15" and now compiled fine.

Would like to know how to get the source code of Blender 3.5.1 using git or svn (using command line only) instead of downloading https://github.com/blender/blender/archive/refs/tags/v3.5.1.zip? In this manner "make update" would work.

Once compiled, the compiled binaries are copied in c:\blendersrc\build_windows_x64_vc15_Release\bin\Release, if I copy c:\blendersrc\build_windows_x64_vc15_Release\bin\Release*.* to c:\blendercompiled (I create such c:\blendercompiled subdirectory manually), blender would work file from such subdirectory?

nalexandru commented 1 year ago

Would like to know how to get the source code of Blender 3.5.1 using git or svn (using command line only) instead of downloading https://github.com/blender/blender/archive/refs/tags/v3.5.1.zip? In this manner "make update" would work.

To get a specific version from git you must checkout the tag. To do this, add --branch <tag> to the clone command. For 3.5.1: git clone https://projects.blender.org/blender/blender.git --branch v3.5.1. If you have already cloned the repository, you can switch to a branch/tag with git checkout <tag>, for 3.5.1: git checkout v3.5.1. If you want the latest version of a release, instead of the release tag, you can checkout the release branch. For 3.5 this is blender-v3.5-release.

Once compiled, the compiled binaries are copied in c:\blendersrc\build_windows_x64_vc15_Release\bin\Release, if I copy c:\blendersrc\build_windows_x64_vc15_Release\bin\Release. to c:\blendercompiled (I create such c:\blendercompiled subdirectory manually), blender would work file from such subdirectory?

Yes. In addition to the binaries generated by the build, the zip files i upload contain api-ms-win-core-path-l1-1-0.dll from https://github.com/nalexandru/api-ms-win-core-path-HACK and the cycles kernels from the official release. The kernels are located in <blender>\<version>\scripts\addons\cycles\lib.