Jump to content

HDK 16.5 How to generate *.proto.h

Recommended Posts

Hi, I've not compiled an HDK plugin in a while.  I'm trying to compile HDK plugins for H16.6 now, and I notice that there's a new scheme to access parameters.  I can't find any documentation on how to create these new *.proto.h headers that are now required.  Could anyone point me to documentation on this, if it's available.  I'm using SCons to build my plugins.  Here's where I'm stuck:

SOP_Star.C:34:28: fatal error: SOP_Star.proto.h: No such file or directory
compilation terminated.
Compile failed

Thanks in advance for the pointers.

Share this post

Link to post
Share on other sites

CMake generates this .proto file at build time. This recently introduced feature allows you (optionally) decouple parameter interface code from the main code. Again, it's not required to do it that way, unless you have special intentions like supporting compiled blocks feature for example or adding a "verb" (see docs) to your plugin.

Now, if you absolutely necessary to use SCons, AND you have a code which uses this new paradigm (like SOP_Star.C) take a look at CMakeLists.txt file, you'll see houdini_generate_proto_headers  function, which lives in toolkit/cmake/HoudiniConfig.cmake file. Implement it in your SCons script if you want.



Edited by Stalkerx777

Share this post

Link to post
Share on other sites

Yup, thank you ... Houdini also ships with a python script that does this, generate_proto.py which is also called by the cmake build.  Thank you :)

Share this post

Link to post
Share on other sites


Just wanted to jump on this one, as I'm struggling to work out how to create multiparms via a DS file/string.

Does anyone have a working example to go from? So far I'm really enjoying the approach, but this has me proper stumped :/

Many thanks,


EDIT: Don't know what was going on before, but I obviously managed to do something squiffy... maybe I missed a '#'. Turns out the following is just fine :rolleyes:

	name	parameters
	multiparm {
		name	"locations"
		parm {
			name		"enable#"
			label		"Enable#"
			type		toggle
			default		{ "0" }
		parm {
			name		"pos#"
			label		"Position#"
			type		vector
			size		3
			default		{ "0" "0" "0" }


Edited by friedasparagus
I suck

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now