OSDN Git Service

Completely refactor the structuring of unittest CMake files to match the
authorChandler Carruth <chandlerc@gmail.com>
Thu, 21 Jun 2012 09:51:26 +0000 (09:51 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 21 Jun 2012 09:51:26 +0000 (09:51 +0000)
commit7c888eee47a5ba925ddc91c837302a7c2a435e5c
treebac47cfa5fed2f636a55853b7586f4154616a030
parent7060221ae256ded2b7bbfec60a2c9bdc71426ff2
Completely refactor the structuring of unittest CMake files to match the
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158909 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
cmake/modules/AddLLVM.cmake
cmake/modules/LLVMProcessSources.cmake
unittests/ADT/CMakeLists.txt [new file with mode: 0644]
unittests/Analysis/CMakeLists.txt [new file with mode: 0644]
unittests/Bitcode/CMakeLists.txt [new file with mode: 0644]
unittests/CMakeLists.txt
unittests/ExecutionEngine/CMakeLists.txt [new file with mode: 0644]
unittests/ExecutionEngine/JIT/CMakeLists.txt [new file with mode: 0644]
unittests/Support/CMakeLists.txt [new file with mode: 0644]
unittests/Transforms/CMakeLists.txt [new file with mode: 0644]
unittests/Transforms/Utils/CMakeLists.txt [new file with mode: 0644]
unittests/VMCore/CMakeLists.txt [new file with mode: 0644]