1. 25 Jan, 2019 1 commit
    • chuck cranor's avatar
      ParseImplicitIncludeInfo: add Fortran implicit include handling · 2e91627d
      chuck cranor authored
      Currently cmake is only setting CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES
      the first time it runs (the implicit includes parser is only run when
      the cache variables are initially populated).  It is left unset
      during additional runs.  This behavior is both confusing and
      inconsistent.
      
      Modify CMakeFortranCompiler.cmake.in to preserve the value of
      CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES so that cmake's Fortran
      behavior matches C and CXX (i.e. CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES
      retains its value across runs).  The implicit includes variable may
      not be as useful for Fortran as it is for C and CXX, but we do want
      cmake to be consistent in how it is handled.
      
      Adjust CMakeParseImplicitIncludeInfo to parse verbose Fortran output
      for Cray and XL compiler IDs (GNU and clang were already ok since
      they use the same verbose output format as they do with C/CXX).
      
      Allow Tests/RunCMake/ParseImplicitIncludeInfo/data/CMakeLists.txt
      to generate test inputs for Fortran too, and add some sample Fortran
      input files for the Tests/RunCMake/ParseImplicitIncludeInfo test.
      2e91627d
  2. 02 Apr, 2018 1 commit
  3. 29 Jun, 2017 1 commit
    • nolange's avatar
      Add a CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID variable · 0b1a2876
      nolange authored
      Compilers such as MSVC and IAR may have variants that target different
      architectures.  We have been using a `MSVC_<LANG>_ARCHITECTURE_ID`
      variable to hold this information for MSVC.  Add an alternative with a
      more general name (later we can port MSVC to it too).
      
      This additional information may be needed to generate proper invocations
      of the compiler based on its architecture variant.
      0b1a2876
  4. 03 Apr, 2017 1 commit
  5. 08 Mar, 2017 1 commit
  6. 30 Aug, 2016 1 commit
  7. 12 Aug, 2016 1 commit
  8. 07 Dec, 2015 1 commit
  9. 23 Nov, 2015 1 commit
    • Brad King's avatar
      Revert "Disable shared library support when compiler links statically" (#15855) · 9682de56
      Brad King authored
      In commit v3.4.0-rc1~18^2 (Disable shared library support when compiler
      links statically, 2015-09-30) we tried to detect when the compiler is
      not capable of linking shared libraries (possibly due to flags in use).
      However, the approach is not robust against flags like `-nostdlib`.
      Revert it for now pending another solution to the original problem.
      9682de56
  10. 30 Sep, 2015 1 commit
    • Brad King's avatar
      Disable shared library support when compiler links statically · 8b4873a1
      Brad King authored
      When a user or a compiler wrapper adds '-static' to the compiler flags
      then it will always link static binaries.  Detect this from the compiler
      id binary and disable TARGET_SUPPORTS_SHARED_LIBS.  This will prevent
      projects from accidentally adding shared libraries when the toolchain
      does not support them.  It also helps CMake avoid linking with flags
      that require shared libraries to be supported.
      8b4873a1
  11. 05 Aug, 2015 1 commit
    • Brad King's avatar
      Fortran: Store detected compiler version persistently (#15684) · f0609182
      Brad King authored
      The Fortran compiler version detection infrastructure added by commit
      v3.3.0-rc1~436^2~9 (Fortran: Add infrastructure to detect compiler
      version, 2015-02-17) forgot to update CMakeFortranCompiler.cmake.in to
      save the compiler version persistently as we do already in
      "CMake{C,CXX}Compiler.cmake.in".  Add the missing line now.
      f0609182
  12. 18 Oct, 2013 1 commit
    • Brad King's avatar
      Intel: When simulating MSVC, re-use Windows-MSVC (#14476) · a85e17e6
      Brad King authored
      Teach CMake(C|CXX|Fortran)CompilerId* to report the MSVC version
      simulated by the Intel compiler, if any.  Refactor the Windows-Intel
      platform information helper module to load Windows-MSVC instead of
      duplicating the information.  Teach Windows-MSVC to understand when
      it is loaded as the simulated Fortran compiler (its preprocessor is
      simulated).
      a85e17e6
  13. 11 Dec, 2012 1 commit
    • Brad King's avatar
      OS X: Detect implicit linker framework search paths · cc676c3a
      Brad King authored
      Previously we hard-coded a list of implicit framework directories but
      did not account for CMAKE_OSX_SYSROOT or for changes to the list across
      OS X versions.  Instead we should automatically detect the framework
      directories for the active toolchain.
      
      The parent commit added the "-Wl,-v" option to ask "ld" to print its
      implicit directories.  It displays a block such as:
      
       Framework search paths:
      	/...
      
      Parse this block to extract the list of framework directories.
      
      Detection may fail on toolchains that do not list their framework
      directories, such as older OS X linkers.  Always treat the paths
      
       <sdk>/Library/Frameworks
       <sdk>/System/Library/Frameworks
       <sdk>/Network/Library/Frameworks # Older OS X only
       /System/Library/Frameworks
      
      as implicit.  Note that /System/Library/Frameworks should always be
      considered implicit so that frameworks CMake finds there will not
      override the SDK copies.
      cc676c3a
  14. 24 Aug, 2012 2 commits
    • Brad King's avatar
      Store ABI detection results in compiler information files · e5fee8a7
      Brad King authored
      Drop use of cache entry CMAKE_DETERMINE_<LANG>_ABI_COMPILED and replace
      it with variable CMAKE_<LANG>_ABI_COMPILED.  Since the grandparent
      commit this test result is specific to the version of CMake.  Store it
      in the version-specific compiler information files instead of
      CMakeCache.txt so testing can be re-done to meet the requirements of the
      current version of CMake even if another version of CMake was already
      used to configure the build tree.
      e5fee8a7
    • Brad King's avatar
      Move CMAKE_<LANG>_COMPILER_WORKS to compiler information files · 3df81b49
      Brad King authored
      Since the parent commit this test result is specific to the version of
      CMake.  Store it in the version-specific compiler information files
      instead of CMakeCache.txt so testing can be re-done to meet the
      requirements of the current version of CMake even if another version of
      CMake was already used to configure the build tree.
      3df81b49
  15. 13 Aug, 2012 2 commits
    • 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
    • Kitware Robot's avatar
      Convert CMake-language commands to lower case · 77543bde
      Kitware Robot authored
      Ancient CMake versions required upper-case commands.  Later command
      names became case-insensitive.  Now the preferred style is lower-case.
      
      Run the following shell code:
      
      cmake --help-command-list |
      grep -v "cmake version" |
      while read c; do
          echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
      77543bde
  16. 08 Jun, 2011 1 commit
  17. 16 Dec, 2010 1 commit
    • Brad King's avatar
      Detect Fortran target architecture on Windows · 58c73c43
      Brad King authored
      Commit 4430bccc (Change the way 32/64 bit compiles are detected with
      MSVC and intel, 2009-11-19) added detection of the target processor to C
      and CXX language builds with MS and Intel tools.  Do the same for Intel
      Fortran for Windows (ifort).  Use /machine:<arch> to link executables.
      58c73c43
  18. 05 May, 2010 1 commit
    • Brad King's avatar
      Use Fortran ABI detection results conservatively · 0457d531
      Brad King authored
      We set CMAKE_Fortran_SIZEOF_DATA_PTR in the Fortran compiler information
      file after detecting the compiler ABI.  However, since Fortran does not
      really have pointers, the preprocessor-based detection is unreliable.
      The result is needed to set CMAKE_SIZEOF_VOID_P only for Fortran-only
      projects because the value can come from C or C++ compilers otherwise.
      Therefore when CMAKE_SIZEOF_VOID_P is available from another language we
      should defer to it.
      0457d531
  19. 28 Jan, 2010 1 commit
  20. 12 Jan, 2010 1 commit
    • Brad King's avatar
      Detect Fortran ABI Information · 6c1e2427
      Brad King authored
      Implement Fortran 32/64-bit ABI detection on some platforms.  We need to
      set CMAKE_SIZEOF_VOID_P correctly in Fortran-only projects so that the
      find_library() command knows whether to look for 64-bit binaries.  We
      also detect ELF binaries to enable RPATH replacement.  See issue #10119.
      6c1e2427
  21. 30 Jul, 2009 1 commit
    • Brad King's avatar
      Pass Fortran90 test result to try-compile · 68434483
      Brad King authored
      This stores CMAKE_Fortran_COMPILER_SUPPORTS_F90 in the Fortran compiler
      information file CMakeFiles/CMakeFortranCompiler.cmake instead of in
      CMakeCache.txt.  This file makes the result available to try-compile
      projects.
      68434483
  22. 23 Jul, 2009 1 commit
    • Brad King's avatar
      ENH: Implicit link info for C, CXX, and Fortran · 07ea19ad
      Brad King authored
      This teaches CMake to detect implicit link information for C, C++, and
      Fortran compilers.  We detect the implicit linker search directories and
      implicit linker options for UNIX-like environments using verbose output
      from compiler front-ends.  We store results in new variables called
      
        CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
        CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES
      
      The implicit libraries can contain linker flags as well as library
      names.
      07ea19ad
  23. 05 Mar, 2008 1 commit
  24. 12 Jul, 2007 1 commit
  25. 11 Jul, 2007 2 commits
    • Alexander Neundorf's avatar
      16705a3e
    • Alexander Neundorf's avatar
      · bea1a5de
      Alexander Neundorf authored
      ENH: CMAKE_<LANG>_LINKER_PREFERENCE is now an integer priority, not a
      two-step priority (None or Prefered)
      Current order: ASM 0, C 10, Fortran 20, CXX 30, Java 40
      This is the same order as automake choses:
      http://www.gnu.org/software/automake/manual/html_node/How-the-Linker-is-Chosen.html
      
      This change should be backward compatible:
      if there is a project using fortran and CXX, they had to set the
      LINKER_LANGUAGE explicitely, otherwise cmake complained (but still generated
      the project files). Explicitely setting the linker language still overrides
      automatic detection.
      If somebody has a custom language for cmake and the PREFERENCE starts with
      "P", its changed to 100, which gives it preference over all other languages
      (except the other custom languages which have also "Prefered"). "None" is
      converted to 0.
      
      Alex
      bea1a5de
  26. 03 May, 2007 1 commit
  27. 04 Jul, 2006 1 commit
  28. 20 Jul, 2005 1 commit
  29. 20 Jan, 2005 1 commit
  30. 22 Sep, 2004 1 commit
  31. 03 Sep, 2004 1 commit
  32. 26 Aug, 2004 1 commit
  33. 06 Aug, 2004 1 commit
  34. 12 Dec, 2003 1 commit
  35. 21 Aug, 2003 1 commit
  36. 20 Nov, 2002 1 commit
  37. 11 Nov, 2002 1 commit