1. 11 Dec, 2012 11 commits
    • Brad King's avatar
      OS X: Detect implicit linker framework search paths · cc676c3a
      Brad King authored
      Previously we hard-coded a list of implicit framework directories but
      did not account for CMAKE_OSX_SYSROOT or for changes to the list across
      OS X versions.  Instead we should automatically detect the framework
      directories for the active toolchain.
      
      The parent commit added the "-Wl,-v" option to ask "ld" to print its
      implicit directories.  It displays a block such as:
      
       Framework search paths:
      	/...
      
      Parse this block to extract the list of framework directories.
      
      Detection may fail on toolchains that do not list their framework
      directories, such as older OS X linkers.  Always treat the paths
      
       <sdk>/Library/Frameworks
       <sdk>/System/Library/Frameworks
       <sdk>/Network/Library/Frameworks # Older OS X only
       /System/Library/Frameworks
      
      as implicit.  Note that /System/Library/Frameworks should always be
      considered implicit so that frameworks CMake finds there will not
      override the SDK copies.
      cc676c3a
    • Brad King's avatar
      OS X: Detect implicit link directories on modern toolchains · 2dd67c7e
      Brad King authored
      We detect the implicit link directories for the toolchain by adding a
      flag to get verbose output from the compiler front-end while linking the
      ABI detection binary.  Newer OS X toolchains based on Clang do not add
      the implicit link directories with -L options to their internal
      invocation of "ld".  Instead they use a linker that comes with the
      toolchain and is already configured with the proper directories.
      
      Add the "-Wl,-v" option to ask "ld" to print its implicit directories.
      It displays them in a block such as:
      
       Library search paths:
      	/...
      
      Parse this block to extract the implicit link directories.
      
      While at it, remove the checks introduced by commit efaf335b (Skip
      implicit link information on Xcode, 2009-07-23) and commit 5195a664
      (Skip implicit link info for multiple OS X archs, 2009-09-22).  Discard
      the non-system link directories added by Xcode.  Discard all detected
      implicit libraries in the multi-architecture case but keep the
      directories.  The directories are still useful without the libraries
      just to suppress addition of explicit -L options for them.
      2dd67c7e
    • Brad King's avatar
      OS X: Link with all framework search paths, not just the last · ba58d0c0
      Brad King authored
      Refactoring in commit 8d674e78 (Ninja: move -LIBPATH behind -link
      option, 2012-09-26) accidentally added code that overwrites the
      framework search path flags on each iteration instead of appending.
      Change '=' to '+=' to fix it.  This affects Makefile and Ninja
      generators.
      ba58d0c0
    • David Cole's avatar
      Merge topic 'fix-13657-more-gcov47-output' · d0369a98
      David Cole authored
      61ace1df CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)
      d0369a98
    • David Cole's avatar
      Merge topic 'xcode-framework-paths' · bc9dcadf
      David Cole authored
      f0d93854 Makefile: Use modern link information for framework search paths
      2bc22bda Xcode: Add frameworks search paths from link dependeny closure (#13397)
      bc9dcadf
    • David Cole's avatar
      Merge topic 'TheRealAutomocIncludeDirFix' · 7b20f893
      David Cole authored
      acc22400 Automoc: get include dirs without stripping implicit include dirs off
      7b20f893
    • David Cole's avatar
      Merge topic 'skip-variable-re-expansion' · 28c6d326
      David Cole authored
      711b63f7 Add policy CMP0019 to skip include/link variable re-expansion
      28c6d326
    • David Cole's avatar
      Merge topic 'ConfigHelperMinorCommentFix' · 3d0f1957
      David Cole authored
      8039bd08 CONFIGURE_PACKAGE_CONFIG_FILE(): improve generated comments
      3d0f1957
    • David Cole's avatar
      Merge topic 'add-timestamp-subcommands' · b575eadc
      David Cole authored
      12d87c04 CMake: Fix dashboard build errors and warnings
      e28ce248 CMake: Fix dashboard test failure
      354ecc1e CMake: Fix dashboard warnings
      d842d906 CMake: Stylistic changes and documentation tweaks
      711e2b3b CMake: Add TIMESTAMP subcommand to string and file commands
      b575eadc
    • David Cole's avatar
      Merge topic 'OpenBSD-patches' · d73c4057
      David Cole authored
      f80ccac1 OpenBSD: Add paths for Qt3/Qt4
      d73c4057
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · ab2b1f44
      Kitware Robot authored
      ab2b1f44
  2. 10 Dec, 2012 2 commits
  3. 09 Dec, 2012 1 commit
  4. 08 Dec, 2012 1 commit
  5. 07 Dec, 2012 5 commits
    • Brad King's avatar
      Makefile: Use modern link information for framework search paths · f0d93854
      Brad King authored
      Use cmComputeLinkInformation::GetFrameworkPaths to get the list of
      framework paths needed by the linker.  Drop the now unused framework
      information from the old-style cmTarget link dependency analysis.
      f0d93854
    • Alexander Neundorf's avatar
      Automoc: get include dirs without stripping implicit include dirs off · acc22400
      Alexander Neundorf authored
      This should finally fix #13667 and #13762.
      Instead of adding special handling to guess whether implicit include dirs
      may have been removed, simply make it possible to query the include dirs
      without removing the implicit ones.
      
      Alex
      acc22400
    • Brad King's avatar
      Xcode: Add frameworks search paths from link dependeny closure (#13397) · 2bc22bda
      Brad King authored
      The Xcode generator produces FRAMEWORK_SEARCH_PATHS from:
      
      (1) Include directories of the form /path/to/Foo.framework become
          -F/path/to so '#include <Foo/H>' can find H in the framework.
      
      (2) Linked frameworks of the form /path/to/Foo.framework become
          -F/path/to -framework Foo so the linker can find the framework.
      
      Originally commit 82bb6fae (add framework support to FIND_FILE,
      2005-12-27) added these and used the (then current) old-style link
      dependency analysis results to get the frameworks.  Later a second
      setting was added by commit 2ed6191f (add initial xcode framework stuff,
      2007-05-08) to transform -F/path/to linker options produced by the old
      link line generation into entries appended to FRAMEWORK_SEARCH_PATHS.
      Then commit 96fd5909 (Implement linking with paths to library files,
      2008-01-22) updated the second setting to directly use the results of
      full modern link dependency analysis, but forgot to remove the use of
      old-style link results from the original setting location.
      
      The two settings worked together for a while, with the second one
      appending to the first.  Then commit f33a27ab (Generate native Xcode 3.0
      and 3.1 projects, 2009-06-29) changed the internal representation format
      produced by the first setting but did not update the second setting to
      append to the new representation.  As a result, if the first setting
      added any paths (usually via the old-style link analysis) then the
      second setting containing the modern link analysis results would not be
      applied at all.
      
      Fix this by removing use of the old-style link analysis results.
      Replace it using the modern link dependencies and remove the second
      setting altogether.  Now all values for FRAMEWORK_SEARCH_PATHS are
      collected in one place so no special append logic is needed.
      2bc22bda
    • Brad King's avatar
      Add policy CMP0019 to skip include/link variable re-expansion · 711b63f7
      Brad King authored
      Historically CMake has always expanded ${} variable references in the
      values given to include_directories(), link_directories(), and
      link_libraries().  This has been unnecessary since general ${}
      evaluation syntax was added to the language a LONG time ago, but has
      remained for compatibility with VERY early CMake versions.
      
      For a long time the re-expansion was a lightweight operation because it
      was only processed once at the directory level and the fast-path of
      cmMakefile::ExpandVariablesInString was usually taken because values did
      not have any '$' in them.  Then commit d899eb71 (Call
      ExpandVariablesInString for each target's INCLUDE_DIRECTORIES,
      2012-02-22) made the operation a bit heavier because the expansion is
      now needed on a per-target basis.  In the future we will support
      generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the
      fast-path in cmMakefile::ExpandVariablesInString will no longer be taken
      and re-expansion will be very expensive.
      
      Add policy CMP0019 to skip the re-expansion altogether in NEW behavior.
      In OLD behavior perform the expansion but improve the fast-path
      heuristic to match ${} but not $<>.  If the policy is not set then warn
      if expansion actually does anything.  We expect this to be encountered
      very rarely in practice.
      711b63f7
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · 2be87f8f
      Kitware Robot authored
      2be87f8f
  6. 06 Dec, 2012 3 commits
  7. 05 Dec, 2012 16 commits
  8. 04 Dec, 2012 1 commit
    • David Cole's avatar
      CPack: Fix dashboard errors and warnings (#11575) · a74bd470
      David Cole authored
      ...revealed by the Nightly dashboard runs last night.
      
      Use "size_t" instead of "std::size_t" so that it compiles with
      Visual Studio 6, too.
      
      Fix warnings about shadowed "tmp" local variable and ordering of
      member variables vs. lines of code in the constructor initializer
      list.
      a74bd470