Skip to content
  1. Mar 18, 2015
    • Chris Bieneman's avatar
      Generate targets for each lit suite. · 86ee1515
      Chris Bieneman authored
      Summary:
      This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>.
      
      For example:
      check-llvm-unit - Runs the LLVM unit tests
      check-llvm-codegen-arm - Runs the ARM codeine tests
      
      Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability.
      
      Reviewers: chandlerc
      
      Subscribers: aemerson, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8380
      
      llvm-svn: 232671
      86ee1515
    • Reid Kleckner's avatar
      CMake: Disable ENABLE_EXPORTS for executables with MSVC · 3e8c445c
      Reid Kleckner authored
      The MSVC linker won't produce a .lib file for an executable that doesn't
      export anything, and LLVM doesn't maintain dllexport annotations or .def
      files listing all C++ symbols. It also doesn't support exporting all
      symbols, like binutils ld.
      
      CMake 3.2 changed the Ninja generator to list both the .exe and .lib
      files as outputs of executable build targets. Ninja would always re-link
      executables with ENABLE_EXPORTS because the .lib output file was not
      present, and therefore the target was out of date.
      
      llvm-svn: 232662
      3e8c445c
  2. Mar 10, 2015
  3. Mar 07, 2015
  4. Feb 27, 2015
  5. Feb 25, 2015
    • Zachary Turner's avatar
      [CMake] Set policy CMP0051 to OLD globally. · b7e41581
      Zachary Turner authored
      When you use generator expressions in a library sources list,
      and then later access the SOURCES property, the OLD behavior
      (CMake 3.0 and earlier) would not include these expressions in
      the SOURCES property.  The NEW behavior (starting in CMake 3.1)
      is that they do include the generator expressions in the SOURCES
      property.
      
      Differential Revision: http://reviews.llvm.org/D7870
      Reviewed By: Chris Bieneman
      
      llvm-svn: 230396
      b7e41581
  6. Feb 24, 2015
  7. Feb 23, 2015
  8. Feb 20, 2015
  9. Feb 18, 2015
  10. Feb 15, 2015
  11. Feb 14, 2015
  12. Feb 09, 2015
  13. Feb 03, 2015
  14. Jan 14, 2015
  15. Dec 29, 2014
    • Chandler Carruth's avatar
      [py3] Teach the CMake build to reject Python versions older than 2.7. · d86ab891
      Chandler Carruth authored
      Continue to require Python 2 however as recent experiments suggest
      LLDB's build requires it.
      
      llvm-svn: 224948
      d86ab891
    • Chandler Carruth's avatar
      [cmake] Start making LLVM_LIBDIR_SUFFIX effective by adding it to · a78e24e5
      Chandler Carruth authored
      *numerous* places where it was missing in the CMake build. The primary
      change here is that the suffix is now actually used for all of the lib
      directories in the LLVM project's CMake. The various subprojects still
      need similar treatment.
      
      This is the first of a series of commits to try to make LLVM's cmake
      effective in a multilib Linux installation. I don't think many people
      are seriously using this variable so I'm hoping the fallout will be
      minimal. A somewhat unfortunate consequence of the nature of these
      commits is that until I land all of them, they will in part make the
      brokenness of our multilib support more apparant. At the end, things
      should actually work.
      
      llvm-svn: 224919
      a78e24e5
  16. Dec 09, 2014
    • Chris Bieneman's avatar
      Adding a new option to CMake to disable C++ atexit on llvm-shlib. · 5d388e11
      Chris Bieneman authored
      Summary:
      This is desirable for WebKit and other clients of the llvm-shlib because C++ exit time destructors have a tendency to crash when invoked from multi-threaded applications.
      
      Ideally this option will be temporary, because the ideal fix is to just not have exit time destructors.
      
      Reviewers: chapuni, ributzka
      
      Reviewed By: ributzka
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D6572
      
      llvm-svn: 223805
      5d388e11
  17. Dec 01, 2014
  18. Nov 19, 2014
  19. Nov 17, 2014
  20. Nov 07, 2014
    • Rafael Espindola's avatar
      Pass PRIVATE to target_link_libraries if using shared libraries. · f9dcf902
      Rafael Espindola authored
      A shared library (unlike a .a), has its dependencies recorded in the library and
      we can pass PRIVATE to target_link_libraries.
      
      This patch then removes some bogus dependencies when using
      BUILD_SHARED_LIBS=ON. For example, we go from
      
      build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
      CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
      || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
      lib/libLLVMCore.so lib/libLLVMBitReader.so
      lib/libLLVMTransformUtils.so lib/libLLVMInstCombine.so
      lib/libLLVMScalarOpts.so lib/libLLVMipa.so lib/libLLVMAnalysis.so
      lib/libLLVMMCParser.so lib/libLLVMMC.so lib/libLLVMObject.so
      lib/libLLVMTarget.so lib/libLLVMProfileData.so
      
      to
      
      build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
      CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
      || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
      lib/libLLVMCore.so lib/libLLVMTransformUtils.so
      lib/libLLVMScalarOpts.so lib/libLLVMAnalysis.so lib/libLLVMMC.so
      lib/libLLVMTarget.so
      
      In fact, build.ninja goes from 5231028 bytes to 4896759 bytes.
      
      With this, old verisons of bfd ld (2.24 is OK, 2.23 warns) will print a bogus
      warning when building with BUILD_SHARED_LIBS.
      
      llvm-svn: 221530
      f9dcf902
  21. Oct 23, 2014
    • Chris Bieneman's avatar
      Adding llvm-shlib to CMake build system with a few new bells and whistles · adffd014
      Chris Bieneman authored
      Summary:
      This patch adds a new CMake build setting LLVM_BUILD_LLVM_DYLIB, which defaults to OFF. When set to ON, this will generate a shared library containing most of LLVM. The contents of the shared library can be overriden by specifying LLVM_DYLIB_COMPONENTS. LLVM_DYLIB_COMPONENTS can be set to a semi-colon delimited list of any LLVM components that you llvm-config can resolve.
      
      On Windows, unless you are using Cygwin, you must specify an explicit symbol export file using LLVM_EXPORTED_SYMBOL_FILE. On Cygwin and all unix-like platforms if you do not specify LLVM_EXPORTED_SYMBOL_FILE, an export file containing only the LLVM C API will be auto-generated from the list of LLVM components specified in LLVM_DYLIB_COMPONENTS.
      
      Reviewers: rnk
      
      Reviewed By: rnk
      
      Subscribers: rnk, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D5890
      
      llvm-svn: 220490
      adffd014
  22. Sep 27, 2014
  23. Sep 04, 2014
    • Chris Bieneman's avatar
      Enabling LLVM & Clang to be cross-compiled using CMake from a single configuration command line · 5007741d
      Chris Bieneman authored
      The basic idea is similar to the existing cross compilation support. A directory must be configured to build host versions of tablegen tools and llvm-config. This directory can be user provided (and configured), or it can be created during the build. During a build the native build directory will be configured and built to supply the tablegen tools used during the build. A user could also explicitly provide the tablegen executables to run on the CMake command line.
      
      llvm-svn: 217105
      5007741d
  24. Aug 01, 2014
  25. Jul 29, 2014
  26. Jul 04, 2014
  27. Jun 23, 2014
  28. Jun 12, 2014
  29. Jun 06, 2014
  30. May 24, 2014
    • Tim Northover's avatar
      AArch64/ARM64: move ARM64 into AArch64's place · 3b0846e8
      Tim Northover authored
      This commit starts with a "git mv ARM64 AArch64" and continues out
      from there, renaming the C++ classes, intrinsics, and other
      target-local objects for consistency.
      
      "ARM64" test directories are also moved, and tests that began their
      life in ARM64 use an arm64 triple, those from AArch64 use an aarch64
      triple. Both should be equivalent though.
      
      This finishes the AArch64 merge, and everyone should feel free to
      continue committing as normal now.
      
      llvm-svn: 209577
      3b0846e8
    • Tim Northover's avatar
      AArch64/ARM64: remove AArch64 from tree prior to renaming ARM64. · cc08e1fe
      Tim Northover authored
      I'm doing this in two phases for a better "git blame" record. This
      commit removes the previous AArch64 backend and redirects all
      functionality to ARM64. It also deduplicates test-lines and removes
      orphaned AArch64 tests.
      
      The next step will be "git mv ARM64 AArch64" and rewire most of the
      tests.
      
      Hopefully LLVM is still functional, though it would be even better if
      no-one ever had to care because the rename happens straight
      afterwards.
      
      llvm-svn: 209576
      cc08e1fe
Loading