Skip to content
  1. Jun 21, 2012
  2. 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
  3. Nov 29, 2011
  4. Jul 30, 2011
    • Chandler Carruth's avatar
      Remove yet another buried and hidden implicit dependency: every single · b58053bb
      Chandler Carruth authored
      sub-library for the targets depended on the core target CodeGen library.
      This completely undermined the careful work to separate the those
      libraries, especially the MC-layer ones. This surfaced as circular
      dependencies when the libraries were built as shared libraries where
      CMake doesn't allow cycles.
      
      This should fix PR10537. I'll watch the bots to see if there is fallout
      on other platforms.
      
      llvm-svn: 136565
      b58053bb
    • Chandler Carruth's avatar
      Make my attempt to build up global deps variables actually utilize · 68b23116
      Chandler Carruth authored
      globally scoped constructs. Also, round-trip these dependencies through
      the LLVMConfig.cmake.in file thata is used by CMake-based clients of
      "installed" (or built) LLVM trees.
      
      llvm-svn: 136543
      68b23116
  5. Jul 29, 2011
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
  6. Jul 26, 2011
    • Chandler Carruth's avatar
      Clean up a pile of hacks in our CMake build relating to TableGen. · 97c069c1
      Chandler Carruth authored
      The first problem to fix is to stop creating synthetic *Table_gen
      targets next to all of the LLVM libraries. These had no real effect as
      CMake specifies that add_custom_command(OUTPUT ...) directives (what the
      'tablegen(...)' stuff expands to) are implicitly added as dependencies
      to all the rules in that CMakeLists.txt.
      
      These synthetic rules started to cause problems as we started more and
      more heavily using tablegen files from *subdirectories* of the one where
      they were generated. Within those directories, the set of tablegen
      outputs was still available and so these synthetic rules added them as
      dependencies of those subdirectories. However, they were no longer
      properly associated with the custom command to generate them. Most of
      the time this "just worked" because something would get to the parent
      directory first, and run tablegen there. Once run, the files existed and
      the build proceeded happily. However, as more and more subdirectories
      have started using this, the probability of this failing to happen has
      increased. Recently with the MC refactorings, it became quite common for
      me when touching a large enough number of targets.
      
      To add insult to injury, several of the backends *tried* to fix this by
      adding explicit dependencies back to the parent directory's tablegen
      rules, but those dependencies didn't work as expected -- they weren't
      forming a linear chain, they were adding another thread in the race.
      
      This patch removes these synthetic rules completely, and adds a much
      simpler function to declare explicitly that a collection of tablegen'ed
      files are referenced by other libraries. From that, we can add explicit
      dependencies from the smaller libraries (such as every architectures
      Desc library) on this and correctly form a linear sequence. All of the
      backends are updated to use it, sometimes replacing the existing attempt
      at adding a dependency, sometimes adding a previously missing dependency
      edge.
      
      Please let me know if this causes any problems, but it fixes a rather
      persistent and problematic source of build flakiness on our end.
      
      llvm-svn: 136023
      97c069c1
  7. Jul 25, 2011
  8. Apr 29, 2011
    • Nick Lewycky's avatar
      Rename profile_rt.so to libprofile_rt.so under configure+make (it already was · 61aed87a
      Nick Lewycky authored
      under cmake).
      
      Add libprofile_rt.a so that we can tell clang to link against it in --coverage
      mode. Also turn it on by default in cmake builds.
      
      Oscar, this touches a change you made for EXCLUDE_FROM_ALL support -- I think
      I've done the right thing, but please let me know (or fix and commit) if not!
      
      llvm-svn: 130470
      61aed87a
  9. Apr 26, 2011
  10. Apr 05, 2011
  11. Mar 29, 2011
    • Oscar Fuentes's avatar
      Fixed the build of Clang's unit tests on MinGW. Also removed some · 978e5284
      Oscar Fuentes authored
      unnecesary conditionals and introduced a new convenience function.
      
      The problem was that the list of libraries for Clang's unit tests was
      <clang libraries> <system libraries> <llvm libraries>. As the llvm
      libraries references symbols defined on the system libraries, those
      were reported as undefined.
      
      llvm-svn: 128484
      978e5284
  12. Mar 21, 2011
  13. Mar 12, 2011
  14. Feb 22, 2011
  15. Feb 20, 2011
  16. Feb 18, 2011
  17. Dec 22, 2010
  18. Dec 10, 2010
    • NAKAMURA Takumi's avatar
      Add dependency to "make check". · a8c1c3fe
      NAKAMURA Takumi authored
      cmake/modules/AddLLVM.cmake: Add empty "phony" target in add_llvm_loadable_module() even if loadable module were not supported.
      
      llvm-svn: 121455
      a8c1c3fe
  19. Oct 22, 2010
  20. Oct 14, 2010
  21. Sep 25, 2010
    • Oscar Fuentes's avatar
      Reverting "CMake: Don't include tools, unittets, or examples as · 46d8a930
      Oscar Fuentes authored
      available targets unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies
      LLVM_INCLUDE_X"
      
      It breaks the configuration phase when cmake is invoked without
      parameters, it is too complex for the purpose and introduces an
      incovenience for the user (as both LLVM_BUILD_X and LLVM_INCLUDE_X
      must set to OFF for not including X on the build)
      
      llvm-svn: 114795
      46d8a930
  22. Sep 24, 2010
  23. Sep 14, 2010
  24. Sep 11, 2010
  25. Sep 10, 2010
  26. Nov 23, 2009
  27. Nov 10, 2009
  28. Aug 16, 2009
  29. Aug 15, 2009
  30. Aug 14, 2009
  31. Aug 12, 2009
Loading