1. 27 Jun, 2018 1 commit
  2. 06 Jun, 2018 2 commits
  3. 01 Jun, 2018 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · d7204e64
      Kitware Robot authored
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 6.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      d7204e64
  4. 05 Apr, 2018 1 commit
  5. 27 Feb, 2018 1 commit
    • Ilya A. Kriveshko's avatar
      Fix combined use of compiler launcher with lint tools · eaf9f69d
      Ilya A. Kriveshko authored
      When using ccache with clang-tidy, ccache needs to wrap compiler
      invocation, rather than cmake invocation.  But it needs to do it without
      affecting the command line that iwyu-like tools are receiving.
      
      With this fix, if __run_co_compile is used, compile launcher is passed
      using the new --launcher option, but if __run_co_compile is not needed,
      compiler launcher is prepended to the command line as before.
      
      To better illustrate the change: with this fix if running clang-tidy
      with CXX_COMPILER_LAUNCHER set to "/usr/bin/time;-p;ccache" (time -p
      added strictly for illustration purposes), the command line changes
      from:
      
          /usr/bin/time -p ccache cmake -E __run_co_compile \
              --tidy=clang-tidy ... -- g++ ...
      
      to:
      
          cmake -E __run_co_compile \
              --launcher="/usr/bin/time;-p;ccache" \
              --tidy=clang-tidy ... -- g++ ...
      
      This allows the compiler to be run via the launcher, but leaves tidy
      (& friends) invocations unaffected.
      
      Fixes: #16493
      eaf9f69d
  6. 31 Jan, 2018 1 commit
    • Pavel Solodovnikov's avatar
      Reduce raw string pointers usage. · 653b8946
      Pavel Solodovnikov authored
      * Change some functions to take `std::string` instead of
        `const char*` in the following classes: `cmMakeFile`, `cmake`,
        `cmCoreTryCompile`, `cmSystemTools`,  `cmState`, `cmLocalGenerator`
        and a few others.
      * Greatly reduce using of `const char*` overloads for
        `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
      * Remove many redundant `c_str()` conversions throughout the code.
      653b8946
  7. 26 Jan, 2018 1 commit
  8. 24 Jan, 2018 2 commits
  9. 23 Jan, 2018 1 commit
  10. 03 Jan, 2018 1 commit
  11. 14 Dec, 2017 2 commits
    • Yurii Batrak's avatar
      Makefiles: Drop 'requires' step and its supporting infrastructure · 7ab9a625
      Yurii Batrak authored
      The 'requires' step was used to provide implicit dependencies between
      the generated Fortran module files and a Fortran target that needs these
      module files to ensure the correct compilation order.  After recent
      refactoring to resolve all dependencies explicitly through `.mod.stamp`
      make targets, the separate 'requires' step is not needed anymore.
      7ab9a625
    • Yurii Batrak's avatar
      Makefiles: Avoid nested make calls for Fortran module dependencies · 5f2e2c38
      Yurii Batrak authored
      Makefiles generated by cmake use a series of nested calls to build
      `*.provides.build` targets that are used when the 'requires' step is
      needed.  That leads to significant degradation of the build time for
      incremental builds.  Re-arrange dependencies to eliminate the nested
      calls.
      
      Explicit `.mod.stamp` targets introduced by this commit could lead to
      situation when a stamp file always older than its dependency.  This
      happens during the incremental build when building of an updated Fortran
      source produces a module file that has no differences from the stored
      stamp file.  In such case `cmake_copy_f90_mod` will be triggered on each
      new build to compare a module file with the corresponding stamp file.
      This behavior is expected and can not be changed without nested calls
      that slow down the build.  The copy-if-different check is much cheaper
      than an entire nested make call.
      5f2e2c38
  12. 13 Dec, 2017 1 commit
  13. 05 Dec, 2017 1 commit
  14. 04 Dec, 2017 1 commit
  15. 21 Nov, 2017 1 commit
    • Brad King's avatar
      Fortran: Add option to run the compiler through launcher tools · f19c70c3
      Brad King authored
      Add a `Fortran_COMPILER_LAUNCHER` target property like those added for C
      and CXX by commit v3.4.0-rc1~450^2 (Add options to launch the compiler
      through tools like ccache or distcc, 2015-06-04) and CUDA by commit
      v3.10.0-rc1~531^2 (CUDA: Add option to run the compiler through launcher
      tools, 2017-06-09).
      
      Fixes: #17499
      f19c70c3
  16. 25 Sep, 2017 1 commit
  17. 15 Sep, 2017 1 commit
  18. 13 Sep, 2017 1 commit
    • Bill Hoffman's avatar
      Clean up iwyu code to not be one big if statement. · 3bbe95f5
      Bill Hoffman authored
      This commit changes the internal -E__run_iwyu to be -E__run_co_compile. This
      is used for co-compile commands. These are tools that want to mirror the
      compiler. For each compiler invocation the tool will be invoked first. This
      started as a way to implement include what you use (iwyu), but has expanded
      to include cpplint, cppcheck and others. Likely there will be more in the
      future as well. This commit implements each one in its own function and
      provides a way to add additional ones in the future with less work.
      3bbe95f5
  19. 12 Sep, 2017 1 commit
  20. 30 Aug, 2017 1 commit
  21. 24 Aug, 2017 1 commit
  22. 09 Jun, 2017 1 commit
  23. 03 Jun, 2017 1 commit
  24. 01 Jun, 2017 1 commit
  25. 20 Apr, 2017 2 commits
  26. 19 Apr, 2017 1 commit
  27. 21 Mar, 2017 1 commit
    • Brad King's avatar
      Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def` files · 075f6454
      Brad King authored
      The `WINDOWS_EXPORT_ALL_SYMBOLS` target property exports all symbols
      found in object files explicitly given to the linker.  However, the
      linker may also find additional symbols in dependencies and copy them
      into the linked binary (e.g. from `msvcrt.lib`).  Provide a way to
      export an explicit list of such symbols by adding a `.def` file as a
      source file.
      
      Fixes: #16473
      075f6454
  28. 09 Mar, 2017 2 commits
    • Brad King's avatar
      Refactor WINDOWS_EXPORT_ALL_SYMBOLS implementation · f36eaf6a
      Brad King authored
      Use `cmGeneratorTarget::ModuleDefinitionInfo` to combine the
      implementation of `WINDOWS_EXPORT_ALL_SYMBOLS` with that of using a
      `.def` file as a source.  Only one of these could be used within a
      single target before anyway.
      f36eaf6a
    • Brad King's avatar
      Refactor module definition file selection · 25d261ef
      Brad King authored
      Create a `ModuleDefinitionInfo` structure for each configuration of a
      target to hold corresponding information about the selected module
      definition file (`.def` source).
      25d261ef
  29. 20 Feb, 2017 1 commit
  30. 23 Jan, 2017 1 commit
  31. 15 Dec, 2016 1 commit
  32. 09 Dec, 2016 2 commits
    • Brad King's avatar
      Comment ExpandRuleVariables calls not preceded by launcher insertion · b7771078
      Brad King authored
      Call sites of `ExpandRuleVariables` are now responsible for inserting
      the `RULE_LAUNCH_{COMPILE,LINK,CUSTOM}` values in rule command lines.
      Audit all call sites and add a comment to each one that does not insert
      a launcher to explain why.
      b7771078
    • Brad King's avatar
      Makefile: Restore RULE_LAUNCH_COMPILE generation on compilation rules · c58a5198
      Brad King authored
      Refactoring in commit 425cd167 (cmLocalGenerator: Remove the launcher
      from RuleVariables, 2016-10-09) accidentally broke Makefile generator
      handling of `RULE_LAUNCH_COMPILE`.  Responsibility moved from
      `ExpandRuleVariables` to its call sites, and the Makefile generator call
      site for compilations was not properly updated.  Fix it now.
      c58a5198
  33. 30 Nov, 2016 1 commit
    • Brad King's avatar
      Ninja,Makefile: Name static library compile PDB files as VS does · a4da6fa7
      Brad King authored
      Change the default compile PDB file name for static libraries to match
      the Visual Studio default of using the logical target name.  This may be
      incompatible with existing behavior but `COMPILE_PDB_NAME` documents
      that the default is unspecified.  Projects depending on a particular
      name should set the property.
      
      Closes: #16438
      a4da6fa7
  34. 14 Nov, 2016 1 commit