How do I properly use RNA_def_property() with the PROP_COLLECTION property type?

I’m trying to code the necessary components for use with bpy.types.UILayout.template_list() and right now I am trying to make a “collection”(I guess that’s what it’s called) that is supposed to contain tree filters structs for the Outliner. I am getting the following errors though:

30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(520): error C2065: 'SDNA_TYPE_MAX': undeclared identifier
26>Generating nl.mo
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(672): error C4013: 'SDNA_TYPE_FROM_STRUCT' undefined; assuming extern returning int
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(672): error C2275: 'IDProperty': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(89): note: see declaration of 'IDProperty'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(716): error C2275: 'IDProperty': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(89): note: see declaration of 'IDProperty'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(728): error C2275: 'IDOverrideStatic': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(217): note: see declaration of 'IDOverrideStatic'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(730): error C2275: 'IDOverrideStaticProperty': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(201): note: see declaration of 'IDOverrideStaticProperty'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(734): error C2275: 'IDOverrideStaticPropertyOperation': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(159): note: see declaration of 'IDOverrideStaticPropertyOperation'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(761): error C2275: 'PreviewImage': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_ID.h(333): note: see declaration of 'PreviewImage'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(776): error C2275: 'FModifier': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(73): note: see declaration of 'FModifier'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(806): error C2275: 'FCM_EnvelopeData': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(192): note: see declaration of 'FCM_EnvelopeData'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(830): error C2275: 'FCurve': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(601): note: see declaration of 'FCurve'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(834): error C2275: 'BezTriple': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_curve_types.h(136): note: see declaration of 'BezTriple'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(837): error C2275: 'FPoint': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(550): note: see declaration of 'FPoint'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(849): error C2275: 'ChannelDriver': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(503): note: see declaration of 'ChannelDriver'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(852): error C2275: 'DriverVar': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(407): note: see declaration of 'DriverVar'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(872): error C2275: 'bAction': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(665): note: see declaration of 'bAction'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(878): error C2275: 'bActionGroup': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(602): note: see declaration of 'bActionGroup'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(882): error C2275: 'TimeMarker': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_scene_types.h(844): note: see declaration of 'TimeMarker'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(894): error C2275: 'KeyingSet': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(950): note: see declaration of 'KeyingSet'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(899): error C2275: 'KS_Path': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(889): note: see declaration of 'KS_Path'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(912): error C2275: 'NlaStrip': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(730): note: see declaration of 'NlaStrip'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(930): error C2275: 'NlaTrack': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(830): note: see declaration of 'NlaTrack'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(942): error C2275: 'AnimData': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(1075): note: see declaration of 'AnimData'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(951): error C2275: 'AnimOverride': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_anim_types.h(1012): note: see declaration of 'AnimOverride'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(964): error C2275: 'CurveMapPoint': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_color_types.h(40): note: see declaration of 'CurveMapPoint'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(970): error C2275: 'CurveMapping': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_color_types.h(94): note: see declaration of 'CurveMapping'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(999): error C2275: 'bNodeSocket': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(146): note: see declaration of 'bNodeSocket'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1022): error C2275: 'bNodeSocket': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(146): note: see declaration of 'bNodeSocket'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1046): error C2275: 'bNode': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(293): note: see declaration of 'bNode'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1060): error C2275: 'bNodeLink': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(384): note: see declaration of 'bNodeLink'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1128): error C2275: 'NodeImageMultiFileSocket': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(745): note: see declaration of 'NodeImageMultiFileSocket'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1134): error C2275: 'NodeImageLayer': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(683): note: see declaration of 'NodeImageLayer'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1140): error C2275: 'bNodeLink': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_node_types.h(384): note: see declaration of 'bNodeLink'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1224): error C2275: 'wmKeyMapItem': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_windowmanager_types.h(343): note: see declaration of 'wmKeyMapItem'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1232): error C2275: 'UserDef': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(764): note: see declaration of 'UserDef'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1235): error C2275: 'bTheme': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(451): note: see declaration of 'bTheme'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1239): error C2275: 'wmKeyMap': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_windowmanager_types.h(399): note: see declaration of 'wmKeyMap'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1242): error C2275: 'wmKeyMapDiffItem': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_windowmanager_types.h(351): note: see declaration of 'wmKeyMapDiffItem'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1257): error C2275: 'wmKeyConfigPref': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_windowmanager_types.h(425): note: see declaration of 'wmKeyConfigPref'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1264): error C2275: 'bUserMenu': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(478): note: see declaration of 'bUserMenu'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1268): error C2275: 'bUserMenuItem_Op': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(494): note: see declaration of 'bUserMenuItem_Op'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1275): error C2275: 'bUserMenuItem_Menu': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(499): note: see declaration of 'bUserMenuItem_Menu'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1279): error C2275: 'bUserMenuItem_Prop': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(507): note: see declaration of 'bUserMenuItem_Prop'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1282): error C2275: 'bUserMenuItem': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(486): note: see declaration of 'bUserMenuItem'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1288): error C2275: 'bAddon': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(461): note: see declaration of 'bAddon'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1295): error C2275: 'bPathCompare': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(469): note: see declaration of 'bPathCompare'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1299): error C2275: 'uiStyle': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_userdef_types.h(121): note: see declaration of 'uiStyle'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1307): error C2275: 'BoidState': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(171): note: see declaration of 'BoidState'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1313): error C2275: 'BoidRuleGoalAvoid': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(80): note: see declaration of 'BoidRuleGoalAvoid'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1316): error C2275: 'BoidRuleAvoidCollision': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(87): note: see declaration of 'BoidRuleAvoidCollision'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1319): error C2275: 'BoidRuleFollowLeader': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(95): note: see declaration of 'BoidRuleFollowLeader'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1322): error C2275: 'BoidRuleAverageSpeed': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(99): note: see declaration of 'BoidRuleAverageSpeed'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1325): error C2275: 'BoidRuleFight': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(103): note: see declaration of 'BoidRuleFight'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1328): error C2275: 'BoidRule': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(68): note: see declaration of 'BoidRule'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1361): error C2275: 'PointCache': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(289): note: see declaration of 'PointCache'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1369): error C2275: 'PTCacheMem': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(228): note: see declaration of 'PTCacheMem'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1386): error C2275: 'PTCacheExtra': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(215): note: see declaration of 'PTCacheExtra'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1398): error C2275: 'ParticleSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(301): note: see declaration of 'ParticleSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1404): error C2275: 'PartDeflect': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(172): note: see declaration of 'PartDeflect'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1405): error C2275: 'PartDeflect': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(172): note: see declaration of 'PartDeflect'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1406): error C2275: 'EffectorWeights': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(183): note: see declaration of 'EffectorWeights'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1433): error C2275: 'ParticleDupliWeight': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(100): note: see declaration of 'ParticleDupliWeight'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1437): error C2275: 'BoidSettings': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_boid_types.h(216): note: see declaration of 'BoidSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1444): error C2275: 'SPHFluidSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(163): note: see declaration of 'SPHFluidSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1449): error C2275: 'MTex': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_texture_types.h(86): note: see declaration of 'MTex'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1462): error C2275: 'ParticleSystem': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(403): note: see declaration of 'ParticleSystem'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1465): error C2275: 'ParticleData': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(150): note: see declaration of 'ParticleData'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1471): error C2275: 'HairKey': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(44): note: see declaration of 'HairKey'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1478): error C2275: 'BoidParticle': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(65): note: see declaration of 'BoidParticle'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1485): error C2275: 'ParticleSpring': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(70): note: see declaration of 'ParticleSpring'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1490): error C2275: 'ParticleTarget': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(91): note: see declaration of 'ParticleTarget'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1494): error C2275: 'ChildParticle': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_particle_types.h(83): note: see declaration of 'ChildParticle'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1498): error C2275: 'ClothModifierData': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_modifier_types.h(740): note: see declaration of 'ClothModifierData'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1499): error C2275: 'ClothSimSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_cloth_types.h(150): note: see declaration of 'ClothSimSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1500): error C2275: 'ClothCollSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_cloth_types.h(184): note: see declaration of 'ClothCollSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1515): error C2275: 'bMotionPath': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(90): note: see declaration of 'bMotionPath'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1518): error C2275: 'bMotionPathVert': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(53): note: see declaration of 'bMotionPathVert'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1542): error C2275: 'bConstraintTarget': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_constraint_types.h(112): note: see declaration of 'bConstraintTarget'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1558): error C2275: 'bConstraintTarget': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_constraint_types.h(112): note: see declaration of 'bConstraintTarget'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1576): error C2275: 'bConstraint': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_constraint_types.h(81): note: see declaration of 'bConstraint'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1609): error C2275: 'bPoseChannel': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(336): note: see declaration of 'bPoseChannel'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1614): error C2275: 'bActionGroup': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(602): note: see declaration of 'bActionGroup'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1626): error C2275: 'bPose': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_action_types.h(493): note: see declaration of 'bPose'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1633): error C2275: 'bDeformGroup': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_object_types.h(63): note: see declaration of 'bDeformGroup'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1640): error C2275: 'bFaceMap': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_object_types.h(72): note: see declaration of 'bFaceMap'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1672): error C2275: 'ClothSimSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_cloth_types.h(150): note: see declaration of 'ClothSimSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1673): error C2275: 'ClothCollSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_cloth_types.h(184): note: see declaration of 'ClothCollSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1674): error C2275: 'EffectorWeights': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(183): note: see declaration of 'EffectorWeights'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1681): error C2275: 'SmokeDomainSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_smoke_types.h(259): note: see declaration of 'SmokeDomainSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1694): error C2275: 'ColorBand': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_texture_types.h(112): note: see declaration of 'ColorBand'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1702): error C2275: 'EffectorWeights': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(183): note: see declaration of 'EffectorWeights'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1706): error C2275: 'SmokeFlowSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_smoke_types.h(330): note: see declaration of 'SmokeFlowSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1709): error C2275: 'SmokeCollSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_smoke_types.h(346): note: see declaration of 'SmokeCollSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1715): error C2065: 'FluidsimSettings': undeclared identifier
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1722): error C2275: 'DynamicPaintCanvasSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_dynamicpaint_types.h(181): note: see declaration of 'DynamicPaintCanvasSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1726): error C2275: 'DynamicPaintSurface': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_dynamicpaint_types.h(154): note: see declaration of 'DynamicPaintSurface'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1732): error C2275: 'EffectorWeights': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_object_force_types.h(183): note: see declaration of 'EffectorWeights'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1736): error C2275: 'DynamicPaintBrushSettings': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_dynamicpaint_types.h(276): note: see declaration of 'DynamicPaintBrushSettings'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1737): error C2275: 'ColorBand': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_texture_types.h(112): note: see declaration of 'ColorBand'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1738): error C2275: 'ColorBand': illegal use of this type as an expression
30>c:\blendersrc\blender\source\blender\makesdna\DNA_texture_types.h(112): note: see declaration of 'ColorBand'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1756): error C2275: 'MDefInfluence': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_modifier_types.h(814): note: see declaration of 'MDefInfluence'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1760): error C2275: 'MDefCell': illegal use of this type as an expression
30>C:\BlenderSrc\blender\source\blender\makesdna\DNA_modifier_types.h(819): note: see declaration of 'MDefCell'
30>C:\BlenderSrc\blender\source\blender\blenloader\intern\writefile.c(1760): fatal error C1003: error count exceeds 100; stopping compilation
30>Done building project "bf_blenloader.vcxproj" -- FAILED.

