On Tue, Aug 30, 2016 at 8:26 AM, Steven Watanabe
On 08/29/2016 09:31 AM, Lorenzo Caminiti wrote:
When I use bjam the following will compile my code with combinations of MSVC, GCC, and CLang for both shared and static linking:
$ bjam toolset=msvc,gcc,clang link=shared,static # (1)
Is there a way to define a variant, target, or something else in the Jamfiles so that I can shortcut the above by typing just the variant target at the command line:
$ bjam all_toolset_link_combinations # equivalent to (1) above
I am asking this just for convenience because I have a feature like toolset but with 30+ values so it'd be nice to shortcut it to a single target on the bjam command line.
Use an alias target with the default-build set to your combination. (This is how --build-type=complete at the root used to be implemented.)
I was not able to use alias here... let me show what I tried. In my Jamfile I have a feature defined more or less like this: feature.feature x : a b c : composite propagated link-incompatible ; feature.compose <x>a : <define>MACRO_A ; feature.compose <x>b : <define>MACRO_B ; feature.compose <x>c : <define>MACRO_C ; So the following will build with feature x equal a, b, and then c: $ bjam x=a,b,c Now, I'd like to shortcut the above to just one target named "all_x": $ bjam all_x If I try to do that in the Jamfile using: alias all_x : a b c ; I get these errors: error: Unable to find file or target named error: 'a' If I try instead: alias all_x : : <x>a <x>b <x>c ; I also get errors: error: explicitly-specified values of non-free feature <x> conflict error: existing values: a b c error: value from expanding <x>b : b Can such an "all_x" target be defined using alias or some other BJam construct? Thank you. --Lorenzo