Skip to content
Snippets Groups Projects
  1. Jun 28, 2016
    • Brad King's avatar
      Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes" · 943fe6e3
      Brad King authored
      Revert commit v3.6.0-rc1~160^2 (try_compile: Honor
      CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11).  The behavior it
      introduced can break projects that depend on the lack of such behavior.
      We will have to introduce a policy or other mechanism to enable the
      behavior in a compatible way.  Simply revert it for now.
      
      See issue #16174.
      943fe6e3
  2. Jun 27, 2016
    • Ben Boeckel's avatar
      ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files · 15b3f6f0
      Ben Boeckel authored and Brad King's avatar Brad King committed
      In commit v3.6.0-rc1~174^2 (Ninja: Honor CMAKE_NINJA_FORCE_RESPONSE_FILE
      for compile rules, 2016-04-06), Ninja learned to look for
      `CMAKE_NINJA_FORCE_RESPONSE_FILE` in the current scope or the
      environment in order to force response file usage for all compilation
      rules.
      
      However, on Windows, the RC compiler goes through cmcldeps which does a
      `replace(output, output + ".dep.obj")` on the command line. However,
      with a response file (which we name `output + ".rsp"`), the response
      file path is replaced instead causing the compiler to (correctly)
      complain that the response file `output + ".dep.obj.rsp"` does not
      exist.
      
      What needs to happen is for cmcldeps to look through the response file,
      replace *its* contents and place it in the `output + ".dep.obj.rsp"`
      file.
      
      Also add a test which actually compiles an RC file into a library and
      executable for all generators on Windows and additionally test
      `CMAKE_NINJA_FORCE_RESPONSE_FILE` for Ninja generators.
      
      Fixes #16167.
      15b3f6f0
  3. Jun 20, 2016
  4. Jun 02, 2016
    • Brad King's avatar
      Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134) · f500a784
      Brad King authored
      Policy CMP0026 deprecated the LOCATION property, and we have long
      provided a $<TARGET_FILE:...> generator expression.  However, if
      a project tries to use $<TARGET_PROPERTY:...,LOCATION> we should
      at least not crash.
      
      The compatibility implementation of the LOCATION property uses
      cmGlobalGenerator::CreateGenerationObjects to create the structures
      needed to evaluate the property before generation starts.  The
      implementation assumed that accessing the property could only be done
      during configuration (via the typical get_property command use case).
      The $<TARGET_PROPERTY:...,LOCATION> genex causes the LOCATION property
      to be accessed during generation.  Calling CreateGenerationObjects
      during generation blows away all the objects currently being used for
      generation and is not safe.  Add a condition to call it only when
      configuration is not finished.
      f500a784
  5. May 26, 2016
    • Daniel Pfeifer's avatar
      Remove redundant c_str() calls. · 1b2bb933
      Daniel Pfeifer authored
      Run clang-tidy's readability-redundant-string-cstr checker.
      Ignore findings in kwsys.
      1b2bb933
    • Daniel Pfeifer's avatar
      Pass arguments that are not modified as const&. · 618fb23f
      Daniel Pfeifer authored
      Use clang-tidy's performance-unnecessary-value-param checker to find
      value parameter declarations of expensive to copy types that are not
      modified inside the function.  Ignore findings in kwsys.
      After applying the fix-its, manually change `const T&` to `T const&`.
      618fb23f
  6. May 25, 2016
    • Brad King's avatar
      try_compile: Optionally forward custom platform variables to test project · d256ba07
      Brad King authored
      Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
      of custom variables to be forwarded to a `try_compile` test project.
      This will be useful for platform information modules or toolchain files
      to forward some platform-specific set of variables from the host project
      (perhaps set in its cache) to the test project so that it can build the
      same way.
      d256ba07
    • Brad King's avatar
      Add a variable to specify language-wide system include directories · c1340827
      Brad King authored
      Create a `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable to specify
      system include directories for for `<LANG>` compiler command lines.
      This plays a role for include directories as the existing
      `CMAKE_<LANG>_STANDARD_LIBRARIES` variable does for link libraries.
      c1340827
  7. May 23, 2016
    • Domen Vrankar's avatar
      CPack/Deb prevent accidental component dependencies · 4f3b9706
      Domen Vrankar authored
      Prevent accidental inter component dependency setting
      since this is a breaking feature in situations where
      another CPack module is already using the feature.
      It should be enabled if desired since it can cause
      issues when upgrading only one of the components
      for e.g. configuration instead of all the components
      at once.
      4f3b9706
    • Domen Vrankar's avatar
      CPack/Deb possibility to change package name · adbd3985
      Domen Vrankar authored
      This patch preserves backward compatibility of
      deb package names with previous CMake versions
      but similarly to CPack/RPM allows to change
      package name format and supports DEB-DEFAULT
      setting that produces proper Debian package names.
      adbd3985
  8. May 18, 2016
  9. May 17, 2016
    • Reiner Herrmann's avatar
      file: Sort GLOB results to make it deterministic (#14491) · edcccde7
      Reiner Herrmann authored and Brad King's avatar Brad King committed
      Even though the `file(GLOB)` documentation specifically warns against
      using it to collect a list of source files, projects often do it anyway.
      Since it uses `readdir()`, the list of files will be unsorted.
      This list is often passed directly to add_executable / add_library.
      Linking binaries with an unsorted list will make it unreproducible,
      which means that the produced binary will differ depending on the
      unpredictable `readdir()` order.
      
      To solve those reproducibility issues in a lot of programs (which don't
      explicitly `list(SORT)` the list manually), sort the resulting list of
      the `file(GLOB)` command.
      
      A more detailed rationale about reproducible builds is available
      [here](https://reproducible-builds.org/).
      edcccde7
    • Nicolas Despres's avatar
      Ninja: Support embedding of CMake as subninja project · 8a862a4d
      Nicolas Despres authored and Brad King's avatar Brad King committed
      Add a `CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable.  When it is set, CMake
      generates a `build.ninja` file suitable for embedding into another ninja
      project potentially generated by an alien generator.
      8a862a4d
  10. May 16, 2016
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `Utilities/Scripts/clang-format.bash` script to update
      all our C++ code to a new style defined by `.clang-format`.
      Use `clang-format` version 3.8.
      
      * 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.
      d9fd2f54
  11. May 14, 2016
  12. May 13, 2016
  13. May 12, 2016
  14. May 11, 2016
  15. May 09, 2016
    • Brad King's avatar
      Drop find_(library|file|path) prefixes from PATH on non-Windows · b30b32a4
      Brad King authored
      
      Since commit v3.3.0-rc1~430^2 (Teach find_(library|file|path) to get
      prefixes from PATH, 2015-02-18) we search in <prefix>/include and
      <prefix>/lib directories for prefixes with bin directories in the PATH
      environment variable.  The motivation was to support MSYS, MinGW and
      similar Windows platforms in their default environments automatically.
      At the time this behavior was thought to be worthwhile in general.
      
      Suggested-by: default avatarChuck Atkins <chuck.atkins@kitware.com>
      b30b32a4
    • Brad King's avatar
      Remove `//------...` horizontal separator comments · 0ac18d40
      Brad King authored
      Modern editors provide plenty of ways to visually separate functions.
      Drop the explicit comments that previously served this purpose.
      Use the following command to automate the change:
      
          $ git ls-files -z -- \
              "*.c" "*.cc" "*.cpp" "*.cxx" "*.h" "*.hh" "*.hpp" "*.hxx" |
            egrep -z -v "^Source/cmCommandArgumentLexer\." |
            egrep -z -v "^Source/cmCommandArgumentParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmDependsJavaLexer\." |
            egrep -z -v "^Source/cmDependsJavaParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmExprLexer\." |
            egrep -z -v "^Source/cmExprParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmFortranLexer\." |
            egrep -z -v "^Source/cmFortranParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmListFileLexer\." |
            egrep -z -v "^Source/cm_sha2" |
            egrep -z -v "^Source/(kwsys|CursesDialog/form)/" |
            egrep -z -v "^Utilities/(KW|cm).*/" |
            xargs -0 sed -i '/^\(\/\/---*\|\/\*---*\*\/\)$/ {d;}'
      
      This avoids modifying third-party sources and generated sources.
      0ac18d40
    • Jean-Christophe Fillion-Robin's avatar
      CustomCommandGenerator: Add support for CROSSCOMPILING_EMULATOR · 8c2cedc6
      Jean-Christophe Fillion-Robin authored and Brad King's avatar Brad King committed
      Teach the `add_custom_command` and `add_custom_target' commands to
      substitute argv0 with the crosscompiling emulator if it is a target with
      the `CROSSCOMPILING_EMULATOR` property set.
      8c2cedc6
  16. May 06, 2016
  17. May 03, 2016
  18. May 02, 2016
  19. Apr 29, 2016
    • Brad King's avatar
      Format include directive blocks and ordering with clang-format · e1c77472
      Brad King authored
      
      Sort include directives within each block (separated by a blank line) in
      lexicographic order (except to prioritize `sys/types.h` first).  First
      run `clang-format` with the config file:
      
          ---
          SortIncludes: false
          ...
      
      Commit the result temporarily.  Then run `clang-format` again with:
      
          ---
          SortIncludes: true
          IncludeCategories:
            - Regex:    'sys/types.h'
              Priority: -1
          ...
      
      Commit the result temporarily.  Start a new branch and cherry-pick the
      second commit.  Manually resolve conflicts to preserve indentation of
      re-ordered includes.  This cleans up the include ordering without
      changing any other style.
      
      Use the following command to run `clang-format`:
      
          $ git ls-files -z -- \
              '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' |
            egrep -z -v '(Lexer|Parser|ParserHelper)\.' |
            egrep -z -v '^Source/cm_sha2' |
            egrep -z -v '^Source/(kwsys|CursesDialog/form)/' |
            egrep -z -v '^Utilities/(KW|cm).*/' |
            egrep -z -v '^Tests/Module/GenerateExportHeader' |
            egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' |
            xargs -0 clang-format -i
      
      This selects source files that do not come from a third-party.
      
      Inspired-by: default avatarDaniel Pfeifer <daniel@pfeifer-mail.de>
      e1c77472
    • Brad King's avatar
      Tests: Fix RunCMake.BuildDepends filesystem delay for Watcom WMake · 47c29885
      Brad King authored
      Our 1.125s delay does not seem to be long enough to be reliable with
      the Watcom `wmake` tool.  Use a longer delay for Watcom.
      47c29885
    • Brad King's avatar
      Tests: Stabilize include order in MFC, VSXaml, and VSWinStorePhone · eb817be0
      Brad King authored
      These tests use a precompiled header that must be included first.
      Include the header in an isolated block so that tools that sort
      includes do not move it.
      eb817be0
    • Daniel Pfeifer's avatar
      Tests: Stabilize include order in StringFileTest · eda313b4
      Daniel Pfeifer authored and Brad King's avatar Brad King committed
      This test generates a header file which is not self-contained.
      Include it in a separate block of includes so that tools that
      sort includes do not move it.
      eda313b4
  20. Apr 28, 2016
Loading