Skip to content
  1. Jun 21, 2012
    • 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
    • Chandler Carruth's avatar
      Factor the logic for setting up a GoogleTest unit test executable into · a5d42f83
      Chandler Carruth authored
      a helper function in CMake. This will allow us to share all of this
      logic with Clang, and eventually CompilerRT.
      
      llvm-svn: 158896
      a5d42f83
    • Chandler Carruth's avatar
      Remove one of the LLVM-specific CMake hacks in favor of standard CMake · e530d2ba
      Chandler Carruth authored
      facilities.
      
      This was only used in one place in LLVM, and was used pervasively (but
      with different code!) in Clang. It has no advantages over the standard
      CMake facilities and in some cases disadvantages.
      
      llvm-svn: 158889
      e530d2ba
  2. Jun 17, 2012
  3. Jun 08, 2012
  4. Jun 07, 2012
  5. May 23, 2012
  6. May 08, 2012
  7. May 04, 2012
  8. Apr 26, 2012
    • Michael J. Spencer's avatar
      [CMake] Restructure how Clang, Polly and other external projects get included. · e734f541
      Michael J. Spencer authored
      While making lld build under the tools directory I decided to refactor how this
      works.
      
      There is now a macro, add_llvm_external_project, which takes the name of the
      expected subdirectory. This sets up two CMake options.
      
       * LLVM_EXTERNAL_${NAME}_SOURCE_DIR
           This is the path to the source. It defaults to
           ${CMAKE_CURRENT_SOURCE_DIR}/${name}.
       * LLVM_EXTERNAL_${NAME}_BUILD
           Enable and disable building the tool as part of LLVM.
      
      I chose LLVM_EXTERNAL_${NAME} as a prefix so they all show up together in the
      GUI.
      
      llvm-svn: 155654
      e734f541
  9. Apr 21, 2012
  10. Mar 01, 2012
  11. Feb 29, 2012
  12. Feb 28, 2012
  13. Feb 13, 2012
    • Dylan Noblesmith's avatar
      add LLVM_VERSION_MAJOR and _MINOR defines · c6c7a581
      Dylan Noblesmith authored
      This is useful for clients that want to maintain compatibility
      across multiple releases of LLVM. Currently users like Klee and
      Mesa all have to roll their own 'parse llvm-config --version
      output and generate defines' solution.
      
      Also reuse the new macros so that version information is less
      redundant/likely to fall out of sync again in the future.
      
      llvm-svn: 150405
      c6c7a581
  14. Jan 30, 2012
  15. Jan 25, 2012
  16. Jan 24, 2012
  17. Jan 20, 2012
  18. Dec 16, 2011
  19. Dec 12, 2011
  20. Dec 10, 2011
    • Chandler Carruth's avatar
      Use a simpler and more reliable command for converting from HEAD to · 29dad49c
      Chandler Carruth authored
      commit-ish. Funny thing, they have a command designed for this. ;]
      
      llvm-svn: 146325
      29dad49c
    • Chandler Carruth's avatar
      Teach the VCS detection to set some root-level variables with the raw · 7514da90
      Chandler Carruth authored
      revision and git commit data extracted. This will be used in the Clang
      CMake build to avoid trying to re-detect the information.
      
      llvm-svn: 146324
      7514da90
    • Chandler Carruth's avatar
      At the request of Michael Spencer, make the VCS version detection logic · 667f217a
      Chandler Carruth authored
      in CMake a bit more handy. Previously we would get such charming
      versions as the following for revision NNNN and commit-ish XXXXX:
        3.1svnsvn-rNNNN
        3.1svngit-svn-rNNNN
        3.1svngit-svn-XXXXX
      
      The mechanism selecting betwene the latter two was particularly odd, and
      didn't work with all of the ways git-svn repos are set up apparently. It
      also misses an important point -- both the revision *and* the git commit
      might be relevant when working on a local branch some distance from
      mainline. The new logic does several things:
      
      1) It strips the redundant initial 'svn'.
      2) It always looks for a git-svn revision number base, and when found
         includes it in the version.
      3) If the git commit-ish for the current HEAD is not exactly that
         revision number, it is also included.
      
      The resulting strings should roughly be:
        3.1svn-rNNNN
        3.1git-svn-rNNNN
        3.1git-svn-rNNNN-XXXXX
      
      Suggestions on formatting etc always welcome. =] I've only looked at the
      LLVM version string here, not Clang's (yet).
      
      Note that the commit-ish reported is *not* terribly accurate. It updates
      when 'cmake' is run, not when the binary is built. Still, it may be
      better than nothing, especially if people have fairly long-lived git
      repos and branches. This is not a new limitation, just didn't want
      anyone to be surprised.
      
      llvm-svn: 146323
      667f217a
  21. Nov 29, 2011
  22. Nov 07, 2011
  23. Nov 04, 2011
  24. Nov 02, 2011
    • Chandler Carruth's avatar
      Fix a typo noticed by Peter Collingbourne. No one depends on this · 3198cc73
      Chandler Carruth authored
      working today, but it shouldn't corrupt state for some poor soul to
      debug later.
      
      llvm-svn: 143545
      3198cc73
    • Chandler Carruth's avatar
      The TableGen parts of the CMake build are seriously broken. This fixes · 39bf89b3
      Chandler Carruth authored
      one aspect of them by having them use the (annoying, if not broken)
      proper library dependency model for adding the LLVMTableGen library as
      a dependency. This could manifest as a link order issue in the presence
      of separate LLVM / Clang source builds with CMake and a linker that
      really cares about such things.
      
      Also, add the Support dependency to llvm-tblgen itself so that it
      doesn't rely on TableGen's transitive Support dependency. A parallel
      change for clang-tblgen will be forthcoming.
      
      llvm-svn: 143531
      39bf89b3
  25. Oct 11, 2011
  26. Oct 06, 2011
  27. Sep 19, 2011
  28. Sep 05, 2011
Loading