SHAPE_DEPEND(1)

✨ NAME ✨

shape_depend β€” okay so this is the shapeTools RMS girlie whose whole job is figuring out your source-include dependencies πŸ’… (and yes, the manual page itself is called SHAPE_DEPEND(1), so now you know her full government name 🫢)


🌸 SYNOPSIS 🌸

shape depend [VERSIONS=<selection_rule>] [variants]

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea, bestie β˜•: the shape release management system needs, for each node system, a file literally named Dependencies β€” and that file has to list all the source-derived dependencies of the node components. Nobody wants to write that by hand, obviously πŸ™ˆ. So shape depend just... does it for you ✨. It automatically figures out those dependencies and creates a perfectly appropriate Dependencies file. And the format? It's giving regular Makefile target-dependents lines, except with no associated build action attached. Clean, minimal, iconic πŸ‘‘

Note: shape depend only works for development of C programs. It additionally requires a C compiler that supports the -M option (you know, the generate-Makefile-dependencies one). If that's not the case in your development project, you have to either rewrite the action associated with the depend target (it lives in $(SHAPELIBPATH)/stdtargets) or maintain the Dependencies files manually 😭 no cap, those are your only two options.

The VERSIONS macro defines the version selection rule to be used. Default is most_recent ⭐. Wanna know the other possible settings? Go peek at shape_stdrul(7) or the $(SHAPELIBPATH)/stdrules file. And yes, you can absolutely use your own self-defined version selection rules as a VERSIONS rule β€” main character energy, we love to see it πŸ’–.

Now, if your development environment contains variant definitions β€” especially variant definitions that modify the list of source components to be used during a build operation β€” you may also need to specify one or more variants to be set. The project-wide variant raster is defined in $(SHAPELIBPATH)/stdvar. So before you invoke shape depend, check that file πŸ‘€ and check the default variant settings in your Shapefile. Vibe check your config first, fr fr.


πŸ’€ INCONVENIENCES πŸ’€

Not everything is a slay, and we're being honest about it:

  • Regeneration of the Dependencies file due to structural changes of the node system has to be triggered manually. Shape RMS does not recognize such changes. Like, it's not gonna notice, bestie, you have to tell it πŸ™ˆ.
  • Variant specific Dependencies files β€” which you'd need when simultaneously developing structurally different variants β€” are not supported. In this case you have to run shape depend prior to each build action. Every. Single. Time. 😭

πŸŽ€ FILES πŸŽ€

  • $(SHAPELIBPATH)/stdrules
  • $(SHAPELIBPATH)/stdtargets
  • $(SHAPELIBPATH)/stdvar

🌈 SEE ALSO 🌈

  • shape_RMS (1)

And that's the whole page, babe πŸ’œ this one's from version 12.10.126 of the shapeTools crew β€” go forth, generate those dependencies, and remember: run it manually or it literally will not happen 🫢✨