USE_CSTD and USE_CXXSTD not discussed in porters handbook
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Sep 2023 00:17:04 UTC
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?