Here is the code that I’m using so far: https://pastebin.com/2EBKBtje
.
.

Question: How do I properly use RNA_def_property() with the PROP_COLLECTION property type (i.e. How do I create a collection)?

Question: Can you tell me a step by step guide to make the necessary components for use with bpy.types.UILayout.template_list()

The compile errors are unrelated to RNA, more likely coming from an error in the DNA header files.

ListBase *tree_filter_tree; should probably not be a pointer.

For how to setup a collection for lists, it’s easiest to find a similar case and see how that works. For example rna_def_render_views.

1 Like

Do you think alignment in SpaceOutliner or TreeFilterElement, which is in a DNA_*.h file, would cause these errors?

I saw no alignment error in VS though.

Normally if there is an alignment issue it should tell you where it is. It may tell you only once, if you do an edit the DNA header and compile it should show up somewhere.

Thanks for the rna_def_render_views recommendation. I think that looks like a very nice example.

I’ve changed ListBase *tree_filter_tree; to a non pointer like you said, AND I wrapped my DNA_outliner_filter_types.h file in

#ifdef __cplusplus
extern "C" {
#endif
. . .
#ifdef __cplusplus
}
#endif

I seem to have coded all the essential aspects of your collection example, and I’m still getting errors.

Also, just to reduce any possible source for errors, I reduced TreeFilterElement down to almost nothing, and I’m getting a new set of errors.

