1. 28 Jan, 2021 1 commit
    • William R. Dieter's avatar
      IntelLLVM: Add support for Intel LLVM-based compilers · a90d2a9e
      William R. Dieter authored
      Using a single ID 'IntelLLVM' for the suite of Intel compilers based on
      the LLVM backend.  The 'IntelLLVM' ID are used for C, C++, and Fortran.
      Data Parallel C++ will be handled in a separate commit.
      
      The C and C++ definitions are based on the Clang definitions.  The Intel
      LLVM-based C and C++ compilers are based on the Clang front end, so
      existing Clang options are more likely to be a good match than options
      for the older Intel compilers.
      
      Fortran is based on the older Fortran front end with the LLVM backend.
      It has a similar interface to the older versions, though many options
      are shared with the C and C++ compilers.
      
      Fixes: #21561
      
      Signed-off-by: William R. Dieter's avatarWilliam R. Dieter <william.r.dieter@intel.com>
      a90d2a9e
  2. 19 Dec, 2018 1 commit
  3. 11 Nov, 2018 1 commit
  4. 06 Jun, 2018 1 commit
  5. 14 Jun, 2017 1 commit
    • Brad King's avatar
      IPO: Consider support for each language separately · ba247cca
      Brad King authored
      We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and
      Fortran languages.  Do not try to enable support for other languages.
      Furthermore, each language builds with a different compiler, so check
      for support by CMake and the compiler for each language independently.
      
      Fixes: #16944
      ba247cca
  6. 30 Mar, 2017 1 commit
    • Ruslan Baratov's avatar
      Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION · 1588a577
      Ruslan Baratov authored
      Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was
      honored only for the Intel compiler on Linux and otherwise ignored.  In
      order to add support for more compilers incrementally without changing
      behavior in the future, add a new policy whose NEW behavior enforces the
      `INTERPROCEDURAL_OPTIMIZATION` property.  Add flags for supported
      compilers and otherwise produce an error.
      1588a577
  7. 11 Mar, 2017 1 commit
  8. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and lin...
      86578ecc
  9. 07 Feb, 2014 1 commit
  10. 13 Aug, 2012 1 commit
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored
      Ancient versions of CMake required else(), endif(), and similar block
      termination commands to have arguments matching the command starting the
      block.  This is no longer the preferred style.
      
      Run the following shell code:
      
      for c in else endif endforeach endfunction endmacro endwhile; do
          echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
      9db31162
  11. 12 Jun, 2012 1 commit
    • Stephen Kelly's avatar
      Add platform variables for position independent code flags · 31d7a0f2
      Stephen Kelly authored
      Store in new platform variables
      
        CMAKE_${lang}_COMPILE_OPTIONS_PIC
        CMAKE_${lang}_COMPILE_OPTIONS_PIE
      
      flags for position independent code generation.
      
      In almost all cases, this means duplication of the
      CMAKE_SHARED_LIBRARY_${lang}_FLAGS for the _PIC case and using the
      assumed pie equivalent for the _PIE case.  Note that the GNU compiler
      has supported -fPIE since 3.4 and that there is no -fPIC on GNU for
      Windows or Cygwin.
      
      There is a possibility that the _PIE variables are not correct.
      However, as there is no backwards compatibility to be concerned about
      (as the POSITION_INDEPENDENT_CODE property is not used anywhere yet),
      the current state suffices.
      31d7a0f2
  12. 09 Aug, 2010 1 commit
  13. 28 Jan, 2010 1 commit
  14. 13 Jan, 2010 1 commit
    • Brad King's avatar
      Restore -rdynamic in Linux build rules · 9ef3f8e8
      Brad King authored
      The commit "Drop -rdynamic from Linux build rules" removed default use
      of the flag on Linux.  It was expected to be compatible because any
      project using plugins should set ENABLE_EXPORTS on its executables to
      export their symbols for use by the plugins in a cross-platform way.
      However, it is possible to build without ENABLE_EXPORTS and load plugins
      that do not link to any symbols from the executable explicitly.  These
      plugins may need to see RTTI and other executable symbols needed by the
      language implementation.  Executables using such plugins were broken by
      the change.
      
      If we want to remove the -rdynamic flag in the future we should do so in
      a compatible way.  At that time we should also remove equivalent flags
      on other platforms (like -bexpall on AIX).  We will either need a policy
      or an explicit API to disable symbol exports on executables.
      
      The primary purpose of the above-mentioned commit was to avoid passing
      the -rdynamic flag to compilers on Linux that do not support it.  In
      this commit we restore the flag but only on GNU and Intel compilers
      which are known to support it.
      
      See issue #9985.
      9ef3f8e8
  15. 04 Dec, 2009 1 commit
  16. 09 Oct, 2009 1 commit
  17. 02 Oct, 2009 1 commit
  18. 01 Sep, 2009 1 commit
    • Brad King's avatar
      Use Intel for Linux flags only on Linux · 2eca4dd2
      Brad King authored
      The commit "Split Intel compiler information files" moved some Linux
      specific flags into the platform-independent Intel compiler info files.
      This moves them back.
      2eca4dd2
  19. 21 Aug, 2009 1 commit
    • Brad King's avatar
      Split Intel compiler information files · 2ce6a7d0
      Brad King authored
      This moves platform-independent Intel compiler flags into separate
      "Compiler/Intel-<lang>.cmake" modules.  Platform-specific flags are
      left untouched.
      2ce6a7d0