Error when building soc-2019-bevel-profiles on windows

I tried building the soc-2019-bevel-profiles branch of blender by running

git checkout soc-2019-bevel-profiles
in the command line and I get these errors

error C2078: too many initializers [C:\Users\Eitan\Do
error C2078: too many initializers (compiling sourc
e file C:\Users\Eitan\Documents\blender-git\blender\source\blender\bmesh\intern\bmesh_opdefines.c) 

Hi! I’m the one working on the bevel profiles project. (For future reference, there’s a thread about it here)

While this builds on Linux where I’m working, and I’m not sure why it doesn’t looking at the line in bmesh_opdefines.c from your error, if there was an area it was going to fail, this would probably be it. I haven’t made the bevel tool -> bmesh operator transition work properly yet-- I’ve been testing with the bevel modifier.

Because I don’t have working visual results yet, I haven’t focused on getting all the builds working correctly yet, but I’m happy for your interest! I’ll let you know when I fix the tool (hopefully resolving this build issue). I’m hoping to have a few cases of the bevel operator working by the end of the week, so that will probably be when I look into it.

BMO_OP_MAX_SLOTS is set to 20, bmo_bevel_def has more than that.

Aah, that makes sense, but that’s unfortunate too, I might be running out of slots! I’ve heard that the way tools actually invoke operators is pretty messy. I haven’t figured out how I’m going to tackle getting the custom profile information through yet.

My fix is just increasing BMO_OP_MAX_SLOTS to 21.

Great! Thanks, I just committed! I wasn’t sure how to commit your change so I just did it myself, it’s pretty small anyway :P.

You may want to wait a few minutes before building though. I need to commit a change for reversing the sampling of the profile curve.

Yeah, I already had to increase the BMO_OP_MAX_SLOTS because of the last change I made to Bevel. The number of options it has clearly is larger than was ever anticipated by the BMesh Operator designer, by a long shot. Maybe there’s a better design that passes in a pointer to a structure of (some new struct) BevelOptions. But increasing MAX_SLOTS is not awful as there are not large numbers of BMO operators.