typedef struct TreeFilterElement {
	struct TreeFilterElement *next, *prev;
} TreeFilterElement;

Would a lack of coding rna_pointer_inherit_refine cause build errors ?

rna_pointer_inherit_refine(ptr, &RNA_TreeFilterElement, *);

Here is a list of the new errors:

55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_device.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_device.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_device.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_device.cpp)
55>blender_object.cpp
54>bf_imbuf.vcxproj -> C:\BlenderSrc\build_windows_Full_x64_vc15_Release\lib\Debug\bf_imbuf.lib
56>------ Build started: Project: bf_intern_libmv, Configuration: Debug x64 ------
53>bf_gpu.vcxproj -> C:\BlenderSrc\build_windows_Full_x64_vc15_Release\lib\Debug\bf_gpu.lib
57>------ Build started: Project: bf_intern_opensubdiv, Configuration: Debug x64 ------
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_camera.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_camera.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_camera.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_camera.cpp)
55>blender_object_cull.cpp
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_curves.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_curves.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_mesh.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_mesh.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_curves.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_mesh.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_curves.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_mesh.cpp)
55>blender_particles.cpp
55>blender_python.cpp
56>tracksN.cc
56>predict_tracks.cc
56>aligned_malloc.cc
56>array_nd.cc
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_python.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_python.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_python.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_python.cpp)
55>blender_session.cpp
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object.cpp)
55>blender_shader.cpp
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object_cull.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object_cull.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object_cull.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_object_cull.cpp)
55>blender_sync.cpp
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_particles.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_particles.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_particles.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_particles.cpp)
55>blender_texture.cpp
57>opensubdiv_converter_factory.cc
57>opensubdiv_evaluator.cc
57>opensubdiv_evaluator_internal.cc
57>opensubdiv_gl_mesh.cc
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_texture.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_texture.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_texture.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_texture.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_shader.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_shader.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_shader.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_shader.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_session.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_session.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_session.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_session.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2065: 'TreeFilterElement': undeclared identifier (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_sync.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionIterator': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_sync.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32835): error C2923: 'BL::CollectionRef': 'TreeFilterElement' is not a valid template type argument for parameter 'T' (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_sync.cpp)
55>C:\BlenderSrc\build_windows_Full_x64_vc15_Release\source\blender\makesrna\intern\RNA_blender_cpp.h(32736): fatal error C1903: unable to recover from previous error(s); stopping compilation (compiling source file C:\BlenderSrc\blender\intern\cycles\blender\blender_sync.cpp)
57>opensubdiv_gl_mesh_draw.cc
57>opensubdiv_gl_mesh_fvar.cc
57>opensubdiv_gl_mesh_internal.cc
57>opensubdiv_topology_refiner.cc
57>opensubdiv_topology_refiner_internal.cc
57>opensubdiv_util.cc
57>gpu_shader_opensubdiv_vertex.glsl.c
57>gpu_shader_opensubdiv_geometry.glsl.c
57>gpu_shader_opensubdiv_fragment.glsl.c
55>Done building project "bf_intern_cycles.vcxproj" -- FAILED.


I went ahead and got a fresh copy of Blender and I only coded the very most essential elements for a collection - which is made using RNA_def_property(). I did, however entirely base my ListBase element(i.e. TreeFilterElement ) from struct SceneRenderView because that struct compiles without errors. Also, I put struct TreeFilterElement and the corresponding ListBase tree_filter in the exact same file so I could get a bare bones .patch file and reduce possible sources for the errors.

I am still getting the exact same errors as my last post - even with a fresh copy of Blender.

Question: When looking at the bare bones code below, what else should be done to make a collection that compiles without errors ?

https://pastebin.com/Wz5kkCcK

Looks like you’re defining this extern but not supply an actual instance of it elsewhere.

extern StructRNA RNA_TreeFilterElement;
1 Like

I thought that my struct TreeFilterElement definition in DNA_space_types.h was the definition?

I haven’t seen any other references for other StructRNA RNA_* in the git logs to think otherwise. What should I define as an instance for RNA_TreeFilterElement ?

No idea, this rna/dna stuff may as well be magic to me, I do know a thing or two about building things, and it’s giving compiler errors cause the instance is missing, why? who makes it? no idea, but it’s missing.

Well, to be honest, I never understood why I couldn’t find any instances of StructRNA RNA_* - so maybe I just need to look a little harder.

Your’s is a good possible explanation of the problem so I guess that’s how I’ll try to tackle it until I find out otherwise.

Thanks

it’s the only error i have on a lite build (less code to build, less noise in the actual errors)

bf_rna.lib(rna_space_gen.obj) : error LNK2001: unresolved external symbol RNA_TreeFilterElement
K:\BlenderGit\lite\bin\Debug\blender.exe : fatal error LNK1120: 1 unresolved externals
1 Like

Well, now that I think of it, I think the definition is probably supposed to be auto coded using makesrna.exe to file RNA_blender_cpp.h. I’m going to check again to make sure that’s how things actually work though.

I had looked and couldn’t find it in RNA_blender_cpp.h- so something is probably messing up before then. BUT your input is definitely useful and appreciated.

Thanks

You need to define the TreeFilterElement type in RNA before you can have pointer property with that type.

srna = RNA_def_struct(brna, "TreeFilterElement", NULL)
... code to define all the properties of this type ...

Documentation on how RNA works is here:
https://archive.blender.org/wiki/index.php/Dev:2.5/Source/Architecture/RNA/

1 Like

I haven’t tried your code out yet because I’m not at my computer, but I’m sure that’s the exact answer. I probably should have realized the answer: don’t know why I didn’t.

Also, I looked at the rna_def_render_views example through git blame and logs and I don’t remember seeing that. Guess I didn’t look hard enough.

THANKS again buddy.

UPDATE: My Blender now builds without error.