Opened 7 years ago

Closed 11 months ago

#8724 closed enhancement (fixed)

Jamming components that rely upon OptionalBuildFeatures

Reported by: mmadia Owned by: bonefish
Priority: normal Milestone:
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

with hrev44328, WebPositive is now built from source and relies upon the WebKit being added. That in turn relies upon WebPositive (the optional package, not application name) being added via AddOptionalHaikuImagePackages.

It would be nice to figure out a way such that jam -q WebPositive activates the WebKit OptionalBuildFeature.

Change History (3)

comment:1 by bonefish, 7 years ago

I wonder if it's worth the effort. If you build WebPositive often (e.g. because you work on it) it is not a big deal to enable the optional build feature in your UserBuildConfig.

To implement the feature is probably not that complicated. To implement it in an elegant way might be, though. A simple solution would be to check in build/jam/CommandLineArguments what targets are built and, if WebPositive is among them, enable the optional build feature. Given that the plan is to eventually outsource a lot more third party software, including libraries, this method will probably need a declaration file similar to OptionalPackageDependencies.

The method isn't elegant for at least two reasons: One, the declaration of the dependency is separate from the place where the dependency is used, i.e. it can easily get out of sync. Two, this only works, if the target is listed on the command line like that. Pseudo targets (e.g. "webpositive-with-add-ons") won't work, unless listed as well.

I guess the second issue cannot really be solved without modifying jam itself. The first one is at least a bit tricky.

comment:2 by waddlesplash, 21 months ago

There is already a way to do this: add a profile onto the command line that will pull in the build feature, e.g. jam -q @nightly-anyboot WebPositive. Good enough?

comment:3 by waddlesplash, 11 months ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.