summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* OS X: Detect implicit linker framework search pathsBrad King2012-12-1110-22/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* OS X: Detect implicit link directories on modern toolchainsBrad King2012-12-115-15/+134
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* OS X: Link with all framework search paths, not just the lastBrad King2012-12-111-1/+1
| | | | | | | | 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.
* Merge topic 'fix-13657-more-gcov47-output'David Cole2012-12-111-4/+11
|\ | | | | | | | | 61ace1d CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)
| * CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)David Cole2012-12-101-4/+11
| | | | | | | | And do not report them as errors.
* | Merge topic 'xcode-framework-paths'David Cole2012-12-114-62/+26
|\ \ | | | | | | | | | | | | | | | f0d9385 Makefile: Use modern link information for framework search paths 2bc22bd Xcode: Add frameworks search paths from link dependeny closure (#13397)
| * | Makefile: Use modern link information for framework search pathsBrad King2012-12-073-37/+15
| | | | | | | | | | | | | | | | | | 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.
| * | Xcode: Add frameworks search paths from link dependeny closure (#13397)Brad King2012-12-071-25/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge topic 'TheRealAutomocIncludeDirFix'David Cole2012-12-113-71/+21
|\ \ \ | | | | | | | | | | | | | | | | acc2240 Automoc: get include dirs without stripping implicit include dirs off
| * | | Automoc: get include dirs without stripping implicit include dirs offAlex Neundorf2012-12-073-71/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge topic 'skip-variable-re-expansion'David Cole2012-12-1112-13/+145
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 711b63f Add policy CMP0019 to skip include/link variable re-expansion
| * | | | Add policy CMP0019 to skip include/link variable re-expansionBrad King2012-12-0712-13/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge topic 'ConfigHelperMinorCommentFix'David Cole2012-12-111-0/+5
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 8039bd0 CONFIGURE_PACKAGE_CONFIG_FILE(): improve generated comments
| * | | | | CONFIGURE_PACKAGE_CONFIG_FILE(): improve generated commentsAlex Neundorf2012-12-061-0/+5
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIGURE_PACKAGE_CONFIG_FILE() now additionally generates "Any changes to this file will be overwritten by the next CMake run The input file was FooConfig.cmake.in" into the configured file. Alex
* | | | | Merge topic 'add-timestamp-subcommands'David Cole2012-12-1123-1/+421
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 12d87c0 CMake: Fix dashboard build errors and warnings e28ce24 CMake: Fix dashboard test failure 354ecc1 CMake: Fix dashboard warnings d842d90 CMake: Stylistic changes and documentation tweaks 711e2b3 CMake: Add TIMESTAMP subcommand to string and file commands
| * | | | | CMake: Fix dashboard build errors and warningsDavid Cole2012-12-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | memset is not in std:: for VS6, and though quite silly, 0 is not a char
| * | | | | CMake: Fix dashboard test failureDavid Cole2012-12-051-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eliminate the platform difference in calling stat. We call stat normally in other places in the CMake code base just fine. Works everywhere we work. Will hopefully also fix the Borland Continuous dashboard failure that is occurring with respect to correctly measuring the modification time of a freshly generated file.
| * | | | | CMake: Fix dashboard warningsDavid Cole2012-12-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | ...in the new file and string TIMESTAMP sub-commands
| * | | | | CMake: Stylistic changes and documentation tweaksDavid Cole2012-12-054-30/+33
| | | | | | | | | | | | | | | | | | | | | | | | ...for the contributed file and string TIMESTAMP sub-commands.
| * | | | | CMake: Add TIMESTAMP subcommand to string and file commandsNils Gladitz2012-12-0524-1/+424
| | | | | |
* | | | | | Merge topic 'OpenBSD-patches'David Cole2012-12-113-8/+24
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | f80ccac OpenBSD: Add paths for Qt3/Qt4
| * | | | | | OpenBSD: Add paths for Qt3/Qt4Amit Kulkarni2012-12-053-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle OpenBSD specific paths in Qt3/Qt4, allowing concurrent building and installation. Some common programs are renamed with suffixes of either 3 or 4. Also, allow qt3/qt4 installed under /usr/local to be searched and recognized appropriately.
* | | | | | | CMake Nightly Date StampKitware Robot2012-12-111-1/+1
| |_|_|_|_|/ |/| | | | |
* | | | | | CMake Nightly Date StampKitware Robot2012-12-101-1/+1
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2012-12-091-1/+1
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2012-12-081-1/+1
| |_|_|_|/ |/| | | |
* | | | | CMake Nightly Date StampKitware Robot2012-12-071-1/+1
| |_|/ / |/| | |
* | | | CMake Nightly Date StampKitware Robot2012-12-061-1/+1
| |/ / |/| |
* | | Merge topic 'fix-11575-add-wix-support-to-cpack'David Cole2012-12-0519-1/+1453
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | a74bd47 CPack: Fix dashboard errors and warnings (#11575) ad0f735 CPack: Fix dashboard warnings (#11575) 0729ad4 CPack: Fix dashboard errors (#11575) 85baac1 CPack: Add a WiX Generator (#11575)
| * | | CPack: Fix dashboard errors and warnings (#11575)David Cole2012-12-045-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...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.
| * | | CPack: Fix dashboard warnings (#11575)David Cole2012-12-031-6/+7
| | | | | | | | | | | | | | | | | | | | Fix int vs. size_t conversion warnings that only showed up in the 64-bit builds.
| * | | CPack: Fix dashboard errors (#11575)David Cole2012-12-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Use same technique here with UuidToString as already found in cmGlobalVisualStudio7Generator::CreateGUID to avoid using a type that is not defined on older systems... (VS 7.0 and Borland)
| * | | CPack: Add a WiX Generator (#11575)Nils Gladitz2012-12-0319-1/+1452
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new CPack generator produces an *.msi installer file. Requires having the WiX Toolset installed in order to work properly. Download the WiX Toolset installer "WiX36.exe" here: http://wix.codeplex.com/releases/view/93929
* | | | Merge topic 'OpenBSD-patches'David Cole2012-12-057-1/+34
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 2f49b71 OpenBSD: Add path for Lua 5.1 4a015f7 OpenBSD: Add paths for Tcl/Tk 8.4/8.5 51c1119 OpenBSD: Add path for Freetype under X.org 6e7a345 OpenBSD: Add paths for Java 1.6.0/1.7.0 JRE/JDK 288f75e OpenBSD: Install shared libraries without executable permission
| * | | OpenBSD: Add path for Lua 5.1Amit Kulkarni2012-12-041-1/+1
| | | |
| * | | OpenBSD: Add paths for Tcl/Tk 8.4/8.5Amit Kulkarni2012-12-041-0/+8
| | | |
| * | | OpenBSD: Add path for Freetype under X.orgAmit Kulkarni2012-12-041-0/+3
| | | |
| * | | OpenBSD: Add paths for Java 1.6.0/1.7.0 JRE/JDKAmit Kulkarni2012-12-043-0/+18
| | | |
| * | | OpenBSD: Install shared libraries without executable permissionAmit Kulkarni2012-12-041-0/+4
| | | |
* | | | Merge topic 'fix-13770-folders-w-vs11-express'David Cole2012-12-053-1/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 7fa0f4b VS11: Allow using folders with the VS11 Express Edition (#13770)
| * | | | VS11: Allow using folders with the VS11 Express Edition (#13770)David Cole2012-12-033-1/+11
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Solution folders are supported as read-only in the VS11 Express Edition, so do not prohibit their use just because we detect the express edition (as we did in the VS10 generator). Inspired-by: Paris
* | | | Merge topic 'qt4-include-as-system'David Cole2012-12-052-2/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 691ac05 Qt4: Add SYSTEM option to include_directories.
| * | | | Qt4: Add SYSTEM option to include_directories.Clinton Stimpson2012-12-032-2/+14
| |/ / / | | | | | | | | | | | | Thanks to Scott Bailey and Benjamin Kloster.
* | | | Merge topic 'ChangeSDLLinkLibraryOrder'David Cole2012-12-051-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 981629f Swap linking order of SDLmain and SDL (#0013769)
| * | | | Swap linking order of SDLmain and SDL (#0013769)Benjamin Eikel2012-12-021-1/+1
| | | | |
* | | | | Merge topic 'windows-ce'David Cole2012-12-054-11/+7
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6b40e1b VS: Ignore LIBC.lib when linking the CompilerId executables 8e85822 VS: Add the entry point when compiling for WindowsCE 5bf9fd8 VS: Set the correct SubSystem when determinating the CompilerId
| * | | | | VS: Ignore LIBC.lib when linking the CompilerId executablesPatrick Gansterer2012-11-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Windows CE linkers want to link against LIBC.lib, but can not find them. Since they are not required we can simply ignore it.
| * | | | | VS: Add the entry point when compiling for WindowsCEPatrick Gansterer2012-11-304-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the entry point to mainACRTStartup to make sure that main() can be found when linking the application to check the compiler.
| * | | | | VS: Set the correct SubSystem when determinating the CompilerIdPatrick Gansterer2012-11-302-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Some WinCE linker only work when the subsystem is set to WINDOWSCE.
* | | | | | Merge topic 'avoid-undefined-behavior'David Cole2012-12-051-4/+32
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6a6a6f3 libarchive: fixed undefined left shift with signed ints