Skip to content
  • Michal Gorny's avatar
    [cmake] Canonicalize CMake booleans to 0/1 for lit interop · 9283f5b2
    Michal Gorny authored
    Canonicalize all CMake booleans to 0/1 before passing them to lit, to
    ensure that the Python side handles all of them consistently
    and correctly. 0/1 is a safe choice of values that trigger the same
    boolean interpretation in CMake, Python and C++.
    
    Furthermore, using them without quotes improves the chance Python will
    explicitly fail when an incorrect value (such as ON/OFF, TRUE/FALSE,
    YES/NO) is accidentally passed, rather than silently misinterpreting
    the value.
    
    This replaces a lot of different logics spread around lit site files,
    attempting to partially reproduce the boolean logic used in CMake
    and usually silently failing when an uncommon value was used instead.
    In fact, some of them were never working correctly since different
    values were assigned in CMake and checked in Python.
    
    The alternative solution could be to create a common parser for CMake
    booleans in lit and use it consistently throughout the site files.
    However, it does not seem like the best idea to create redundant
    implementation of the same logic and have to follow upstream if it ever
    is extended to handle more values.
    
    Differential Revision: https://reviews.llvm.org/D28294
    
    llvm-svn: 291284
    9283f5b2
Loading