I learned about USE_CSTD and USE_CXXSTD more recently. From what I
can guess, it makes sense to include those variables in ports when the
original authors have not yet setup passing that to the compiler and it
is needed for their current code standard or the porter is manually
providing the build instructions. I know some programs already track the
standard so that a cmake entry of
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
in games/warzone but USES=compiler:c++11-lib is set; I'd guess a porting
error of not updated or a typo, came with a patch October 7th so first
applied to v4.3.5, but maybe -lib and -lang have a different requirement
or it controls something different? Another example is audio/mumble
where both USES and USE_CXXSTD is defined where the cmake build system
has an entry for 14 as a dependency but before the recent update which
moved to cmake it was not set or defined in its make system and only
documented to the user for manually building.
Porters handbook '17.13.' (trailing dot added why?) mentions things
like USES=compiler:C++11-lib but I didn't find it clear when I should
use USES and/or USE_*. It was also not made clear when we need to
restate that in the ports tree to force proper build environment
dependencies as opposed to just passing a flag to the compiler.
While here, anyone mind pointing me in the direction of identifying
when compiler should be -lang vs -lib other than blind trial and error
or original author said so?