1. 04 Aug, 2015 1 commit
  2. 08 Jul, 2015 1 commit
  3. 25 Jun, 2015 1 commit
    • Brad King's avatar
      cmTarget: Fix diagnostic of target_link_libraries in wrong directory (#15626) · 30c2e1dd
      Brad King authored
      Since commit v3.3.0-rc1~62^2~5 (cmTarget: Store only cmListFileContext
      for CMP0023 handling, 2015-05-18) a call to target_link_libraries on a
      target that was defined in another (non-ancestor) directory crashes
      because no execution context is left active.  Fix this by getting the
      execution context from the actual cmMakefile where the current
      target_link_libraries call takes place.  Test this by verifying that
      such calls correctly produce an error diagnostic instead of crashing.
      30c2e1dd
  4. 22 Jun, 2015 1 commit
    • Brad King's avatar
      Fix assertion failure on unmatched function or macro · 5d85fb4f
      Brad King authored
      The fix in commit v3.2.3~3^2 (Fix assertion failure on unmatched foreach
      in function, 2015-05-18) broke handling of unmatched non-loop blocks
      because it assumed all function blockers removed during error unwinding
      were for loops, essentially switching the set of mishandled cases.
      
      The purpose of the loop block push/pop operations is to define a scope
      matching the lifetime of the loop function blockers.  Since our function
      blockers already have the proper lifetime, simply move the push/pop
      operations to their constructor/destructor.
      
      Extend the RunCMake.Syntax test with a case covering this.
      5d85fb4f
  5. 01 Jun, 2015 1 commit
  6. 29 May, 2015 1 commit
  7. 26 May, 2015 2 commits
    • Brad King's avatar
      Tests: Add case for rejecting $<TARGET_FILE:...> on an INTERFACE library · 89253992
      Brad King authored
      Add an explicit test for this existing error.  We already cover it for
      an OBJECT library but INTERFACE libraries are not allowed either.
      89253992
    • Brad King's avatar
      Honor visibility properties for all target types (#15556) · 700f1c3b
      Brad King authored
      The <LANG>_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN were first
      merged in commit v2.8.12~322 (Merge topic 'VISIBILITY_PRESET-property',
      2013-06-05) but worked only for shared libraries and executables with
      exports.  Prior to commit v3.0.0-rc1~581^2 (GenerateExportHeader:
      Deprecate add_compiler_export_flags function., 2013-09-02) the
      add_compiler_export_flags function was used to add visibility flags to
      all targets.
      
      The visibility flags are useful for sources in all target types because
      they may be later linked into shared libraries or executables with
      exports.  Introduce policy CMP0063 to enable them for all target types
      while preserving compatibility with existing projects that do not expect
      this.
      700f1c3b
  8. 22 May, 2015 2 commits
    • Brad King's avatar
      Tests: Refactor RunCMake.VisibilityPreset test setup · ab55b3b5
      Brad King authored
      Enable languages only in the individual test case.  Enable the test
      everywhere except Visual Studio generators (which do not implement the
      properties) and just set fake flags as needed to activate relevant code
      paths.  Drop unneeded CMAKE_SUPPRESS_REGENERATION which seems to have
      been copied from an unrelated test when this test was created.
      ab55b3b5
    • Brad King's avatar
      Makefile: Fix <LANG>_INCLUDE_WHAT_YOU_USE with CTEST_USE_LAUNCHERS · b3475ba5
      Brad King authored
      The 'ctest --launch' command must be placed before the IWYU launcher on
      the compiler command line.  Extend the RunCMake.IncludeWhatYouUse test
      to cover this case.  The Ninja generator already does it correctly.
      b3475ba5
  9. 19 May, 2015 2 commits
  10. 18 May, 2015 2 commits
    • Stephen Kelly's avatar
    • Brad King's avatar
      Fix assertion failure on unmatched foreach in function (#15572) · 3a656065
      Brad King authored
      The lexical scope counting added by commit v3.2.0-rc1~332^2~1 (Track
      nested loop levels in CMake language with a stack of counters,
      2014-11-18) forgot to account for scopes popped by error messages about
      unclosed scopes.  Teach the error handler to pop the lexical scope it
      reports as unclosed.  Re-order the lexical scope RAII object to be
      inside the variable scope RAII object scope so that the lexical scope
      is fully closed before we check assertions about variable scopes.
      
      Extend the RunCMake.Syntax test with a case covering this.
      3a656065
  11. 17 May, 2015 1 commit
  12. 14 May, 2015 3 commits
  13. 12 May, 2015 1 commit
  14. 08 May, 2015 1 commit
  15. 07 May, 2015 1 commit
    • Brad King's avatar
      execute_process: Improve stdout/stderr merging · f65bb82f
      Brad King authored
      Use the KWSys Process "MergeOutput" option to give the child process
      the same pipe (or file) for both stdout and stderr.  This allows
      natural merging of stdout and stderr together instead of merging
      on arbitrary buffered read boundaries as before.
      f65bb82f
  16. 30 Apr, 2015 2 commits
  17. 29 Apr, 2015 1 commit
  18. 27 Apr, 2015 2 commits
  19. 22 Apr, 2015 1 commit
  20. 21 Apr, 2015 1 commit
  21. 20 Apr, 2015 2 commits
  22. 17 Apr, 2015 1 commit
  23. 15 Apr, 2015 2 commits
  24. 12 Apr, 2015 1 commit
  25. 10 Apr, 2015 5 commits
  26. 09 Apr, 2015 1 commit
    • Brad King's avatar
      Link libraries by full path even in implicit directories · 882f48e5
      Brad King authored
      When CMP0003 was first introduced we wanted to link all libraries by
      full path.  However, some projects had problems on platforms where
      find_library would find /usr/lib/libfoo.so when the project really
      wanted to link to /usr/lib/<arch>/libfoo.so and had been working by
      accident because pre-CMP0003 behavior used -lfoo to link.
      
      We first tried to address that in commit v2.6.0~440 (Teach find_library
      to avoid returning library paths in system directories, 2008-01-23) by
      returning just "foo" for libraries in implicit link directories.  This
      caused problems for projects expecting find_library to always return a
      full path.  We ended up using the solution in commit v2.6.0~366 (...
      switch library paths found in implicit link directories to use -l,
      2008-01-31).  However, the special case for libraries in implicit link
      directories has also proven problematic and confusing.
      
      Introduce policy CMP0060 to switch to linking all libraries by full path
      even if they are in implicit link directories.  Explain in the policy
      documentation the factors that led to the original approach and now to
      this approach.
      882f48e5