1. 24 Jul, 2019 1 commit
    • Brad King's avatar
      Clang: For MSVC ABI do not use modes older than C++14 · d50b31be
      Brad King authored
      Since commit d44c0db0 (clang: setup correct configuration in gnu mode,
      2019-02-20, v3.15.0-rc1~41^2~5) we support the GNU-like Clang that
      targets the MSVC ABI.  However, Clang cannot compile with the MSVC
      standard library unless it runs in a mode aware of C++14 (since MSVC
      itself does not even have a lower mode).  When `CMAKE_CXX_STANDARD` is
      set to 98 or 11, use C++14 anyway.
      Since Clang's default mode is aware of C++14, another option is to not
      add any flags for 98 or 11.  However, if a future Clang version ever
      defaults to a higher C++ standard, setting the standard to 98 or 11
      should at least not use a mode higher than 14.
      Also revert test updates from commit 4819ff96 (Tests: fix failures
      with gnu mode clang on windows, 2019-03-21, v3.15.0-rc1~41^2~3) that
      were meant to work around the standard selection problem.
      Fixes: #19496
  2. 24 May, 2019 1 commit
    • Zsolt Parragi's avatar
      Tests: fix failures with gnu mode clang on windows · 4819ff96
      Zsolt Parragi authored
          Root causes were:
          * Using incorrect conditions (assuming MSVC-like command line mode)
          * Trying to compile the MSVC STL in C++11 mode, when parts of it require
            C++14 or enabling MS extensions in clang.
          * Missing flush in a testcase using stdout in a dll and a main part
          with static crt
  3. 07 Aug, 2017 1 commit
  4. 27 Jul, 2016 1 commit
    • Daniel Pfeifer's avatar
      Use string(APPEND) in Tests · 7a649111
      Daniel Pfeifer authored
      Automate with:
      find Tests -type f -print0 | xargs -0 perl -i -0pe \
      's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
  5. 16 Jul, 2016 1 commit
    • Gregor Jasny's avatar
      Do not report ALIASED_TARGET as always set (#15783) · ea647533
      Gregor Jasny authored
      The cmGetPropertyCommand::StoreResult expects NULL for unset
      properties. Make ALIASED_TARGET align with that expectation.
      Additional corrections to the unit tests are necessary because
      get_property removes variables for unset properties (in contrast
      to get_target_property which stores a -NOTFOUND value).
  6. 10 Mar, 2016 1 commit
  7. 08 Nov, 2015 1 commit
    • Stephen Kelly's avatar
      Alias: Fix access at generate-time (#15832) · 4ce9742a
      Stephen Kelly authored
      Commit c389f8bb (cmLocalGenerator: Port Find method away from
      GetGeneratorTarget, 2015-10-25) ported the implementation of
      FindGeneratorTargetToUse away from the FindTargetToUse method,
      but neglected to handle alias targets.
      The latter method has a parameter to determine whether to
      include alias targets in the search, but as that is only
      needed at configure time, this generate-time equivalent does
      not need the condition.
  8. 25 Apr, 2014 1 commit
  9. 04 Jan, 2014 1 commit
  10. 07 Oct, 2013 1 commit
    • Stephen Kelly's avatar
      Add the INTERFACE_LIBRARY target type. · fe732264
      Stephen Kelly authored
      This target type only contains INTERFACE_* properties, so it can be
      used as a structural node. The target-specific commands enforce
      that they may only be used with the INTERFACE keyword when used
      with INTERFACE_LIBRARY targets. The old-style target properties
      matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for
      this target type.
      The name of the INTERFACE_LIBRARY must match a validity generator
      expression. The validity is similar to that of an ALIAS target,
      but with the additional restriction that it may not contain
      double colons. Double colons will carry the meaning of IMPORTED
      or ALIAS targets in CMake 2.8.13.
      An ALIAS target may be created for an INTERFACE library.
      At this point it can not be exported and does not appear in the
      buildsystem and project files are not created for them. That may
      be added as a feature in a later commit.
      The generators need some changes to handle the INTERFACE_LIBRARY
      targets returned by cmComputeLinkInterface::GetItems. The Ninja
      generator does not use that API, so it doesn't require changes
      related to that.
  11. 02 Aug, 2013 1 commit
    • Stephen Kelly's avatar
      Add the ALIAS target concept for libraries and executables. · 370bf554
      Stephen Kelly authored
      * The ALIAS name must match a validity regex.
      * Executables and libraries may be aliased.
      * An ALIAS acts immutable. It can not be used as the lhs
        of target_link_libraries or other commands.
      * An ALIAS can be used with add_custom_command, add_custom_target,
        and add_test in the same way regular targets can.
      * The target of an ALIAS can be retrieved with the ALIASED_TARGET
        target property.
      * An ALIAS does not appear in the generated buildsystem. It
        is kept separate from cmMakefile::Targets for that reason.
      * A target may have multiple aliases.
      * An ALIAS target may not itself have an alias.
      * An IMPORTED target may not have an alias.
      * An ALIAS may not be exported or imported.