1. 28 Oct, 2013 1 commit
  2. 22 Oct, 2013 2 commits
    • Brad King's avatar
      Quote ${CMAKE_<LANG>_COMPILER} while enabling a language · 705ae004
      Brad King authored
      Even though this variable gets set to CMAKE_<LANG>_COMPILER-NOTFOUND when
      the compiler is not found, CMake<LANG>Compiler.cmake gets removed by
      cmGlobalGenerator::EnableLanguage so in try compiles the value is empty.
      Quote references to the variable in
      
       Modules/CMake(C|CXX|Fortran)Information.cmake
       Modules/CMakeDetermineCompilerId.cmake
      
      to avoid dropping arguments from commands that expect them.
      705ae004
    • Brad King's avatar
      CMakeDetermineCompilerId: Do not test vendor without a compiler · 18a25373
      Brad King authored
      If no CMAKE_${lang}_COMPILER is available then do not try to run
      it to determine the compiler vendor.
      18a25373
  3. 19 Oct, 2013 1 commit
  4. 18 Oct, 2013 1 commit
  5. 16 Oct, 2013 2 commits
  6. 04 Oct, 2013 2 commits
    • Brad King's avatar
      CMakeDetermineCompilerId: Add notion of "simulated" id/version · 51ab85c3
      Brad King authored
      Some compilers try to simulate other compilers as a drop-in replacement
      supporting all the same command-line options and predefined preprocessor
      macros.  In such cases it will be useful to have CMake load the compiler
      information files for the simulated compiler instead of duplicating the
      information.  Teach CMakeDetermineCompilerId to extract the simulated
      compiler id and version when the compiler id detection provides it.
      51ab85c3
    • Brad King's avatar
      CMakeDetermineCompilerId: Fix local var init · be10826b
      Brad King authored
      Add initialization of the ARCHITECTURE_ID local and fix the
      initialization of the COMPILER_ID_TWICE local.
      be10826b
  7. 25 Sep, 2013 1 commit
  8. 03 Sep, 2013 1 commit
    • Brad King's avatar
      VS: Tolerate diagnostic output while detecting cl (#14387) · 8c891f86
      Brad King authored
      When the VS IDE build output setting
      
        Tools -> Options -> Projects and Solutions ->
         Build and Run -> MSBuild project output verbosity
      
      is set to "Diagnostic" the build output contains a " (TaskId:###)"
      suffix on the CMAKE_<lang>_COMPILER= line used to extract the compiler
      executable location.  Strip this suffix before checking that the
      reported location exists.
      8c891f86
  9. 05 Aug, 2013 5 commits
  10. 08 May, 2013 1 commit
  11. 07 Feb, 2013 1 commit
  12. 30 Nov, 2012 2 commits
  13. 27 Nov, 2012 1 commit
  14. 26 Nov, 2012 1 commit
  15. 20 Nov, 2012 1 commit
  16. 24 Sep, 2012 1 commit
  17. 18 Sep, 2012 1 commit
    • Brad King's avatar
      VS11: Add VS 2012 Express support (#13348) · 7ee3cee9
      Brad King authored
      Use the registry entries that vsvars32.bat uses to detect the location of
      MSBuild.exe in the framework directory.  Invoke MSBuild with the option
      
       /p:VisualStudioVersion=$version
      
      so it knows from which VS version to load the system build rules.  Teach
      cmGlobalVisualStudio11Generator to set its ExpressEdition member using the
      registry.
      7ee3cee9
  18. 24 Aug, 2012 1 commit
    • Brad King's avatar
      Make platform information files specific to the CMake version · 7195aca5
      Brad King authored
      At the top of a build tree we configure inside the CMakeFiles directory
      files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to
      save information detected about the system and compilers in use.  The
      method of detection and the exact results store varies across CMake
      versions as things improve.  This leads to problems when loading files
      configured by a different version of CMake.  Previously we ignored such
      existing files only if the major.minor part of the CMake version
      component changed, and depended on the CMakeCache.txt to tell us the
      last version of CMake that wrote the files.  This led to problems if the
      user deletes the CMakeCache.txt or we add required information to the
      files in a patch-level release of CMake (still a "feature point" release
      by modern CMake versioning convention).
      
      Ensure that we always have version-consistent platform information files
      by storing them in a subdirectory named with the CMake version.  Every
      version of CMake will do its own system and compiler identification
      checks even when a build tree has already been configured by another
      version of CMake.  Stored results will not clobber those from other
      versions of CMake which may be run again on the same tree in the future.
      Loaded results will match what the system and language modules expect.
      
      Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
      CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
      at the version-specific directory while the old variable did not.
      7195aca5
  19. 22 Aug, 2012 3 commits
    • Brad King's avatar
      VS: Detect the compiler id and tool location · 66cb3356
      Brad King authored
      Configure a hand-generated Visual Studio project to build the compiler id
      source file since we cannot run the compiler command-line tool directly.
      Add a post-build command to print out the full path to the compiler tool.
      Parse the full path to the compiler tool from the build output.
      66cb3356
    • Brad King's avatar
      Xcode: Detect the compiler id and tool location · 965a69dc
      Brad King authored
      Configure a hand-generated Xcode project to build the compiler id source
      file since we cannot run the compiler command-line tool directly.  Add a
      post-build shell script phase to print out the compiler toolset build
      setting.  Run xcodebuild to compile the identification binary.  Parse
      the full path to the compiler tool from the xcodebuild output.
      965a69dc
    • Brad King's avatar
      CMakeDetermineCompilerId: Prepare to detect IDE compiler id · 9a9e1ee9
      Brad King authored
      Teach CMAKE_DETERMINE_COMPILER_ID to check for variable
      CMAKE_${lang}_COMPILER_ID_TOOL after CMAKE_DETERMINE_COMPILER_ID_BUILD
      to use as CMAKE_${lang}_COMPILER since it will not be known until after
      the IDE runs.
      
      In CMAKE_DETERMINE_COMPILER_ID_BUILD prepare a cascading "if" so we can
      use a generator-specific method to compile the identification source
      file.  Leave "if(0)" as a placeholder for now and put the direct
      compiler invocation in "else()".  After running the compiler to build
      the compiler identification source we file(GLOB) the list of output
      files as candidates for extracting the compiler information.  An IDE may
      create directories, so exclude exclude directories from this list.
      9a9e1ee9
  20. 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
  21. 12 Jun, 2012 1 commit
  22. 07 Dec, 2011 1 commit
    • Brad King's avatar
      Add framework to detect compiler version with its id (#12408) · fa7141f5
      Brad King authored
      Teach CMakePlatformId.h to construct an "INFO:compiler_version[]" string
      literal from macros COMPILER_VERSION_(MAJOR|MINOR|PATCH|TWEAK) to be
      defined in CMake(C|CXX)CompilerId.(c|cpp) for each compiler.  Provide
      conversion macros DEC() and HEX() to decode decimal or hex digits from
      integer values.  Parse the version out of the compiler id binary along
      with the other INFO values already present.
      
      Store the result in variable CMAKE_<LANG>_COMPILER_VERSION in the format
      "major[.minor[.patch[.tweak]]]".  Save the value persistently in
      CMake(C|CXX)Compiler.cmake in the build tree.  Document the variable for
      internal use since we do not set it everywhere yet.
      
      Report the compiler version on the compiler id result line e.g.
      
        The C compiler identification is GNU 4.5.2
      
      Report CMAKE_(C|CXX)_COMPILER_(ID|VERSION) in SystemInformation test.
      fa7141f5
  23. 01 Mar, 2011 1 commit
  24. 01 Sep, 2010 1 commit
  25. 17 Aug, 2010 1 commit
    • Alexander Neundorf's avatar
      Add timeout to execute_process() in CMAKE_DETERMINE_COMPILER_ID(). · e6c9bc26
      Alexander Neundorf authored
      In CMAKE_DETERMINE_COMPILER_ID_VENDOR() the compiler is called with various
      arguments. In some cases, this can make the compiler hang and wait
      forever for input (e.g. "as -v"). That's why add an timeout
      so it terminates finally. 10 seconds should be more than enough,
      this is the time it takes to startup the compiler, which is
      usually quite fast.
      
      Alex
      e6c9bc26
  26. 15 Aug, 2010 2 commits
    • Alexander Neundorf's avatar
      Detect a COMPILER_ID also for ASM. · b333779e
      Alexander Neundorf authored
      For assembler, the "compiler ID" cannot be detected by "compiling" a
      source file, since there is not source file all assemblers understand.
      Instead the function CMAKE_DETERMINE_COMPILER_ID_VENDOR() is used to
      run the assembler and check its output.
      For this the CMAKE_DETERMINE_COMPILER_ID_VENDOR() function had to be
      extended so that it creates the run directory if it doesn't exist yet.
      
      In CMakeASMInformation.cmake now also CMAKE_ASM_COMPILER_ID is used
      (but there are no such files yet, will come with the support for the
      IAR toolchain).
      
      Alex
      b333779e
    • Alexander Neundorf's avatar
      Remove trailing spaces · 691fc2ba
      Alexander Neundorf authored
      Alex
      691fc2ba
  27. 09 Aug, 2010 1 commit
  28. 15 Mar, 2010 1 commit
    • Brad King's avatar
      Support multiple arguments in CC,CXX,FC values · fd38eda9
      Brad King authored
      Teach compiler identification to support values such as
      
        export CC='gcc -g -O2'
      
      by separating the arguments on spaces.  We already do this for the
      values of CFLAGS, CXXFLAGS, and FFLAGS.
      fd38eda9