Skip to content
  1. Nov 28, 2016
    • Daniil Fukalov's avatar
      [CMAKE] fix LLVM_OPTIMIZED_TABLEGEN for Visual Studio · fb501330
      Daniil Fukalov authored
      At the moment optimized tablegen is generated by LLVM_USE_HOST_TOOLS variable that is not set for Visual Sudio since LLVM_ENABLE_ASSERTIONS depends on CMAKE_BUILD_TYPE value that is not equal to "DEBUG" in case of Visual Studio soltion generation.
      
      Modified to do not depend on LLVM_ENABLE_ASSERTIONS value in VS and Xcode cases
      
      Reviewers: beanz
      
      Subscribers: RKSimon, llvm-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D27135
      
      llvm-svn: 288042
      fb501330
  2. Nov 18, 2016
    • Yichao Yu's avatar
      Add an option to disable libedit · 4497a28b
      Yichao Yu authored
      Summary: This should provide the function similar to `--disable-libedit` with the autotools build system, which seems to be missing from the commit (r200595) that adds this.
      
      Reviewers: pcc, beanz
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26550
      
      llvm-svn: 287293
      4497a28b
  3. Nov 17, 2016
    • Pavel Labath's avatar
      [cmake] Move LLVM_BUILD_STATIC check to an earlier point · 10849a81
      Pavel Labath authored
      Summary:
      The motivation for this is to enable correct detection of dlopen() on Android.
      Android does not provide a static version of libdl, so if we add the -static flag
      after performing the check, it will succeed even though subsequent link steps
      will fail. With this change we correctly detect the absence of libdl in a
      LLVM_BUILD_STATIC build on Android.
      
      The link itself still does not succeed because the code does not check the result
      of this check properly, but I plan to fix that in a separate change.
      
      Reviewers: beanz
      
      Subscribers: danalbert, mgorny, srhines, tberghammer, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26463
      
      llvm-svn: 287220
      10849a81
    • Chris Bieneman's avatar
      [CMake] [Darwin] Add support for debugging tablegen dependencies · 8036e0b2
      Chris Bieneman authored
      This patch adds an option to the build system LLVM_DEPENDENCY_DEBUGGING. Over time I plan to extend this to do more complex verifications, but the initial patch causes compile errors wherever there is missing a dependency on intrinsics_gen.
      
      Because intrinsics_gen is a compile-time dependency not a link-time dependency, everything that relies on the headers generated in intrinsics_gen needs an explicit dependency.
      
      llvm-svn: 287207
      8036e0b2
  4. Nov 09, 2016
  5. Nov 07, 2016
    • Mehdi Amini's avatar
      Add experimental support for unofficial monorepo-like directory layout · 1eed06a3
      Mehdi Amini authored
      Summary:
      This allows to have clang and llvm and the other subprojects
      side-by-side instead of nested. This can be used with the monorepo or
      multiple repos.
      
      It will help having a single set of sources checked out but allows to
      have a build directory with llvm and another one with llvm+clang.
      Basically it abstracts LLVM_EXTERNAL_xxxx_SOURCE_DIR making it more
      convenient by adopting a convention.
      
      Reviewers: bogner, beanz, jlebar
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26365
      
      llvm-svn: 286162
      1eed06a3
    • Mehdi Amini's avatar
      Revert "Add some facilities to work with a git monorepo (experimental setup)" · a09c7e7e
      Mehdi Amini authored
      This reverts commit r286123, accidentally commited while testing itself...
      
      llvm-svn: 286124
      a09c7e7e
    • Mehdi Amini's avatar
      Add some facilities to work with a git monorepo (experimental setup) · 7b9e9f28
      Mehdi Amini authored
      Summary:
      Some changes are made to cmake, especially the addition of a new
      LLVM_ENABLE_PROJECTS option that makes the build system aware of
      the monorepo directory structure.
      
      Also a new script is added in llvm/utils/git-svn/. When present in
      the $PATH, it enables a `git llvm` command. It is providing at this
      point only the ability to push from the git monorepo: `git llvm push`.
      It is intended to evolves with more features, for instance I plan on
      features like `git llvm show r284955` to help working with sequential
      revision numbers.
      The push feature is taken from Justin Lebar's script available here:
      https://github.com/jlebar/llvm-repo-tools/
      
      Reviewers: jlebar
      
      Subscribers: mgorny, modocache, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26334
      
      llvm-svn: 286123
      7b9e9f28
  6. Nov 02, 2016
  7. Nov 01, 2016
  8. Oct 24, 2016
    • Justin Bogner's avatar
      cmake: Rename installhdrs to install-llvm-headers and fix the dependencies · b6310994
      Justin Bogner authored
      The installhdrs target was inconsistently named and would behave
      differently depending on whether or not you ran a build first. This
      renames it to install-llvm-headers to match other target names and
      adds a dependency on intrinsics_gen so that it will always install the
      same set of things.
      
      llvm-svn: 285035
      b6310994
  9. Oct 19, 2016
    • Michal Gorny's avatar
      [cmake] Declare LLVM_CMAKE_PATH for use in subprojects · e22b7f5a
      Michal Gorny authored
      Declare the LLVM_CMAKE_PATH to the source directory location of CMake
      files, in order to make it possible to easily use them in subprojects.
      Such a variable is already declared in most of LLVM projects
      (and inconsistently mixed with direct source tree references), including
      Clang, LLDB, compiler-rt, libcxx... Declaring it inside main LLVM tree
      makes it possible to avoid having to declare fallback values or use
      conditionals in those projects.
      
      It should be noted that in some of the subprojects LLVM_CMAKE_PATH is
      used to reference generated LLVMConfig.cmake file. However, these
      references are conditional to stand-alone builds and explicitly
      including this file is unnecessary in combined builds.
      
      Differential Revision: https://reviews.llvm.org/D25724
      
      llvm-svn: 284581
      e22b7f5a
  10. Oct 07, 2016
  11. Sep 28, 2016
  12. Sep 27, 2016
    • Michal Gorny's avatar
      [cmake] Support overriding remaining HTML doc install directories · c496c502
      Michal Gorny authored
      Support overriding the Doxygen & OCamldoc install directories,
      and provide a more FHS-compliant defaults for both of them. This extends
      r282240 that added this override for Sphinx-built documentation.
      
      LLVM_INSTALL_DOXYGEN_HTML_DIR and LLVM_INSTALL_OCAMLDOC_HTML_DIR are
      added, to control the location where Doxygen-generated and
      OCamldoc-generated HTML docs are installed appropriately. They both
      specify CMake-style install paths, and therefore can either by relative
      to the install prefix or absolute.
      
      The new defaults are subdirectories of share/doc/llvm, and replace
      the previous directories of 'docs/html' and 'docs/ocaml/html' that
      resulted in creating invalid '/usr/docs' that furthermore lacked proper
      namespacing for the LLVM package. The new defaults are consistent with
      the ones used for Sphinx HTML documentation, differing only in the last
      component. Since the 'html' subdirectory is already used for Sphinx
      docs, the 'doxygen-html' and 'ocaml-html' directories are used instead.
      
      Differential Revision: https://reviews.llvm.org/D24935
      
      llvm-svn: 282536
      c496c502
    • Chris Bieneman's avatar
      Improve CMake output of host and target triple · 0775a232
      Chris Bieneman authored
      Summary:
      The previous output was confusing as it would output "Taget triple:
      x86_64-unknown-linux-gnu" even when LLVM_HOST_TRIPLE or
      LLVM_DEFAULT_TARGET_TRIPLE were set on the CMake command line
      
      Patch by: Alex Richardson!
      
      Reviewers: beanz
      
      Subscribers: Eugene.Zelenko
      
      Differential Revision: https://reviews.llvm.org/D17067
      
      llvm-svn: 282516
      0775a232
  13. Sep 06, 2016
  14. Sep 01, 2016
    • Chris Bieneman's avatar
      [CMake] Connecting check-all and test-depends targets correctly · 342134ed
      Chris Bieneman authored
      My previous attempt at this connected the sub-project check targets to the test-depends target instead of to the check-all target. That resulted in the tests running multiple times on bots that built "test-depends" and "check-all" in separate build invocations.
      
      llvm-svn: 280392
      342134ed
  15. Aug 25, 2016
  16. Aug 23, 2016
  17. Aug 18, 2016
    • Chris Bieneman's avatar
      [CMake] Silence message on multi-configuration generators · 69f289cf
      Chris Bieneman authored
      The Xcode and Visual Studio generators always log "-- No build type selected, default to Debug". This is because CMake doesn't initialize "CMAKE_CONFIGURATION_TYPES" until the generator's EnableLanguage call gets hit.
      
      The first place EnableLanguage gets hit in our configuration is in the project() call. Since CMAKE_BUILD_TYPE isn't used until after we call project() it is safe to just move this check down a bit.
      
      llvm-svn: 279110
      69f289cf
  18. Aug 04, 2016
  19. Aug 01, 2016
    • Sumanth Gundapaneni's avatar
      Build llvm with ccache if package is present · 9f4dc98e
      Sumanth Gundapaneni authored
      This patch has the following changes
      
      The CMake variable LLVM_CCACHE_BUILD is set to OFF by default.
      Set this to ON for a ccache enabled build
      
      CCACHE_CPP2 is required to compile the source file directly instead
      of compiling the preprocessed file. This will help WERROR is turned ON
      for a host clang compiler
      
      The below two options makes more sense in the context of a buildbot
      
      CCACHE_HASHDIR is required to maintain the separate cached data across
      builders. This will also help the debuggers to point to the correct source
      location
      
      CCACHE_SIZE is important in the perspective of buildbot to increase the
      limit on the amount of data to hold in cache for faster compilation
      
      CCACHE_DIR is used to save the cached data to a specific directory.
      
      llvm-svn: 277389
      9f4dc98e
  20. Jul 29, 2016
  21. Jul 26, 2016
    • Chris Bieneman's avatar
      [CMake] Support feeding DYLD_LIBRARY_PATH into archiver calls · f4a56a7d
      Chris Bieneman authored
      OS X 10.11 has a feature named System Integrity Protection. The goal of the feature is to make system binaries immutable (even as root). One part of this is that protected binaries do not receive DYLD_* environment variables because the kernel scrubs them before process launch.
      
      This causes problems for LTO bootstrap builds on Darwin that try to use the just-built libLTO with the host ar, ranlib, or libtool.
      
      This patch addresses two problems.
      
      (1) The tools themselves aren't protected binaries but the shim tools installed at / are, so we need to call xcrun -find to find libtool instead of using the one CMake finds.
      
      (2) Some build tools (ninja and make) use /bin/sh to invoke their subprocesses. Since /bin/sh is a system binary, the kernel scrubs the DYLD envars from their environment. To work around this we need to set the environment variables as part of the archiver commands, so the envars are set by the shell process instead of on the shell process.
      
      llvm-svn: 276710
      f4a56a7d
  22. Jul 23, 2016
    • Vedant Kumar's avatar
      [cmake] Use a sane default for LLVM_PROFILE_DATA_DIR · 401d031e
      Vedant Kumar authored
      It's been pointed out that arbitrarily spraying raw profiles into a
      build directory is insane. Doing this wastes a tremendous amount of
      space and is also very lossy, since the test harness tends to wipe away
      temporary sub-directories (which usually contain relevant profile data).
      
      The new default is a `profiles` directory inside of the build dir.
      
      llvm-svn: 276504
      401d031e
  23. Jul 21, 2016
    • Michael Gottesman's avatar
      [cmake] Move the including of utils/unittests under LLVM_INCLUDE_UTILS instead... · 66ddd15e
      Michael Gottesman authored
      [cmake] Move the including of utils/unittests under LLVM_INCLUDE_UTILS instead of LLVM_INCLUDE_TESTS.
      
      This does not change anything by default since LLVM_INCLUDE_UTILS is already set
      to TRUE by default. In addition, since LLVM_INCLUDE_TESTS => LLVM_INCLUDE_UTILS,
      the only way that this can cause changes is in the case where LLVM_INCLUDE_UTILS
      is set to TRUE, but LLVM_INCLUDE_TESTS is FALSE. In that case, building gtest is
      not a huge cost.
      
      The reason to do this is that without this change, one can not turn off
      LLVM_INCLUDE_TESTS in downstream projects that also use gtest for unittests. It
      also just in general makes more sense since LLVM_INCLUDE_UTILS gates FileCheck
      and other utilities that are along the lines of gtest.
      
      Additionally from talking with chandlerc, this was not done for any specific
      reason, so there is no reason not to do it and lots of benefit to doing it.
      
      llvm-svn: 276342
      66ddd15e
    • Quentin Colombet's avatar
      [CMake][GlobalISel] Turn LLVM_BUILD_GLOBAL_ISEL into an option. NFC. · c8df88c9
      Quentin Colombet authored
      Previously LLVM_BUILD_GLOBAL_ISEL was a boolean variable and although,
      this is strictly identical to an option, it did not convey the
      information that the user may set it. Options are here for that.
      
      llvm-svn: 276306
      c8df88c9
  24. Jul 20, 2016
  25. Jul 18, 2016
  26. Jul 10, 2016
    • Michael Gottesman's avatar
      [cmake] Create the LLVM_BUILD_UTILS option. · be5b7871
      Michael Gottesman authored
      This option is the equivalent option to LLVM_BUILD_TOOLS but for executables
      created via add_llvm_utility.
      
      This is a useful tool for improving compile time in situations where LLVM is
      used as a library and no testing tools are needed.
      
      It follows the exact same implemention model as LLVM_BUILD_TOOLS.
      
      Since the option is by default set to on, no behavior is changed unless one sets
      it from the command line to be false.
      
      llvm-svn: 275007
      be5b7871
  27. Jun 30, 2016
  28. Jun 24, 2016
    • Chris Bieneman's avatar
      [CMake] Add LLVM runtimes directory · 64adae59
      Chris Bieneman authored
      Summary:
      There are a few LLVM projects that produce runtime libraries. Ideally
      runtime libraries should be built differently than other projects,
      specifically they should be built using the just-built toolchain.
      
      There is support for building compiler-rt in this way from the clang
      build. Moving this logic into the LLVM build is interesting because it
      provides a simpler way to extend the just-built toolchain to include
      LLD and the LLVM object file tools.
      
      Once this functionality is better fleshed out and tested we’ll want to
      encapsulate it in a module that can be used for clang standalone
      builds, and we’ll want to make it the default way to build compiler-rt.
      
      With this patch applied there is no immediate change in the build.
      Moving compiler-rt out from llvm/projects into llvm/runtimes enables
      the functionality.
      
      This code has a few improvements over the method provided by
      LLVM_BUILD_EXTERNAL_COMPILER_RT. Specifically the sub-ninja command is
      always invoked, so changes to compiler-rt source files will get built
      properly, so this patch can be used for iterative development with
      just-built tools.
      
      This first patch only works with compiler-rt. Support for other
      runtime projects will be coming in follow-up patches.
      
      Reviewers: chandlerc, bogner
      
      Subscribers: kubabrecka, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D20992
      
      llvm-svn: 273620
      64adae59
  29. Jun 14, 2016
  30. Jun 09, 2016
Loading