So i built blender but uhmm..... now what?

I see i can start blender up normally by going into the bin\release folder, that’s great!! But how do you actually start modifying stuff and messing around with the code? What are all these .vcxproj and .vcxproj.filters files especially the INSTALL.vcxproj files it looks like basically every folder/subfolder has these but what exactly am i installing? And why are all the .c files converted into .obj files??

Also on a separate but related note, how do you go about learning about all these rituals of programming? For example there was all this stuff about git and related concepts and then there is visual studio which seems to have a very prominent presence. I did a bunch of google searches but unsurprisingly got nothing helpful, what am i even supposed to google?How do people go about learning all this stuff??

But how do you actually start modifying stuff and messing around with the code?

Did you see https://wiki.blender.org/wiki/Developer_Intro ? Specifically https://wiki.blender.org/wiki/Developer_Intro/Advice.

And why are all the .c files converted into .obj files

1 Like

Along with those great wiki links, there have been similar questions here on devtalk with great answers on getting started. Finding what code is triggered by a UI element and What do I do now?

For learning programming/tools, Devtalk isn’t the right place. There are great online resources for git and CMake and many other developer tools. I would look to other sites/books like https://git-scm.com/book/en/v2 for learning those tools.

2 Likes

Thank you for the links! Unfortunately since my questions are so basic in nature there appears to be no answer on the linked pages. Are you familiar with the workflow of working with visual studio or some other windows alternative? Cause right now i have a million questions. Even if you are not i would very much appreciate it if you could give steps on the general workflow on these things. The most important question right now that i have is how do i avoid having to start a 40 minute build process just to test the smallest of changes, i saw an option in visual studio for only building the specific file that is open but i am 90% sure it’s not doing anything, or at least not affecting the files sitting in the bin\release directory.

Thanks for the help! And i actually do know programming it’s just that none of the courses/classes i took taught anything about the software/technologies commonly used to make real world applications.

1 Like

I use Xcode so it looks different. But do this:

  • Build blender, run it, File menu > Open > cancel. See console of VS.
  • Add the new line in 2506, marked blue in your filelist.c file.
  • build blender, run it, File menu > Open > cancel. See console of VS.

After a full build, incremental builds take much less time. Unless you cleaned the build or did something else.

Also, see https://docs.microsoft.com/en-us/visualstudio/ide/index-writing-code?view=vs-2019 for nice walkthrough. Most steps (creating a project etc ) have been done in the wiki https://wiki.blender.org/wiki/Building_Blender/Windows. Follow the rest in “edit code” “build” “debug code” etc.

1 Like

I followed these specific steps for building blender-

cd C:\blender-git
git clone git://git.blender.org/blender.git

cd C:\blender-git\blender
make update

cd C:\blender-git\blender
make

All this boild down to me having a normal looking blender release in the bin folder which means i can start it up even without VS. Now according to Microsoft in order to run the code you have to either " Start without debugging" or run with cmd the first option just ends up building blender once again which i canceled because i didn’t want to wait that long and the second option just gives “The application has failed to start because the side by side configuration is incorrect please see the application event log or use the command line sxstrace.exe tool for more detail” at least for the “MinSizeRel” build option, is this normal? The suggested solution for this seems to be to reinstall visual c redist i haven’t done that yet since i was hoping there was a way to avoid having to build at all since even MinSizeRel takes a long time to build.

So i guess my question is --> Do i have to build blender twice??

Only the Debug and ReleaseWithDebug builds have debugging symbols, IIRC.

Anyways, I think you’re doing the wrong thing by trying to set up an IDE right away. You can continue to use make to build your code after editing it, and at first all you’re gonna need to do is add print statements and read stuff. VS Code is more than enough for this. Setting up Visual Studio is something you should do once you’ve decided on a project (since after all, setting up VS seems to be a project of its own!).

Building and subsequent rebuilds doesn’t take a long time, and on Windows I think there’s even a rebuild batch command file in the build directory. On Linux, you just run make again, and it only builds what it needs to. I use the ninja build system because it is faster, make ninja, and I get a new Blender in less than a minute if I keep it updated. I think it takes about 17 minutes to make it fresh (at least, using make… haven’t timed a fresh make ninja).

Yes every configuration has different build flags and will at-least once require a full build, once completed you also have to also have to at-least once build the INSTALL project per configuration under CMakePredefinedTargets to copy all scripts and dll’s to the right place.

The wiki covered all of this.

1 Like

i tried make ninja lite and wow!! that is faaaast!! Finishes in like less than a minute even on my slow PC.
Thank you!
I have just one question though if you could help me there. How do you print out all these exotic non standard types?? printf doesn’t really work for these things. In python you just define a specific method in your object definition that tells python what to do if someone prints that object is there some equivalent in C? Also is there some kind of dir() or type() equivalent of python in C since those are absolutely indispensable for understanding how stuff works.

1 Like

Ooops! Sorry i didn’t read that part since it was under the Advanced Setup category.

A debugger can be very useful here. It has the advantage that you don’t need to change the code and can inspect anything anytime.

2 Likes