Skip to content

CxxDialect SYCL Fixups

Remove self.<lang>dialect as it is confusingly set in favor of adding a 'propogateToPackages' member to the cxxDialectRange attribute.

Thus any packages looking to query a compilers capability should do the following:

language           = 'sycl' # language is not case-sensitive
languageDialect    = self.compilers.cxxDialectRange[language]
maxLanguageDialect = languageDialect.max # e.g. 'C++14'

if maxLanguageDialect[-2:] < '17':
  # handle this

If self.compilers.cxxDialectRange[language].propagateToPackages is True then all packages should ensure the use of the max flag, and raise an error if they are unable to.

We now also set CMAKE_CXX_STANDARD for all CMake packages unless the user specifically requests no flag at all. Previously we would not set it if we auto-detected the flag.

TODO:

  • Document that packages should include a self.minCxxVersion or self.maxCxxVersion in their __init__() rather than try and detect this themselves.
  • Possibly remove the langauge specific dialect checks
Edited by Jacob Faibussowitsch

Merge request reports