1. 28 Jan, 2019 1 commit
  2. 26 Jan, 2019 2 commits
  3. 25 Jan, 2019 5 commits
    • 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
    • chuck cranor's avatar
      ParseImplicitIncludeInfo: handle/add SunPro, XL, and -nostdinc test cases · 56834376
      chuck cranor authored
      Add parser code for compiler IDs SunPro and XL.  For SunPro, /usr/include
      appears to be hardwired in and it does not have a -nostdinc-type flag.
      
      For XL, the "xlc" and "xlC" commands determine if you are C or C++
      based on input filename.  So compiling x.c with "xlC" reverts to C
      and compiling x.cc with "xlc" upgrades to CXX.  System include paths
      are specified by:
        -qc_stdinc=[path] and -qgcc_c_stdinc=[path] (for C)
        -qcpp_stdinc=[path] and -qgcc_cpp_stdinc=[path] (for CXX)
      If you specify "-qnostdinc" then the above flags are ignored.
      Specifying an empty path reverts the value to the default
      path (e.g. "-qgcc_c_stdinc=" reverts that to the default).
      
      Adjust the code to handle parsing the case where the user specifies
      additional compiler include flags via CMAKE_C_FLAGS/CMAKE_CXX_FLAGS.
      For example: "-DCMAKE_C_FLAGS=-nostdinc" ... note that gcc and clang
      output slightly differ when -nostdinc is specified (clang skips
      printing 'search starts here:' with the angle brackets, gcc always
      prints it).
      
      Enable sunos-{C,CXX}-SunPro test cases and add XL test cases.
      Also add a few -nostdinc style tests.
      56834376
    • lucy phipps's avatar
      Reduce size of PNG images · b9e6d045
      lucy phipps authored and Brad King's avatar Brad King committed
      Use FileOptimizer 13.50.2431 (x86) and ZopfliPNG 1.0.2.
      
      Update expected file hashes in tests.
      b9e6d045
    • lucy phipps's avatar
      CPack: Replace corrupted background png with original · 880e3805
      lucy phipps authored and Brad King's avatar Brad King committed
      The `Modules/CPack.background.png.in` file was originally added by
      commit f2c0dbd1 (ENH: More work on the packaging. Add Applicaitons,
      add icons, etc, 2007-02-13, v2.6.0~2217).  Then it was removed
      accidentally by commit 5308afa3 (ENH: remove unused file, 2009-03-03,
      v2.8.0~963) and restored by commit f9dd6a38 (ENH: add file back bug
      use cmake image, 2009-03-04, v2.8.0~958) but with corruption.
      
      Restore the original image file and add a Git attribute to prevent
      newline conversion as we do for other `.png` files.
      880e3805
    • Brad King's avatar
      Intel: Record support for relaxed constexpr by version 18.0.5 · fc40bca5
      Brad King authored
      Update the special case added by commit f719a13c (Features: Add
      special case to disable relaxed constexpr for Intel 18, 2018-06-04,
      v3.12.0-rc1~11^2) to record that 18.0.5 fixed the regression.
      fc40bca5
  4. 24 Jan, 2019 2 commits
  5. 23 Jan, 2019 3 commits
  6. 22 Jan, 2019 1 commit
  7. 21 Jan, 2019 6 commits
    • chuck cranor's avatar
      Compute implicit include directories from compiler output · 5990ecb7
      chuck cranor authored and Brad King's avatar Brad King committed
       - CMakeParseImplicitIncludeInfo.cmake: new parser that extracts the
         compiler's include path from verbose output.  If the parser cannot
         parse the output, we fall back to the old behavior.  On osx we skip
         over framework directories (handled elsewhere).
      
       - CMakeDetermineCompilerABI.cmake:
           - use verbose flag in try_compile for ${src}
           - use new cmake_parse_implicit_include_info() to attempt extract
             implicit include directory path and if successful set
              CMAKE_${LANG}_IMPLICIT_INCLUDE_DIRECTORIES
      
       - CMakeCCompiler.cmake.in and CMakeCXXCompiler.cmake.in - preserve
         CMAKE_${LANG}_IMPLICIT_INCLUDE_DIRECTORIES value between runs in
         the same way CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES is preserved
      
       - Tests/RunCMake/ParseImplicitIncludeInfo: tests for parse
         based on the older Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in.
         The test runs a set of verbose compiler outputs collected from
         various machines through the parser and checks the results.  New
         compiler files can be added by dropping input/output files in the
         ParseImplicitIncludeInfo/data subdirectory and then adding the new set
         of files to the ${targets} list in ParseImplicitIncludeInfo.cmake.
         There is a helper CMakeLists.txt in ParseImplicitIncludeInfo/data
         that can help with the generation of test input files.
         NOTE: the standard cmake pre-commit hook rejects verbose compiler
         output with trailing spaces... you have to manually edit them out.
         This shouldn't impact the test.
      
      Note that both the parser and the test code can use CMAKE_${LANG}_COMPILER_*
      variables such as ${CMAKE_CXX_COMPILER_ID} to decide how to parse
      verbose compiler output.  For the test code, this requires us to
      save the variables values in the test input files.
      
      Fixes: #16291
      5990ecb7
    • chuck cranor's avatar
      CMakeDetermineCompilerABI: set locale to C for try_compile() · d751d2d2
      chuck cranor authored and Brad King's avatar Brad King committed
      Have CMakeDetermineCompilerABI set the locale to C before calling
      try_compile().  This is for the implicit include path parser to
      keep all the verbose compiler messages in English so we can parse
      it.   See #18784 for discussion.
      d751d2d2
    • Brad King's avatar
      CMakeDetermineCompilerABI: pass verbose flag during compilation · c765ae49
      Brad King authored
      Default to the same flag that is used for verbose link information, but
      provide another internal platform information variable to use a
      compilation-specific variant.  Populate it for CUDA where we use a
      different compiler for compilation and linking and therefore need
      different flags.
      
      Co-Author: Chuck Cranor <chuck@ece.cmu.edu>
      c765ae49
    • Brad King's avatar
      Refactor exclusion of -I/usr/include to avoid per-language values · 15ad8300
      Brad King authored
      Add a `CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES` to contain the
      hard-coded list of paths to be excluded from `-I` arguments so that the
      values remain excluded even if the per-language
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variants change.
      
      This is needed to preserve our historical exclusion of `-I/usr/include`
      even when it is not a real implicit include directory.  A policy may be
      needed to remove it later.
      15ad8300
    • Kyle Edwards's avatar
      FindGit: Add imported target · 97700e9f
      Kyle Edwards authored
      97700e9f
    • Hiroshi Miura's avatar
      FindCURL: fix component failure when no pkg-config · 0526ae44
      Hiroshi Miura authored and Brad King's avatar Brad King committed
      
      
      find_package(CURL COMPONENTS foo) fails when there is
      no pkg-config module because of variable name typo.
      Signed-off-by: Hiroshi Miura's avatarHiroshi Miura <miurahr@linux.com>
      Fixes: #18802
      0526ae44
  8. 20 Jan, 2019 1 commit
  9. 17 Jan, 2019 1 commit
  10. 16 Jan, 2019 7 commits
    • Fred Baksik's avatar
      GHS: Add Compiler ID detection · 72e0c115
      Fred Baksik authored
      -- Detect GHS compiler and version
         Detect ARCHITECTURE_ID for PPC / ARM / 86 targets
         Detect PLATFORM_ID for Integrity and Integrity178 platforms
         Using defines specified in the documents for the compilers: 201416 PPC / 201754 ARM / 201714 86
      -- Fallback C/CXX compiler ID to GHS if not otherwise detected and using GHS MULTI generator
         Works around issue with some GHS compilers not setting __ghs__ compiler define
      -- Tweak Compiler ID checking so major id of 002017 is not replaced with 217
      -- Prefer try_compile() library targets when testing for working GHS compilers
      -- Avoid CMake errors if reading past end of file for checking if file is PE executable
      72e0c115
    • Fred Baksik's avatar
      GHS: Use the correct compiler flags for CMAKE_BUILD_TYPE · 702121c5
      Fred Baksik authored
      -- Do not use CMAKE_C_FLAGS_RELEASE flags when CMAKE_BUILD_TYPE is empty
         if CMAKE_BUILD_TYPE was not set the generator would use Release settings
         this does not match the documented behavior of CMAKE_BUILD_TYPE
      
      -- CMAKE_C_FLAGS_<CONFIG> not used when -kernel is present
         Fixes issue where CMAKE_C_FLAGS_<CONFIG> is ignored when -kernel option is present as a compiler option
         When the -kernel option is added to an executable it uses a different set of language flags
         This does not occur -kernel=<type> is used or if it is added as part of a link flag
         The variables CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG> are removed
         NOTE: By default this only added the flag -ldebug which links in the debugger library.
      
      -- Separate compiler options by newlines
      702121c5
    • Fred Baksik's avatar
      GHS: Update the link line processing · 595932c4
      Fred Baksik authored
      -- add missing executable linker libs from:
         CMAKE_C_STANDARD_LIBRARIES
      -- add missed transitive link libraries
      -- add skipped library linker options
      -- The linker expects -l../relative/path/to/lib.a to be relative to the top-level project
         Because there can be multiple top-level projects convert the path to an absolute path to target
      595932c4
    • Fred Baksik's avatar
      GHS: Place build system outputs per target output directives · 2ed2d6b4
      Fred Baksik authored
      -- Set output and object file locations
      -- Suffixes are no longer being forced but will now follow the target properties
         By default GHS tools have no suffix for executable files so
         CMAKE_EXECUTABLE_SUFFIX was changed to meet this behavior
      -- Remove #if 0 blocked out code; it has been replaced.
         Forcing the -relprog option has been removed from non-kernel executable targets.
         The default value of this option (if it is even available) is determined by the
         tool-chain for the specified target and platform (Some tool-chains default to
         -locatedprogram).  The use of -relprog can have unexpected results as it cannot
         always produce a fully relocated executable.
      -- Clarify use of CMAKE_BUILD_TYPE to control build configuration
      2ed2d6b4
    • Fred Baksik's avatar
      GHS: Only print bsp and os directives if specified by user · a42e40e7
      Fred Baksik authored
      -- standalone platforms will not build if bsp/os is specified in project file
      -- integrity platforms will always print these directives because they are required
      -- cleanup -os_dir setting
         allow customization of the actual setting because it is determined by tool-set customization files
         remove variable that was set but never used
      -- add message when using default values
      a42e40e7
    • wahikihiki's avatar
      CTest: Add documentation and release notes for SubmitURL · 2915a756
      wahikihiki authored and Brad King's avatar Brad King committed
      2915a756
    • wahikihiki's avatar
      Modules/CTest: Set SubmitURL · d6475daa
      wahikihiki authored and Brad King's avatar Brad King committed
      d6475daa
  11. 15 Jan, 2019 2 commits
  12. 14 Jan, 2019 1 commit
    • Craig Scott's avatar
      FetchContent: Give access to the terminal for download and update · 2119c33b
      Craig Scott authored
      A main scenario where this is needed is when a git operation
      needs the password to a private key and asks for it on the
      console. Without this change, such operations can appear to
      hang indefinitely with no prompt if QUIET is in effect (which it
      is by default).
      
      Another scenario this addresses is when progress of a
      download or update should be shown. Without this change,
      all such progress is buffered with some generators and will
      only be shown at the end, which defeats the purpose of logging
      any progress to begin with.
      
      Relates: #18238
      2119c33b
  13. 11 Jan, 2019 1 commit
  14. 10 Jan, 2019 4 commits
  15. 09 Jan, 2019 1 commit
  16. 08 Jan, 2019 1 commit
    • Tim Blechmann's avatar
      BundleUtilities: Ensure target dir exists when creating symlinks · 200bf577
      Tim Blechmann authored and Craig Scott's avatar Craig Scott committed
      Commit v3.13.0-rc1~279^2 (GetPrerequisites: Move dylibs from MacOS
      to Frameworks folder in bundle, 2018-07-22) introduced a regression
      that can cause symlink creation to fail during packaging. Symlinks
      can be created before targets are installed, so the destination
      directory of the symlink sometimes won't exist at symlink creation.
      
      Fixes: #18726
      200bf577
  17. 04 Jan, 2019 1 commit