Opened 8 years ago

Closed 21 months ago

Last modified 4 months ago

#8724 closed enhancement (fixed)

Jamming components that rely upon OptionalBuildFeatures

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


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 (4)

comment:1 by bonefish, 8 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, 3 years 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, 21 months ago

Resolution: fixed
Status: newclosed

comment:4 by nielx, 4 months ago

Milestone: R1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.