Skip to content
  • Chandler Carruth's avatar
    Completely refactor the structuring of unittest CMake files to match the · 94d02518
    Chandler Carruth authored
    Makefiles, the CMake files in every other part of the LLVM tree, and
    sanity.
    
    This should also restore the output tree structure of all the unit
    tests, sorry for breaking that, and thanks for letting me know.
    
    The fundamental change is to put a CMakeLists.txt file in the unittest
    directory, with a single test binary produced from it. This has several
    advantages:
    
    - No more weird directory stripping in the unittest macro, allowing it
      to be used more readily in other projects.
    - No more directory prefixes on all the source files.
    - Allows correct and precise use of LLVM's per-directory dependency
      system.
    - Allows use of the checking logic for source files that have not been
      added to the CMake build. This uncovered a file being skipped with
      CMake in LLVM and one in Clang's unit tests.
    - Makes Specifying conditional compilation or other custom logic for JIT
      tests easier.
    
    It did require adding the concept of an explicit 'optional' source file
    to the CMake build so that the missing-file check can skip cases where
    the file is *supposed* to be missing. =]
    
    This is another chunk of refactoring the CMake build in order to make it
    usable for other clients like CompilerRT / ASan / TSan.
    
    Note that this is interdependent with a Clang CMake change.
    
    llvm-svn: 158909
    94d02518
Loading