Commit Graph

15911 Commits

Author SHA1 Message Date
Stephen Kelly c0ea4c5c6f Makefile: Fix comment indentation. 2014-02-17 11:14:18 +01:00
Stephen Kelly 5e0c73c78c cmGlobalGenerator: Remove unused variable. 2014-02-17 11:13:44 +01:00
Stephen Kelly 907c09cd31 include_directory: Add missing include.
The cmGeneratorExpression is used here, but the header for it is not
in the include heirarchy.  This would be a compile error if the file
were compiled as a standalone translation unit, but it is instead
used in a mini-unity-build by inclusion in cmCommands.cxx. The header
for cmGeneratorExpression happens to be included first, so the
compilation works fine.

IDEs do not know this however, and flag the use as an error.
2014-02-17 11:08:58 +01:00
Kevin Funk 317d8498aa Small typo fix 2014-02-17 11:07:41 +01:00
Kitware Robot b1d34182b8 CMake Nightly Date Stamp 2014-02-17 00:01:07 -05:00
Kitware Robot 0c958c44af CMake Nightly Date Stamp 2014-02-16 00:01:05 -05:00
Kitware Robot 66bf178346 CMake Nightly Date Stamp 2014-02-15 00:01:11 -05:00
Stephen Kelly 9db9c1fc8b cmTarget: Don't try to get sources of an INTERFACE_LIBRARY.
An an assert to ensure this.
2014-02-14 13:53:14 +01:00
Kitware Robot 945a66a543 CMake Nightly Date Stamp 2014-02-14 00:01:05 -05:00
Brad King 79bb8cfcf3 Merge topic 'dev/ninja-speedup'
26762e16 Ninja: Cache target-level flags
2014-02-13 10:28:32 -05:00
Brad King aa23381253 Merge topic 'osx-sysroot-escape'
77b2e6f1 OS X: Escape path given to -isysroot flag
2014-02-13 10:28:29 -05:00
Ben Boeckel 26762e1681 Ninja: Cache target-level flags
Instead of figuring out target flags per-source file, cache the flags
that are being used. This results in a *much* faster generate time for
Ninja.
2014-02-13 10:20:56 -05:00
Kitware Robot c56854aa0e CMake Nightly Date Stamp 2014-02-13 00:01:07 -05:00
Brad King 54d9e01487 Merge topic 'backward-compatibility'
f2eee72f add_custom_command: Disallow use of SOURCE signatures.
c248a437 Add policy CMP0049 to avoid variable expansion in source lists
2014-02-12 11:31:30 -05:00
Brad King 764d467d24 Merge topic 'dev/fix-sublime-compile-flags'
2d9f93ab Sublime: Pass language and config properly
2014-02-12 11:31:28 -05:00
Brad King 0d177cf383 Merge topic 'cmake-devel-version-macro'
6ca6613a Export: Use the CMAKE_DEVEL_VERSION macro for build-export files.
2014-02-12 11:31:26 -05:00
Stephen Kelly f2eee72fac add_custom_command: Disallow use of SOURCE signatures.
Add CMP0050 to control this behavior.
2014-02-12 11:19:27 -05:00
Stephen Kelly c248a437c4 Add policy CMP0049 to avoid variable expansion in source lists 2014-02-12 11:17:38 -05:00
Brad King 77b2e6f1d8 OS X: Escape path given to -isysroot flag
Ensure that paths containing spaces or other special characters are
escaped correctly on the command line.
2014-02-12 10:49:10 -05:00
Brad King 7b1f966a6c Windows: Make file delete/rename retry configurable
Several CMake operations need to replace files in rapid succession.
This commonly fails on Windows due to filesystem lock behavior so
we have retry loops.  No matter how many times we retry or how long
we delay there will inevitably be someone with an environment that
needs more.  Make the retry count and delay configurable in the
Windows Registry keys:

 {HKCU,HKLM}/Software/Kitware/CMake/Config

in DWORD values

 FilesystemRetryCount = Number of tries
 FilesystemRetryDelay = Delay in milliseconds between tries

Leave the feature undocumented for now to see how it goes.
2014-02-12 09:55:41 -05:00
Kitware Robot 5104f55d3f CMake Nightly Date Stamp 2014-02-12 00:01:06 -05:00
Ben Boeckel 2d9f93ab24 Sublime: Pass language and config properly 2014-02-11 14:41:43 -05:00
Stephen Kelly 6ca6613ab8 Export: Use the CMAKE_DEVEL_VERSION macro for build-export files.
Move the macro definition to the cmExportBuildFileGenerator.h header
to share it.
2014-02-11 16:31:53 +01:00
Brad King 418a155be7 Merge topic 'cmake-devel-version-macro'
9bcc1b21 Export: Fix internal CMake version test logic
d2059d25 cmVersion: Fix CMake_VERSION_ENCODE for date in patch level
28805109 cmStandardIncludes: Include cmIML/INT.h for portable integer types
2014-02-11 09:16:09 -05:00
Brad King cef89d4a1c Merge topic 'backward-compatibility'
37e1894d cmTarget: Remove TODO comment.
2014-02-11 09:16:06 -05:00
Brad King e44bbec013 Merge topic 'eclipse-hotfix'
311c0b98 Eclipse: Skip generator expressions in COMPILE_DEFINITIONS (#14722)
2014-02-11 09:16:04 -05:00
Brad King a12dd791dd Merge topic 'graphviz-one-file'
18bef4cd graphviz: allow to disable per target graphs (#14746)
2014-02-11 09:16:02 -05:00
Stephen Kelly 37e1894d32 cmTarget: Remove TODO comment.
The current behavior is desirable because while it is common to
set a per-config suffix on libraries, it is not common for exexutables.
2014-02-11 11:05:01 +01:00
Kitware Robot ab6231f37c CMake Nightly Date Stamp 2014-02-11 00:01:05 -05:00
Brad King 9bcc1b21f0 Export: Fix internal CMake version test logic
Fix the internal DEVEL_CMAKE_VERSION macro to use CMake_VERSION_ENCODE
to compare version component-wise.  Otherwise an old invocation of the
macro may be tricked into using the current version when the requested
major version is smaller than the current version but the requested
minor version is larger.  It should use the requested (old) version in
that case.
2014-02-10 15:32:33 -05:00
Brad King d2059d2511 cmVersion: Fix CMake_VERSION_ENCODE for date in patch level
Use a uint64_t to store encoded version numbers so we have plenty of
bits available.  Encode with room for up to 1000 minor releases between
major releases and to encode dates until the year 10000 in the patch
level.  This is necessary because CMake development versions prior to
release 2.8.0 used the date in the patch level, and this practice may be
restored after the 3.0 release.
2014-02-10 15:32:32 -05:00
Brad King 28805109bc cmStandardIncludes: Include cmIML/INT.h for portable integer types
Also teach the bootstrap script to configure the needed headers.
2014-02-10 15:31:40 -05:00
Brad King d7133c0288 Merge topic 'cmake-devel-version-macro'
eaf703f1 Export: Use a macro to ensure minimum development version requirement
2014-02-10 11:25:08 -05:00
Brad King 7b38931a08 Merge topic 'generate-cmCommands-file'
23d3d38a CMakeLists: Generate the cmCommands.cxx file.
2014-02-10 11:25:04 -05:00
Brad King cdcf23bde2 Merge topic 'fix-CMP0028-iface'
b2915238 CMP0028: Trigger on libraries from INTERFACE of dependencies.
2014-02-10 11:25:02 -05:00
Brad King 27d3974c66 Merge topic 'wix_desktop'
b78d74de CPackWiX: Add support for CPACK_CREATE_DESKTOP_LINKS
2014-02-10 11:24:56 -05:00
Brad King 6e149e1591 Merge topic 'interface-library-signatures'
6d85a6a6 add_library: Issue better diagnostic for INTERFACE GLOBAL signature.
770245e9 add_library: Test invalid GLOBAL INTERFACE signature.
2014-02-10 11:24:54 -05:00
Daniel Pfeifer 18bef4cd66 graphviz: allow to disable per target graphs (#14746)
In CMakeGraphVizOptions.cmake, allow the options GRAPHVIZ_GENERATE_PER_TARGET
and GRAPHVIZ_GENERATE_DEPENDERS to enable the generation of per target graphs
and subgraphs respectively. Both options are TRUE per default to maintain
current behavior.
2014-02-10 10:30:50 -05:00
Kitware Robot c1166395b0 CMake Nightly Date Stamp 2014-02-10 00:01:06 -05:00
Stephen Kelly 311c0b9897 Eclipse: Skip generator expressions in COMPILE_DEFINITIONS (#14722)
This is a hot-fix for the bug. It seems like a good idea to generally
reform the generator to care about targets instead of directories,
but this patch at least makes the reported error go away.
2014-02-09 23:44:21 +01:00
Stephen Kelly eaf703f160 Export: Use a macro to ensure minimum development version requirement
Use the version number of the specified release, or of the current
development version if the release is not yet made.
2014-02-09 22:30:30 +01:00
Stephen Kelly 23d3d38a31 CMakeLists: Generate the cmCommands.cxx file.
Define the list of commands in the CMakeLists.txt file. List the
sources in the CMakeLib target, but mark them as HEADER_FILE_ONLY.
This has the effect that IDEs will show the files, though they
will not be built again.

Add a cmCommandsForBootstrap.cxx file for bootstrapping purposes.

Rename the cmExportLibraryDependencies file to match the common
pattern.
2014-02-09 22:02:37 +01:00
Stephen Kelly b29152387d CMP0028: Trigger on libraries from INTERFACE of dependencies. 2014-02-09 15:35:28 +01:00
Kitware Robot 1cc3e9f2e7 CMake Nightly Date Stamp 2014-02-09 00:01:05 -05:00
Timo Rothenpieler b78d74de64 CPackWiX: Add support for CPACK_CREATE_DESKTOP_LINKS 2014-02-08 19:19:33 +01:00
Kitware Robot d582809497 CMake Nightly Date Stamp 2014-02-08 00:01:06 -05:00
Stephen Kelly 6d85a6a64c add_library: Issue better diagnostic for INTERFACE GLOBAL signature. 2014-02-07 15:49:15 +01:00
Kitware Robot 53cffda228 CMake Nightly Date Stamp 2014-02-07 00:01:05 -05:00
Brad King d5c54d0069 Merge topic 'fix-Qt-autogen'
8f8edeb0 QtAutogen: Only add source files to the target if AUTORCC is ON.
2014-02-06 11:10:18 -05:00
Kitware Robot 5f7d7bdd67 CMake Nightly Date Stamp 2014-02-06 00:01:06 -05:00
Brad King 4e4104c4dd Merge topic 'no-policy-tweak-version'
101057b5 Drop tweak version component from CMake Policies
2014-02-05 09:34:34 -05:00
Brad King 43a78f5b29 Merge topic 'FeatureSummary-no-transitive'
a6971f65 FeatureSummary: Don't list transitive package dependencies
2014-02-05 09:34:23 -05:00
Stephen Kelly 8f8edeb09b QtAutogen: Only add source files to the target if AUTORCC is ON.
The qtx_add_resources() macro adds the resource file to the output list
to maintain file-level dependencies.  Having the qrc file in a target
sources is a precondition for AUTORCC to function.

When processing the source files of a target, only add the generated
qrc_<file>.cpp to the target sources if AUTORCC is ON.  This avoids
pre-porting conflict with the macro.

Reported-by: Micha Hergarden
2014-02-05 10:13:39 +01:00
Kitware Robot 2233ddf5ae CMake Nightly Date Stamp 2014-02-05 00:01:06 -05:00
Brad King 101057b500 Drop tweak version component from CMake Policies
Since commit v2.8.2~105^2~2 (Teach CMake Policies about tweak version
component, 2010-04-23), cmPolicies has known how to handle a policy
introduced in a tweak version.  This was done back when we introduced
policies with the current development date version and later updated it
to the release version.  Now we always introduce policies using the next
expected release version and explicitly set the policy to test the NEW
behavior.

CMake Policies (or any other features) should never be introduced in a
tweak (bugfix) release, so drop the infrastructure that allows this.
2014-02-04 16:14:26 -05:00
Brad King f748b59e20 Merge topic 'fix-Qt-autogen'
6053ce22 QtAutogen: Make uic work even when the source is in a subdir.
1fc9ecfa FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
2014-02-04 13:34:54 -05:00
Brad King 01a41bc98c Merge topic 'osx-rpath-unique'
028a5285 OS X: Make sure RPATHs are unique to avoid possible corruption.
2014-02-04 13:34:52 -05:00
Stephen Kelly 6053ce22f6 QtAutogen: Make uic work even when the source is in a subdir.
Modify the includedUis to store the path to the file which includes
the ui file. Reuse that path to generate the output file from the
uic process.
2014-02-04 13:21:43 -05:00
Kitware Robot 5414b0e919 CMake Nightly Date Stamp 2014-02-04 00:01:05 -05:00
Stephen Kelly a6971f6510 FeatureSummary: Don't list transitive package dependencies
Set a global property in the find_package implementation.  Track and
reset that property in the find_dependency macro.  Read the property
in FeatureSummary when determining whether to print output.

This means that packages which are found only as dependencies are not
listed by FeatureSummary, but if a project uses find_package elsewhere
directly, then it will be listed by FeatureSummary.

Suggested-by: Alex Merry

 http://thread.gmane.org/gmane.comp.kde.devel.frameworks/10640
2014-02-03 20:20:42 +01:00
Brad King e863496aca Merge topic 'minor-cleanups'
dcd443d4 cmTarget: Clean up the InsertCompileDefinition implementation.
2014-02-03 11:11:16 -05:00
Brad King 6e43138c3f Merge topic 'constify'
f054201d cmMakefile: Return containers by const reference.
d1ac6ffd cmMakefile: Fix minor indentation inconsistency.
2014-02-03 11:11:13 -05:00
Brad King cdadec9f24 Merge topic 'fix-visibility-inlines-hidden'
efdcebdd VisibilityInlinesHidden: only apply -fvisibility-inlines-hidden to C++ sources
2014-02-03 11:11:11 -05:00
Brad King 7ab204509e Merge topic 'codelite-generator-multi-jobs-bug-fix'
75c05113 CodeLite: Use make -jN switch when generating Unix/MinGW makefiles
2014-02-03 11:11:09 -05:00
Brad King a7f5a6ee12 Merge topic 'project-version-variables'
41d2f2c4 write_basic_package_version_file: use PROJECT_VERSION
7e142c5a project: Manage VERSION variables
16d040c9 project: Add optional LANGUAGES keyword
00007dcc Help: Format project command and variable documentation
2014-02-03 11:10:58 -05:00
Eran Ifrah 75c051139a CodeLite: Use make -jN switch when generating Unix/MinGW makefiles 2014-02-03 10:56:48 -05:00
Clinton Stimpson 028a5285d8 OS X: Make sure RPATHs are unique to avoid possible corruption.
When using link_directories() and including CMAKE_CFG_INTDIR,
one can end up with duplicate RPATHs in the binary which
install_name_tool cannot fix without corrupting the binary.
Also, the cmake_install.cmake file has been fixed to correctly
handle these generator specific variables.
2014-02-03 07:04:54 -07:00
Kitware Robot ee8e63d0c4 CMake Nightly Date Stamp 2014-02-03 00:01:05 -05:00
Stephen Kelly dcd443d4aa cmTarget: Clean up the InsertCompileDefinition implementation.
It accepts a before parameter but is never called with before=true.

compile definitions are sorted by std::set, so it wouldn't make sense
to allow user sorting.
2014-02-02 22:15:07 +01:00
Stephen Kelly f054201d12 cmMakefile: Return containers by const reference.
They are not implicitly shared.
2014-02-02 10:52:35 +01:00
Stephen Kelly d1ac6ffd4a cmMakefile: Fix minor indentation inconsistency. 2014-02-02 10:49:33 +01:00
Kitware Robot cd711ed052 CMake Nightly Date Stamp 2014-02-02 00:01:08 -05:00
Nils Gladitz efdcebddbd VisibilityInlinesHidden: only apply -fvisibility-inlines-hidden to C++ sources 2014-02-01 09:55:24 +01:00
Kitware Robot 6385c71516 CMake Nightly Date Stamp 2014-02-01 00:01:05 -05:00
Kitware Robot f35c01e2a5 CMake Nightly Date Stamp 2014-01-31 00:01:05 -05:00
Kitware Robot 078e9e2c39 CMake Nightly Date Stamp 2014-01-30 00:01:06 -05:00
Brad King bbc82d85e5 Merge topic 'fix-Qt-autogen'
f7ae1d8a QtAutogen: Short-circut some logic when moc is not available.
4b989d5f QtAutogen: Separate source file processing from AUTOMOC.
c48d877d QtAutogen: Make some methods appropriately file-static.
394e86df QtAutogen: Fix autouic target options in the presence of a config.
964d7f2a QtAutogen: Remove unused variables.
0d934efd QtAutogen: Remove read of SKIP_AUTOUIC target property.
321e348e QtAutogen: Use Qt 4 IMPORTED targets to find executable locations.
e96683b0 Qt4: Use IMPORTED executable names with custom commands.
e6182f5d Qt4: Create IMPORTED executable targets for all Qt executables.
2014-01-29 10:05:04 -05:00
Brad King 7e142c5ac2 project: Manage VERSION variables
Teach the project() command to set variables

  {PROJECT,<PROJECT-NAME>}_VERSION{,_MAJOR,_MINOR,_PATCH,_TWEAK}

holding the project version number and its components.  Add project()
command option "VERSION" to specify the version explicitly, and default
to the empty string when it is not given.

Since this clears variables when no VERSION is given, this may change
behavior for existing projects that set the version variables themselves
prior to calling project().  Add policy CMP0048 for compatibility.

Suggested-by: Alex Neundorf <neundorf@kde.org>
2014-01-29 09:45:18 -05:00
Brad King 16d040c958 project: Add optional LANGUAGES keyword
Teach the project() command to recognize an optional "LANGUAGES"
keyword after the project name and prior to the list of languages.
Do not allow multiple copies of the keyword.  If the keyword is
specified and no languages are listed, imply NONE.
2014-01-29 09:40:51 -05:00
Kitware Robot 5d08ba94cf CMake Nightly Date Stamp 2014-01-29 00:01:08 -05:00
Stephen Kelly f7ae1d8ad6 QtAutogen: Short-circut some logic when moc is not available.
This is the case when AUTOMOC is false.  This prevents creating rules
to moc the files in the absense of moc.
2014-01-28 21:04:40 +01:00
Stephen Kelly 4b989d5f15 QtAutogen: Separate source file processing from AUTOMOC.
This will allow using AUTOUIC without using AUTOMOC for example.
2014-01-28 21:04:40 +01:00
Stephen Kelly c48d877d31 QtAutogen: Make some methods appropriately file-static. 2014-01-28 21:04:11 +01:00
Stephen Kelly 394e86df2a QtAutogen: Fix autouic target options in the presence of a config.
Read the correct variable.  Add scopes to prevent escape of variables.
2014-01-28 21:04:10 +01:00
Stephen Kelly 964d7f2ae9 QtAutogen: Remove unused variables. 2014-01-28 21:04:10 +01:00
Stephen Kelly 0d934efd59 QtAutogen: Remove read of SKIP_AUTOUIC target property.
Skipping AUTOUIC for a target is achieved by setting the AUTOUIC
target property go OFF.
2014-01-28 21:04:10 +01:00
Stephen Kelly 321e348e13 QtAutogen: Use Qt 4 IMPORTED targets to find executable locations.
Avoid using the moc from Qt 5 with Qt 4 based targets. Moc generates
a version check to ensure that such generated code does not compile.

The Qt4And5Automoc unit test should have been testing this, but it
was not because the test was broken. In that unit test, moc was run
on trivial files which have no significant content, and in particular
no Q_OBJECT macro.  Therefore moc was generating empty files which
do not even contain the version check.  Fix this by generating files
for input to moc at cmake time.
2014-01-28 21:04:10 +01:00
Kitware Robot 2dfb517f73 CMake Nightly Date Stamp 2014-01-28 00:01:05 -05:00
Brad King ddb792daab Merge topic 'constify'
bde0dab1 cmMakefile: Make ConfigureString const.
bf1e1bf1 cmMakefile: Make FindSourceGroup const.
01d7ceda cmMakefile: Trivially constify some methods.
9073318f cmMakefile: Remove non-const version of method
9b05bc4f cmMakefile: Remove method declarations with no implementation.
c6c0bd9d cmMakefile: Consify custom command API.
d6d4eaac cmMakefile: Constify policies accessors.
2a6e56e0 cmCacheManager: Consify version accessors.
5cc9fb02 cmSourceGroup: Fix method name capitalization.
fe8b0330 cmMakefile: Constify some cmSourceGroup related code.
e68a3ead cmSourceFile: Use a const cmMakefile.
b6292402 cmSourceFileLocation: Use a const cmMakefile.
b33ea578 cmMakefile: Make GetProperty const.
2014-01-27 13:03:39 -05:00
Brad King 5781842bc2 Merge topic 'ctest-update-p4-unknown-revision'
243cfc2f ctest_update: Handle P4 unknown revisions more robustly
2014-01-27 13:03:37 -05:00
Brad King adf309cd0d Merge topic 'ninja-normalize-cmake-rerun-deps'
2c426bfb Ninja: Normalize paths of CMake re-run rule dependencies
2014-01-27 13:03:35 -05:00
Brad King 20263b719f Merge topic 'robust-ep-download-verify'
a432b93b file DOWNLOAD: Display the curl result status when a hash mismatch occurs.
1cb9ef81 file DOWNLOAD: Test non-zero return status.
f73f0fb3 file DOWNLOAD: Add test for bad hash.
b5e2265f ExternalProject: Reattempt download when verification fails.
2014-01-27 13:03:33 -05:00
Kitware Robot d31e68a26e CMake Nightly Date Stamp 2014-01-27 00:01:05 -05:00
Kitware Robot c6d20adaf2 CMake Nightly Date Stamp 2014-01-26 00:01:05 -05:00
Kitware Robot 68beeb34f5 CMake Nightly Date Stamp 2014-01-25 00:01:05 -05:00
Kitware Robot 0183ede2cc CMake Nightly Date Stamp 2014-01-24 00:01:05 -05:00
Kitware Robot 558a779123 CMake Nightly Date Stamp 2014-01-23 00:01:07 -05:00
Stephen Kelly bde0dab15d cmMakefile: Make ConfigureString const. 2014-01-22 21:28:42 +01:00
Stephen Kelly bf1e1bf1d0 cmMakefile: Make FindSourceGroup const.
Return a pointer instead of a reference.  This allows making the accessor
const with the least impact.
2014-01-22 21:28:41 +01:00
Stephen Kelly 01d7ceda5d cmMakefile: Trivially constify some methods. 2014-01-22 15:16:53 +01:00
Stephen Kelly 9073318fc4 cmMakefile: Remove non-const version of method
The const version suffices.
2014-01-22 15:16:41 +01:00
Stephen Kelly 9b05bc4fcc cmMakefile: Remove method declarations with no implementation. 2014-01-22 15:16:40 +01:00
Stephen Kelly c6c0bd9d2f cmMakefile: Consify custom command API. 2014-01-22 15:16:40 +01:00
Stephen Kelly d6d4eaac06 cmMakefile: Constify policies accessors. 2014-01-22 15:16:40 +01:00
Stephen Kelly 2a6e56e078 cmCacheManager: Consify version accessors. 2014-01-22 15:16:40 +01:00
Stephen Kelly 5cc9fb0234 cmSourceGroup: Fix method name capitalization.
Adhere to the dominant style.
2014-01-22 15:16:40 +01:00
Stephen Kelly fe8b0330eb cmMakefile: Constify some cmSourceGroup related code. 2014-01-22 15:16:40 +01:00
Stephen Kelly e68a3eadff cmSourceFile: Use a const cmMakefile. 2014-01-22 15:16:40 +01:00
Stephen Kelly b629240236 cmSourceFileLocation: Use a const cmMakefile. 2014-01-22 15:16:40 +01:00
Stephen Kelly b33ea5783a cmMakefile: Make GetProperty const. 2014-01-22 15:16:40 +01:00
Brad King 0bd4157886 Merge topic 'cmake-rerun-depends'
82d43175 Allow projects to specify extra inputs to CMake
1ef444d6 Add test case to verify CMake does not re-run on first build
2014-01-22 08:47:59 -05:00
Brad King d8d3e9241e Merge topic 'cmake-E-sleep'
94389f63 cmake: Add '-E sleep' command
2014-01-22 08:47:57 -05:00
Brad King 1021ad80f9 Merge topic 'qcc-id'
e00db59d QNX: Introduce QCC compiler id for that QNX platform compiler.
d2dea79b CMakeDetermine*Compiler: Fix typo 'lile' => 'like'
2014-01-22 08:47:55 -05:00
Stephen Kelly e00db59d6c QNX: Introduce QCC compiler id for that QNX platform compiler.
Introduce policy CMP0047 to control resetting the id for
compatibility.

De-duplicate content in the QNX platform file by including the GNU
one. QNX is a form of GNU platform.

Do not clear CMAKE_SHARED_LIBRARY_${lang}_FLAGS variables.  They
are populated again later by the Compiler/GNU.cmake file anyway.

Modify the CMAKE_CXX_COMPILE_OBJECT variable only when the QCC
compiler id is in use, and the language is CXX.  Use the QNX
recommended flag for QCC instead of the gcc compatible -x flag.

Populate new module files to handle system includes and depfiles
when using the QCC compiler.

Remove code which unsets the system include and depfiles related
variables.  When a GNU driver is used instead of the QCC one, the
appropriate flags will be used.  These variables were previously
cleared for lowest-common-denominator compatibility with both
drivers.
2014-01-22 08:47:32 -05:00
Pedro Navarro 243cfc2f6f ctest_update: Handle P4 unknown revisions more robustly
Mark unknown revisions as such and fail instead of reporting revision 0.
Otherwise CTest reports massive file updates between revisions when the
server timeouts while trying to fetch the current revision number.
2014-01-22 08:33:33 -05:00
Kitware Robot 041690c42c CMake Nightly Date Stamp 2014-01-22 00:01:06 -05:00
Brad King 2c426bfb2d Ninja: Normalize paths of CMake re-run rule dependencies
Send all implicit dependencies through ConvertToNinjaPath.
Add CMakeCache.txt before uniquifying the list.
2014-01-21 14:29:55 -05:00
Brad King 82d4317503 Allow projects to specify extra inputs to CMake
Define a new 'CMAKE_CONFIGURE_DEPENDS' directory property that projects
can use to specify input files to the CMake configuration process.
Extend the RunCMake.Configure test to verify that the build system
re-runs CMake when this input changes.
2014-01-21 14:14:49 -05:00
Brad King 94389f6388 cmake: Add '-E sleep' command
Add a cmake command-line interface to provide a cross-platform 'sleep'.
2014-01-21 13:50:49 -05:00
Brad King a86865e96c Merge topic 'cmake-E-symlink-replace-dangling'
e0228e2b cmake: Improve '-E create_symlink' edge case handling (#14713)
2014-01-21 08:51:39 -05:00
Kitware Robot 1eb4d035c0 CMake Nightly Date Stamp 2014-01-21 00:01:06 -05:00
Brad King e0228e2b04 cmake: Improve '-E create_symlink' edge case handling (#14713)
The logic added by commit ffc0b5e4 (Overwrite the symlink if it already
exists, 2007-02-15) does not recognize and remove existing broken links
before replacing them.  Improve the logic to remove any existing
destination file or link (but not directory).  On failure, report an
error message explaining why the existing path could not be removed or
the new one could not be created.

Add a RunCMake.CommandLine test to cover 'cmake -E' cases.  Start with
test cases covering 'cmake -E create_symlink' behavior on UNIX platforms.
2014-01-20 14:02:21 -05:00
Brad King 325f851403 Merge topic 'KateDontRequireVariable'
e02cdba0 Kate: use cmMakefile::GetSafeDefinition() for a not-required variable
2014-01-20 10:59:21 -05:00
Kitware Robot 1b3958130e CMake Nightly Date Stamp 2014-01-20 00:01:05 -05:00
Kitware Robot dfec274bdf CMake Nightly Date Stamp 2014-01-19 00:01:04 -05:00
Kitware Robot 434fe2baa2 CMake Nightly Date Stamp 2014-01-18 00:01:06 -05:00
Brad King e046e2c67d Merge topic 'xcode-storyboard-view'
1ce02ebf Xcode: Fix storyboard view
d9f1f917 Xcode: Remove dead code
2014-01-17 09:24:57 -05:00
Brad King 62ebff26a7 Merge topic 'cmmakefile-const'
c768e398 cmMakefile: make some methods take const std::string& instead of const char*
2014-01-17 09:24:54 -05:00
Alex Neundorf e02cdba054 Kate: use cmMakefile::GetSafeDefinition() for a not-required variable
...otherwise the generator failed in embedded projects via
externalproject(), since there CMAKE_KATE_MAKE_ARGUMENT is not set.
Using GetSafeDefinition() is good enough to protect against
NULL-pointers.

Alex
2014-01-17 14:04:33 +01:00
Kitware Robot 9f0270aaae CMake Nightly Date Stamp 2014-01-17 00:01:08 -05:00
Ruslan Baratov 1ce02ebfd5 Xcode: Fix storyboard view
Images and xib files must have 'lastKnownFileType' attribute to be
displayed correctly. If xib file has attribute 'explicitFileType' it is
displayed as raw xml. If static image has attribute 'explicitFileType'
it is displayed as question mark on storyboard.
2014-01-16 13:46:21 -05:00
Ruslan Baratov d9f1f917c4 Xcode: Remove dead code
Variable 'ext' already checked for equality to "xib" so remove the
branch that will never be executed.
2014-01-16 13:43:47 -05:00
Rolf Eike Beer c768e398f9 cmMakefile: make some methods take const std::string& instead of const char*
Most callers already have a std::string, on which they called c_str() to pass it
into these methods, which internally converted it back to std::string. Pass a
std::string directly to these methods now, avoiding all these conversions.
Those methods that only pass in a const char* will get the conversion to
std::string now only once.
2014-01-16 09:28:29 -05:00
Brad King 9465242d01 Merge topic 'ninja_fix_rerun'
20e595ab Revert "Ninja: Track configured files so we can regenerate them."
2014-01-16 09:24:15 -05:00
Brad King ce362f27d6 Merge topic 'revert-ninja_fix_rerun'
79859689 Revert "Ninja: Avoid re-running CMake on next build after regeneration"
2014-01-16 09:24:13 -05:00
Brad King 2d5d690ea6 Merge topic 'var-type-autofill'
cfec180d cmake-gui: Remember variable type in Add Entry
2014-01-16 09:24:11 -05:00
Sergey Zolotarev cfec180d66 cmake-gui: Remember variable type in Add Entry
Store variable types together with their names in the variable completion
list so that the type is automatically recovered when you select a variable.

Keep variable names and types in separate lists.  This removes the :TYPE
string from completion list and the Name field and makes variable search
easier.  The variable names and types are now kept in two different
settings - AddVariableNames and AddVariableTypes.  Drop the old
AddVariableCompletionEntries setting.
2014-01-16 09:23:36 -05:00
Kitware Robot 4e4951c9fc CMake Nightly Date Stamp 2014-01-16 00:01:08 -05:00
Matt McCormick a432b93b79 file DOWNLOAD: Display the curl result status when a hash mismatch occurs. 2014-01-15 20:08:44 -05:00
Brad King 20e595aba8 Revert "Ninja: Track configured files so we can regenerate them."
Revert commit 4a6397a7 (Ninja: Track configured files so we can
regenerate them, 2013-06-17).  The files reported by the method
cmMakefile::GetOutputFiles() must cause CMake to re-run only if they are
missing and without considering a timestamp.  This is not the meaning of
the implicit dependencies field so Ninja re-runs CMake too often.

Another solution will have to be found to the original problem.
2014-01-15 16:37:25 -05:00
Brad King 7985968900 Revert "Ninja: Avoid re-running CMake on next build after regeneration"
Revert commit 6fac24d7 (Ninja: Avoid re-running CMake on next build
after regeneration, 2014-01-09).  The files reported by the method
cmMakefile::GetOutputFiles() must cause CMake to re-run only if they are
missing and without considering a timestamp.  Therefore they cannot be
listed as outputs of the re-run rule or Ninja will re-run CMake every
time because the timestamp of configure_file outputs does not change.

Another solution will have to be found to the original problem.
2014-01-15 16:33:22 -05:00
Brad King c4e5e17f38 Merge topic 'skip-return-code'
3a0d164b allow to mark a test as "Not Run" with a specific return code (#8466)
2014-01-15 10:12:04 -05:00
Kitware Robot 556b16db9c CMake Nightly Date Stamp 2014-01-15 00:01:05 -05:00
Rolf Eike Beer 3a0d164bb2 allow to mark a test as "Not Run" with a specific return code (#8466) 2014-01-14 23:57:40 +01:00
Brad King d5639044d3 Merge topic 'fix-cb-nmake-quotes'
f2b47197 CodeBlocks: fix unescaped command quotes when used with nmake
2014-01-14 08:56:05 -05:00
Kitware Robot 31e1c39c57 CMake Nightly Date Stamp 2014-01-14 00:01:07 -05:00
Nils Gladitz f2b47197dc CodeBlocks: fix unescaped command quotes when used with nmake 2014-01-13 23:15:26 +01:00
Brad King 071005add1 Merge topic 'support-codelite-ide-generator'
0c4e8c70 Add support for codelite IDE project fles
2014-01-13 10:28:37 -05:00
Brad King cb8c9dd01b Merge topic 'missing-dependency-error'
0bf6f13b AddDependencies: new policy requires dependencies to exist
2014-01-13 10:25:33 -05:00
Brad King 8d989d1788 Merge topic 'constify'
2cbf0311 cmGlobalGenerator: Make SelectMakeProgram const.
b4ff38a5 cmGlobalGenerator: Make CheckALLOW_DUPLICATE_CUSTOM_TARGETS const
8aeddf1f cmGlobalGenerator: Make some API const.
8fd0f2a7 cmGeneratorTarget: Hold a const global generator.
46315320 cmComputeLinkDepends: Hold a const global generator.
2014-01-13 10:25:32 -05:00
Brad King b003f56f85 Merge topic 'fix-find-package-mode'
a7f393dc cmake: Future-proof --find-package mode.
2014-01-13 10:25:30 -05:00
Brad King 020006f936 Merge topic 'ninja_fix_rerun'
6fac24d7 Ninja: Avoid re-running CMake on next build after regeneration
2014-01-13 10:23:23 -05:00
Robert Maynard 6fac24d750 Ninja: Avoid re-running CMake on next build after regeneration
In commit 4a6397a7 (Ninja: Track configured files so we can regenerate
them, 2013-06-17) we accidentally started listing files generated by
CMake as inputs to the configuration process instead of outputs from it.
Move the list of files generated by CMake to the regeneration rule
outputs section and tell Ninja to restat after running it.
2014-01-13 10:09:48 -05:00
Stephen Kelly a7f393dc49 cmake: Future-proof --find-package mode.
Create cmGeneratorTargets before generating generate-time information.
C++ interfaces for querying build information is increasingly only
available at generate time through the cmGeneratorTarget class.  Ensure
that the required cmGeneratorTarget instances are created.  Use the
cmGlobalGenerator access API to access the relevant cmGeneratorTarget
instead of creating a temporary one on the stack.
2014-01-13 16:09:15 +01:00
Kitware Robot 9f6b633f37 CMake Nightly Date Stamp 2014-01-13 00:01:06 -05:00
Stephen Kelly 2cbf031190 cmGlobalGenerator: Make SelectMakeProgram const. 2014-01-12 20:18:11 +01:00
Stephen Kelly b4ff38a5ef cmGlobalGenerator: Make CheckALLOW_DUPLICATE_CUSTOM_TARGETS const 2014-01-12 20:18:11 +01:00
Stephen Kelly 8aeddf1f03 cmGlobalGenerator: Make some API const. 2014-01-12 20:18:11 +01:00
Stephen Kelly 8fd0f2a718 cmGeneratorTarget: Hold a const global generator. 2014-01-12 20:18:11 +01:00
Stephen Kelly 46315320ab cmComputeLinkDepends: Hold a const global generator. 2014-01-12 20:18:10 +01:00
Nils Gladitz 0bf6f13b1d AddDependencies: new policy requires dependencies to exist
Added new policy CMP0046 which requires dependencies added by
add_dependencies() to actually exist.
2014-01-12 12:58:04 +01:00
Kitware Robot 325ca1f253 CMake Nightly Date Stamp 2014-01-12 00:01:04 -05:00
Kitware Robot cb7af7af44 CMake Nightly Date Stamp 2014-01-11 00:01:24 -05:00
Eran Ifrah 0c4e8c70a0 Add support for codelite IDE project fles 2014-01-10 09:20:11 +02:00
Kitware Robot 00f53bc260 CMake Nightly Date Stamp 2014-01-10 00:01:12 -05:00
Brad King e56530f612 Merge topic 'minor-cleanups'
531e40b cmTarget: Make GetSourceFiles populate an out-vector parameter.
38de54c cmGeneratorTarget: Add methods to access source file groups.
f579fe0 Help: Fix link to MAP_IMPORTED_CONFIG_<CONFIG>
590d238 cmTarget: Handle NO_SYSTEM_FROM_IMPORTED.
2014-01-09 13:54:23 -05:00
Stephen Kelly 531e40b95e cmTarget: Make GetSourceFiles populate an out-vector parameter.
In a future patch, this will also be populated with extra
sources from the linked dependencies.
2014-01-09 19:38:08 +01:00
Stephen Kelly 38de54cf6f cmGeneratorTarget: Add methods to access source file groups.
These methods and others will be able to get a config parameter
later to implement the INTERFACE_SOURCES feature.
2014-01-09 19:38:07 +01:00
Brad King a0eb52c10c Merge topic 'compat-help-custom-modules'
b177294 cmake: Implement placeholder --help-custom-modules compatibility
2014-01-09 09:37:22 -05:00
Brad King 15562c11ef Merge topic 'policies'
73e9340 get_target_property: Error on non-existent target.
ab9f58f FindQt4: Ensure target exists before calling get_target_property.
37ebeb9 FindQt4: Fix use of get_target_property to use actual target name.
6aabb6a Genex: Use case-sensitive comparison for COMPILER_ID.
5bb53f6 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy.
2014-01-09 09:37:20 -05:00
Brad King 69c366a281 Merge topic 'optional-install'
be0458c InstallRules: added new variable to disable generation of install rules
2014-01-09 09:37:17 -05:00
Brad King f3a9eb4560 Merge topic 'vs10-include-backslashes'
c131107 VS: Convert include path to backslashes for VS >= 10
2014-01-09 09:37:15 -05:00
Kitware Robot ef2bb1c6ed CMake Nightly Date Stamp 2014-01-09 00:01:08 -05:00
Brad King b17729460b cmake: Implement placeholder --help-custom-modules compatibility
The implementation of the "cmake --help-custom-modules" was removed
along with the rest of the old help generation infrastructure when
documentation was converted to reStructuredText.  In order to avoid
breaking existing project builds outright when they use a custom command
that runs a command like "cmake --help-custom-modules foo.1", generate
the requested file with placeholder content explaining that the option
is not supported anymore.
2014-01-08 11:16:48 -05:00
Stephen Kelly 73e93400e2 get_target_property: Error on non-existent target.
Introduce policy CMP0045 to control this behavior.
2014-01-08 16:41:34 +01:00
Stephen Kelly 6aabb6a62b Genex: Use case-sensitive comparison for COMPILER_ID. 2014-01-08 16:41:34 +01:00
Stephen Kelly 5bb53f6b73 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy. 2014-01-08 16:41:34 +01:00
Nils Gladitz be0458c562 InstallRules: added new variable to disable generation of install rules
The boolean variable CMAKE_SKIP_INSTALL_RULES
allows disabling generation of install rules for projects which don't
want them.
2014-01-08 16:28:14 +01:00
Stephen Kelly 590d238914 cmTarget: Handle NO_SYSTEM_FROM_IMPORTED.
This handling was lost in commit faedd2be (cmTarget: Fix system include
annotation propagation., 2014-01-01).
2014-01-08 16:06:41 +01:00
Brad King 1857660984 Merge topic 'wix-cmake-package-registry'
92c4d40 CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable
2014-01-08 09:58:45 -05:00
Brad King 9551b85a90 Merge topic 'xcode-storyboard-file-type'
e361c3c Merge branch 'xcode-storyboard-file-type-2.8.12' into xcode-storyboard-file-type
93fc5a5 Xcode: Fix storyboard view
2d23c1f Xcode: Fix storyboard view
2014-01-08 09:58:43 -05:00
Brad King c1311077b8 VS: Convert include path to backslashes for VS >= 10
In VS <= 9 we already convert include paths to use backslashes
but the conversion was left out of the VS >= 10 generator.
Add the conversion now for consistency.  VS 11 and 12 now require
it because they mistakenly interpret forward-slash options that
happen to occur in paths:

 http://connect.microsoft.com/VisualStudio/feedback/details/778367
2014-01-08 08:58:20 -05:00
Kitware Robot 3af2afafc0 CMake Nightly Date Stamp 2014-01-08 00:01:11 -05:00
Nils Gladitz 92c4d4039e CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable
Allows automatic registration of installed packages with
the cmake package registry.
2014-01-08 01:28:24 +01:00
Ruslan Baratov 2d23c1f177 Xcode: Fix storyboard view
Since commit 56831461 (Xcode: Use explicitFileType to mark source types,
2013-04-16) the Xcode generator prefers to use explicitFileType to tell
Xcode about each source file type.  This works better than
lastKnownFileType for some file types, but not for "file.storyboard".

If storyboard file has attribute 'explicitFileType' it is displayed
incorrectly (as raw xml).  Switch it back to 'lastKnownFileType'.
2014-01-07 14:07:32 -05:00
Brad King 855e8759fd Merge topic 'minor-cleanups'
3917d86 Genex: Add a nullary form for CONFIG
5169130 Help: Document the target properties exported to IMPORTED targets.
ee21f1c CompatibleInterface: Test debugging of not-set property.
80e9fe9 Help: Note that language-specific 'built-ins' are set by the project command.
0b5bf8a Help: Mention CMAKE_DISABLE_FIND_PACKAGE_<PackageName> in package docs.
28c865b Tests: simplify Qt4 target usage
6cfe6b8 Help: Fix typo: 'target' -> 'target property'
b7deca4 Test: Remove obsolete commented code.
9c9f69f Genex: Make EQUAL support upper case binary literals
6eb3218 Genex: Fix case of methods in the dag checker.
646c6ec Genex: Use a preprocessor loop to implement transitive DAG check.
711fb38 Genex: List transitive properties and methods as a table, not two lists.
802a28f Add cmHasLiteralSuffix API.
2014-01-07 09:39:22 -05:00
Brad King 3a024ce0d8 Merge topic 'unicode-fstream'
5730710 Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.
2014-01-07 09:39:17 -05:00
Brad King 91dcc9bef3 Merge topic 'unicode-main'
a1e542f Use Encoding::CommandLineArguments for main() functions.
2014-01-07 09:39:15 -05:00
Stephen Kelly 3917d86b26 Genex: Add a nullary form for CONFIG
This is consistent with other similar expressions such as PLATFORM_ID,
and makes the CONFIGURATION expression obsolete.

Fix an off-by-one error in
GeneratorExpressionContent::EvaluateParameters exposed by a unit test.

Remove the test for 'bad' nullary use of $<CONFIG>.

Add a unit test to verify that $<CONFIG> and $<CONFIGURATION> have
the same value.
2014-01-07 09:38:01 -05:00
Clinton Stimpson 5730710c86 Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.
Also use SystemTools::Fopen() instead of fopen().
This is to eventually support utf-8 filenames.
2014-01-07 09:27:44 -05:00
Kitware Robot 69ccc951cc CMake Nightly Date Stamp 2014-01-07 00:01:08 -05:00
Stephen Kelly 9c9f69fb9c Genex: Make EQUAL support upper case binary literals
As C++11, python, D and java do.

 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf

Add test for uppercase hex literals.
2014-01-06 18:46:45 +01:00
Stephen Kelly 6eb3218105 Genex: Fix case of methods in the dag checker. 2014-01-06 18:46:45 +01:00
Stephen Kelly 646c6ec2f9 Genex: Use a preprocessor loop to implement transitive DAG check.
The other infrastructure for transitive property handling is
already using a preprocessor loop.

Implement special backward-compatibility handling of
COMPILE_DEFINITIONS_<CONFIG> using a template switch for the
extra check.
2014-01-06 18:46:45 +01:00
Stephen Kelly 711fb38f72 Genex: List transitive properties and methods as a table, not two lists.
Introduce a new set of macros to select the column.
2014-01-06 18:46:44 +01:00
Stephen Kelly 802a28fc5e Add cmHasLiteralSuffix API. 2014-01-06 18:46:44 +01:00
Stephen Kelly 84fac67f90 Don't allow include() of export(EXPORT) file at configure time.
As a new feature it does not need to participate in CMP0024.

Store cmExportBuildFileGenerator instances which correspond to the
export(EXPORT) signature in a second map which does not own the
pointers.  This avoids the need to add cmExportBuildFileGenerator
and dependencies to the bootstrap system.
2014-01-06 17:25:11 +01:00
Stephen Kelly faedd2bea9 cmTarget: Fix system include annotation propagation.
Direct users of IMPORTED targets treat INTERFACE_INCLUDE_DIRECTORIES
as SYSTEM, after commit a63fcbcb (Always consider includes from IMPORTED
targets to be SYSTEM., 2013-08-29).  It was intended that transitive
use of an IMPORTED target would have the same behavior, but that
did not work.  The implementation processed only direct dependencies
in cmTarget::FinalizeSystemIncludeDirectories.

Implement transitive evaluation of dependencies by traversing the
link interface of each target in the link implementation.
2014-01-06 17:25:10 +01:00
Stephen Kelly 9eb06d0dde add_library: Disallow invalid signatures for INTERFACE_LIBRARY.
Document the valid signatures. Add a test for the IMPORTED GLOBAL
signature.
2014-01-06 17:25:10 +01:00
Stephen Kelly 10d65d5019 cmTarget: Move a variable initialization closer to where it is used.
This is more readable and easier to reason about.
2014-01-06 17:25:10 +01:00
Stephen Kelly 0f3e8e957f Undefine local preprocessor loop variables.
Most occurances of this pattern already contain the undef, so add it to
the rest too.
2014-01-06 17:25:10 +01:00
Stephen Kelly 9ba47ee49b Genex: Reform error-checking for nullary/unary expressions.
The error messages were incorrect (reporting that the expression
requires one or two parameters), and repeated.  Remove the now-unused
ZeroOrMoreParameters enum value.
2014-01-06 17:25:10 +01:00
Stephen Kelly fa651c7a19 cmTarget: Remove some of the INTERFACE_LIBRARY whitelisted properties.
There is no need to allow EXCLUDE_* properties, because an
INTERFACE_LIBRARY has no direct build output.

IMPORTED_LINK_INTERFACE_LANGUAGES are relevant only to static
libraries.

VERSION is relevant only to the filename of direct build outputs,
which INTERFACE_LIBRARY does not have.
2014-01-06 17:25:10 +01:00
Stephen Kelly 61d138aea2 cmTarget: INTERFACE_LIBRARY is always EXCLUDE_FROM_ALL. 2014-01-06 17:25:10 +01:00
Stephen Kelly 3429541e1c export: Rename some variables to reflect content type.
This method is used with a list of languages.
2014-01-06 17:25:10 +01:00
Stephen Kelly 7461d67cf3 cmTarget: Enable convenient include dir handling for INTERFACE_LIBRARY.
Make the CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE variable affect
INTERFACE_LIBRARY targets.
2014-01-06 17:25:10 +01:00
Stephen Kelly 7fc6e3d607 cmTarget: Remove dead code.
Whitelisting of properties already ensures that the LOCATION
property will not be read from an INTERFACE_LIBRARY.
2014-01-06 17:25:09 +01:00
Stephen Kelly 2af966d9ab Genex: Add EQUAL expression.
Support decimal, hex, octal and binary literals.
2014-01-06 17:25:09 +01:00
Stephen Kelly 2d6638008c cmTarget: Use strtol for numeric parsing.
On Windows apparently sscanf can not handle hex numbers.

Test that numeric comparison works with hex numbers.
2014-01-06 17:25:09 +01:00
Brad King b225dbbd02 Merge topic 'minor-cleanups'
a55c70d cmTarget: Remove support for <CONFIG>_LOCATION property.
c9f9b3c cmTarget: Test impliedByUse number-compatible properties.
fbe1fa7 cmTarget: Don't repeat property origin debug information.
01c545c cmTarget: Fix debug report for interface-set compatibility types.
c67e1a6 cmTarget: Fix reporting interface-set properties which are FALSE.
07b0f54 Qt Tests: Remove commented and unneeded line.
79db8ef cmTarget: Fix the property compatibility error message
43340a9 Help: Reformat Qt autogenerator documentation.
d98ea6c Help: Mark some code blocks as containing cmake code.
ea78935 GenerateExportHeader: Reformat docs.
272a20f cmTarget: Don't update IMPORTED target compilation properties
03d842a Run the add_compile_options command unit test.
cd3d0b6 get_property: Fix testing ALIASED_TARGET target property (#14670)
6a62228 install: Ensure that install(TARGETS) works with no DESTINATION
af3d3b8 export: Only generate and install configuration files if needed.
0de81bb Help: Workaround pygments reporting an error for genexes.
...
2014-01-06 11:15:34 -05:00
Brad King 5c4448bd9a Merge topic 'update-kwsys'
196cee6 Merge branch 'upstream-kwsys' into update-kwsys
4709c7a KWSys 2014-01-02 (606d7d6f)
2014-01-06 10:36:01 -05:00
Brad King 185c95ce9e Merge topic 'EclipseUse64bitMachOParser'
e6b0f45 Eclipse: use MachO64 parser starting with Helios (#14380)
2014-01-06 10:35:59 -05:00
Kitware Robot ff6f80baaa CMake Nightly Date Stamp 2014-01-06 00:01:04 -05:00
Kitware Robot d5f47b8050 CMake Nightly Date Stamp 2014-01-05 00:01:12 -05:00
Clinton Stimpson a1e542f195 Use Encoding::CommandLineArguments for main() functions. 2014-01-04 10:43:12 -07:00
Stephen Kelly a55c70de78 cmTarget: Remove support for <CONFIG>_LOCATION property.
It is not documented, is very old, is compatibility code,
is non-uniform and is not needed.
2014-01-04 11:28:58 +01:00
Stephen Kelly fbe1fa722f cmTarget: Don't repeat property origin debug information. 2014-01-04 11:28:58 +01:00
Stephen Kelly 01c545c596 cmTarget: Fix debug report for interface-set compatibility types.
If the dependent target sets the property to boolean false, ensure
that that appears in the debug report.  Previously, the report
output contained whether the property was consistent among dependencies,
displaying 'TRUE', instead of the content of the property, which may
be 'FALSE'.

Return a std::pair from the consistentProperty method.  This makes
it possible to make the return value for string types easier to
reason about.  The return value of consistentProperty was previously
set to an empty static string to emulate a 'true' value for the caller
in commit 816b4a8a (cmTarget: Make consistentProperty
return consistent content., 2013-10-22).  The pair makes the
consistency result properly typed.
2014-01-04 11:28:58 +01:00
Stephen Kelly c67e1a6aac cmTarget: Fix reporting interface-set properties which are FALSE. 2014-01-04 11:28:58 +01:00
Stephen Kelly 79db8ef78d cmTarget: Fix the property compatibility error message
Don't refer to 'both', but a 'mixture'. List all compatible interface
property types possible.

Add another test for a mixture of three compatibilities.
2014-01-04 11:28:57 +01:00
Stephen Kelly 272a20f8e5 cmTarget: Don't update IMPORTED target compilation properties
The include_directories() and add_compile_options() commands
should not append to the corresponding target property for IMPORTED
targets.  This is already the case for add_definitions().
2014-01-04 11:28:57 +01:00
Stephen Kelly cd3d0b613e get_property: Fix testing ALIASED_TARGET target property (#14670)
In the case where the argument is not an ALIAS, the variable should
be set to a -NOTFOUND content.
2014-01-04 11:28:57 +01:00
Stephen Kelly af3d3b88be export: Only generate and install configuration files if needed.
The modern way to create configuration dependent content is using
generator expressions in the main export file.  The only non-deprecated
property still generated in the configuration-specific files are
IMPORTED_LOCATION_<CONFIG>

INTERFACE_LIBRARY targets have no location, and no need for those
files.
2014-01-04 11:28:56 +01:00
Stephen Kelly 5c0a06ab84 cmTarget: Rename container holding link implementation objects.
Don't erroneously name it for the link implementation. That's
something different.
2014-01-04 11:28:56 +01:00
Stephen Kelly a0cacb5521 install: Rename variable referencing cmake version.
The next version is 3.0.0, not 2.8.13.

The version generated in the export file should be updated in
the release branch in both cmExportInstallFileGenerator and
cmExportBuildFileGenerator.
2014-01-04 11:28:56 +01:00
Stephen Kelly 5b6e9bea19 Style: Use this-> when invoking member function. 2014-01-04 11:28:56 +01:00
Stephen Kelly 6db7e6d24c add_dependencies: Disallow use with INTERFACE_LIBRARY. 2014-01-04 11:28:56 +01:00
Kitware Robot 7fb2b80662 CMake Nightly Date Stamp 2014-01-04 00:01:07 -05:00
Brad King 196cee67f4 Merge branch 'upstream-kwsys' into update-kwsys 2014-01-03 10:21:07 -05:00
Kitware Robot 0bb3ca2874 CMake Nightly Date Stamp 2014-01-03 00:01:13 -05:00
Brad King 6cff2afc8b Merge topic 'export-EXPORT-subcommand'
98b9f52 Help: Document export(EXPORT) in the cmake-packages manual.
a1d2bda Don't copy find_dependency in configure_package_config_file.
f4f6529 Help: cmake-packages: Add missing slash.
cbe7e8f export: Implement EXPORT subcommand (#9822)
2014-01-02 14:44:08 -05:00
Brad King 5249948e53 Merge topic 'KateProjectImprovements'
37104d9 kate: put full path to cmake into comment
424d5dc kate: support also the build plugin in kate <= 4.12
8bd6cf0 kate: the prev_target is not used by kate
2014-01-02 14:24:39 -05:00
Brad King 81311c670e Merge topic 'wix-rtf-encoding'
950d76e CPackWiX: allow and convert UTF-8 sequences in RTF writer
2014-01-02 14:24:25 -05:00
Brad King 2da175ce9d Merge topic 'wix-read-only'
44a7543 CPackWiX: transfer file read only flag during installation
2014-01-02 14:24:13 -05:00
Brad King 7a63192074 Merge topic 'fix-compile-OBJECT_DIR'
03f3b4e Replace <OBJECT_DIR> rule placeholder consistently (#14667)
2014-01-02 14:23:52 -05:00
Brad King fef56edee7 Merge topic 'update-kwsys'
2f7c169 Merge branch 'upstream-kwsys' into update-kwsys
d4efa5f KWSys 2013-12-21 (e81f2a9e)
2014-01-02 14:23:35 -05:00
Brad King f6c85e7b36 Merge topic 'fix-ctest-regressions'
7f0d4af CTest: fix regressions introduced by the ctest-fix-run-serial topic
2014-01-02 14:23:22 -05:00
Brad King 0d63bdd2d9 Merge topic 'rpath-default'
d25ad48 OS X: Add CMP0042 to enable MACOSX_RPATH by default
2014-01-02 14:23:09 -05:00
Brad King 03f3b4e727 Replace <OBJECT_DIR> rule placeholder consistently (#14667)
The <OBJECT_DIR> placeholder is supposed to be the base intermediate
files directory for the current target.  This is how it gets replaced
during link line generation.  However, during compile line generation
we replace it with the directory containing the current object file
which may be a subdirectory.  Fix replacement of <OBJECT_DIR> in the
generated compile lines to be the base intermediate files directory.

This was expoxed by commit 42ba1b08 (VS: Separate compiler and linker
PDB files, 2013-04-05) when we added a "/Fd<OBJECT_DIR>/" flag to the
MSVC compile line in order to match the VS IDE default compiler program
database location in the intermediate files directory.  For source files
in a subdirectory relative to the current target this caused the wrong
location to be used for the compiler program database.  This becomes
particularly important when using precompiled headers.

While at it, use the cmTarget::GetSupportDirectory method to compute the
intermediate files directory for the current target instead of repeating
the logic in a few places.
2014-01-02 13:45:41 -05:00
Clinton Stimpson d25ad482e9 OS X: Add CMP0042 to enable MACOSX_RPATH by default
Also adding documentation for CMAKE_MACOSX_RPATH, and improving
documentation for MACOSX_RPATH.
2014-01-02 13:41:49 -05:00
Kitware Robot c0798b50d0 CMake Nightly Date Stamp 2014-01-02 00:01:08 -05:00
Alex Neundorf e6b0f452ee Eclipse: use MachO64 parser starting with Helios (#14380)
With this patch, cmake now puts the MachO64 bit
binary file parser into the config file if the detected
Eclipse is at least Helios (7.0), otherwise with the old
parser executables will not be recognized by Eclipse.

Alex
2014-01-01 17:52:57 +01:00
Kitware Robot 9e9debe505 CMake Nightly Date Stamp 2014-01-01 00:01:13 -05:00
Kitware Robot 403632c8ae CMake Nightly Date Stamp 2013-12-31 00:01:08 -05:00
Kitware Robot 1b7546c460 CMake Nightly Date Stamp 2013-12-30 00:01:27 -05:00
Alex Neundorf 37104d97b0 kate: put full path to cmake into comment
Alex
2013-12-29 21:17:32 +01:00
Alex Neundorf 424d5dc078 kate: support also the build plugin in kate <= 4.12
With this patch, simply also the information used
by the build plugin in kate <= 4.12 is put into the
generated json file. The new build plugin (coming
in 4.13) simply ignores this (and vice versa).

Alex
2013-12-29 21:17:25 +01:00
Alex Neundorf 8bd6cf0f33 kate: the prev_target is not used by kate
...this was a leftover from experimenting

Alex
2013-12-29 06:40:14 +01:00
Kitware Robot 8b275894da CMake Nightly Date Stamp 2013-12-29 00:01:05 -05:00
Kitware Robot a846670013 CMake Nightly Date Stamp 2013-12-28 00:01:11 -05:00
Kitware Robot 9f7c2bde8f CMake Nightly Date Stamp 2013-12-27 00:01:09 -05:00
Nils Gladitz 950d76ed48 CPackWiX: allow and convert UTF-8 sequences in RTF writer 2013-12-26 15:23:54 +01:00
Kitware Robot cba6c45410 CMake Nightly Date Stamp 2013-12-26 00:01:07 -05:00
Nils Gladitz 44a7543c53 CPackWiX: transfer file read only flag during installation 2013-12-26 00:14:44 +01:00
Kitware Robot b87ce492ab CMake Nightly Date Stamp 2013-12-25 00:01:07 -05:00
Stephen Kelly cbe7e8fae4 export: Implement EXPORT subcommand (#9822)
Teach the export command to handle export sets defined by invocations
of install(TARGETS ... EXPORT foo).  This makes maintenance of targets
exported to both the build tree and install tree trivial.
2013-12-24 13:02:49 +01:00
Kitware Robot dfbca3b42a CMake Nightly Date Stamp 2013-12-24 00:01:08 -05:00
Brad King 2f7c169158 Merge branch 'upstream-kwsys' into update-kwsys 2013-12-23 10:51:38 -05:00
Brad King 7f3ead9bd0 Merge topic 'update-kwsys'
f4fcfc6 Merge branch 'upstream-kwsys' into update-kwsys
7aa3c20 KWSys 2013-12-19 (2426b57d)
2013-12-23 10:19:35 -05:00
Brad King b5ef7fd47e Merge topic 'wix-cmake-coding-conventions'
37a1157 CPackWiX: adhere to CMake member naming convention
2013-12-23 10:19:29 -05:00
Brad King 4dd2382a6e Merge topic 'fix-Qt-rcc-file-handling'
870bd16 QtAutogen: Don't modify target source files while iterating them.
2013-12-23 10:19:24 -05:00
Brad King 11ddaa51ea Merge topic 'vs-external-project-type'
a79cbdc VS: Teach include_external_msproject about non-C++ projects (#14661)
2013-12-23 10:19:10 -05:00
Brad King b646ae88fa Merge topic 'remove-VTK-include-hack'
db7d111 cmLocalGenerator: Remove VTK include hack (#11338).
2013-12-23 10:19:00 -05:00
Brad King 1e8d4b5f46 Merge topic 'constify'
ae6fc55 cmGlobalGenerator: Fix value type pushed into autogens vector
2013-12-23 10:18:51 -05:00
Brad King a61bec581e Merge topic 'wix-fix-registry-slash'
7eea71e CPackWiX: replace slash with backslash in registry key path
2013-12-23 10:18:43 -05:00
Nils Gladitz 7f0d4aff24 CTest: fix regressions introduced by the ctest-fix-run-serial topic
The first regression resulted in endless looping due to unrun test
dependencies. The second regression prioritized all tests with dependencies
in serial test runs.
2013-12-23 15:31:15 +01:00
Kitware Robot f350fa6c71 CMake Nightly Date Stamp 2013-12-23 00:01:07 -05:00
Kitware Robot eb684157be CMake Nightly Date Stamp 2013-12-22 00:01:07 -05:00
Kitware Robot de607ff52e CMake Nightly Date Stamp 2013-12-21 00:01:08 -05:00
Brad King f4fcfc6ef3 Merge branch 'upstream-kwsys' into update-kwsys 2013-12-20 14:27:36 -05:00
Nils Gladitz 37a1157aa9 CPackWiX: adhere to CMake member naming convention 2013-12-20 18:12:01 +01:00
Stephen Kelly 870bd16f2c QtAutogen: Don't modify target source files while iterating them.
Populate a separate vector of files and append them separately. This
was the pattern used prior to commit 035b6908 (Autogen: Split AutoRcc
handling into two methods, 2013-12-10), which was erroneously not
maintained in that refactoring.
2013-12-20 17:37:20 +01:00
David Golub a79cbdc068 VS: Teach include_external_msproject about non-C++ projects (#14661)
Teach CMake to guess the project type guid based on the project file
extension.  This allows non-C++ projects like *.vbproj or *.csproj
to be included.
2013-12-20 11:02:11 -05:00
Stephen Kelly db7d1112ea cmLocalGenerator: Remove VTK include hack (#11338).
This exists for pre-CMake 2.4 compatibility. All such compatibility
code was removed for CMake 3.0, so remove this too.
2013-12-20 16:15:58 +01:00
Brad King ae6fc555a7 cmGlobalGenerator: Fix value type pushed into autogens vector
The parent commit changed the AutogensType::value_type to be
"std::pair<cmQtAutoGenerators,cmTarget const*>" but our std::make_pair
call returns "std::pair<cmQtAutoGenerators,cmTarget*>".  Construct the
value_type directly instead of using make_pair.  Otherwise the Sun 5.9
compiler complains

 ".../Source/cmGlobalGenerator.cxx", line 1281: Error:
 Formal argument x of type "const std::pair<cmQtAutoGenerators, const cmTarget*>&"
 in call to "std::vector<std::pair<cmQtAutoGenerators, const cmTarget*> >
 ::push_back(const std::pair<cmQtAutoGenerators, const cmTarget*>&)" is being
 passed "std::pair<cmQtAutoGenerators, cmTarget*>".
2013-12-20 10:06:45 -05:00
Brad King 28d9aba7d6 Merge topic 'minor-cleanup'
b51b6e9 Export: Skip INTERFACE libraries when generating -config files.
cad5c79 cmTarget: Fix typo
08e72a3 Automoc: Fix style
2eda924 Genex: Use case-sensitive comparison in PLATFORM_ID.
9436353 Genex: Always return immediately on error.
20a06d0 Export: Clean up comment.
f4d9466 Genex: Accept arbitrary content in *_CASE and MAKE_C_IDENTIFIER.
d36b489 Genex: Allow single param expressions to accept arbirary input.
218ad35 Constify cmStrCmp.
4cb7d79 Help: Fix CMP0037 docs.
5187580 Help: Add missing period.
2013-12-20 09:41:40 -05:00
Brad King 7974dced73 Merge topic 'make-entry-no-parallel'
bd11de0 Makefile: Allow "gmake target1 target2 -j" (#14312)
2013-12-20 09:41:32 -05:00
Brad King 6f29fdd7cd Merge topic 'update-kwsys'
2a943d9 Merge branch 'upstream-kwsys' into update-kwsys
f788d9a KWSys 2013-12-19 (88165c5e)
2013-12-20 09:41:27 -05:00
Brad King bd11de0857 Makefile: Allow "gmake target1 target2 -j" (#14312)
Add the .NOTPARALLEL target to each local Makefile command-line
interface entry point file so that even with -j we launch only
one "make -f Makefile2" at a time.  The actual build rules
in Makefile2 and lower will still run in parallel.

Do not add .NOTPARALLEL for Borland or Watcom make tools because
they do not tolerate it.  Other make tools that do not understand
.NOTPARALLEL will not be hurt.

Suggested-by: Robert Luberda <robert-cmake@debian.org>
2013-12-20 09:35:20 -05:00
Nils Gladitz 7eea71ea57 CPackWiX: replace slash with backslash in registry key path
Forward slash is not understood as a key path separator.
2013-12-20 12:01:28 +01:00
Kitware Robot a0ce1e36b6 CMake Nightly Date Stamp 2013-12-20 00:01:24 -05:00
Stephen Kelly b51b6e97a2 Export: Skip INTERFACE libraries when generating -config files.
The properties object has just been created, so is always empty,
which means the if block is never entered. The following lines do
not have any effect because an INTERFACE library has no LOCATION.
At the end, no code is generated for INTERFACE libraries in
config-specific exported files, so skip them early.
2013-12-20 00:56:17 +01:00
Brad King 2a943d9264 Merge branch 'upstream-kwsys' into update-kwsys 2013-12-19 10:44:29 -05:00
Stephen Kelly cad5c79e6c cmTarget: Fix typo
'a ALIAS' -> 'an ALIAS'
2013-12-19 16:17:59 +01:00
Stephen Kelly 08e72a34e9 Automoc: Fix style
Insert whitespace before operators.
2013-12-19 16:17:59 +01:00
Stephen Kelly 2eda924389 Genex: Use case-sensitive comparison in PLATFORM_ID. 2013-12-19 16:17:59 +01:00
Stephen Kelly 9436353f94 Genex: Always return immediately on error. 2013-12-19 16:17:59 +01:00
Stephen Kelly 20a06d01f7 Export: Clean up comment.
Introduced in commit a4263c9f (export(): Handle multiple dependent export
sets., 2013-10-10)
2013-12-19 16:17:59 +01:00
Stephen Kelly f4d9466130 Genex: Accept arbitrary content in *_CASE and MAKE_C_IDENTIFIER. 2013-12-19 16:17:59 +01:00
Stephen Kelly d36b489401 Genex: Allow single param expressions to accept arbirary input.
Existing single-parameter expressions work due to special casing
which assumes that if there is only one parameter, and the node
accepts arbitrary content, then the result is the input.

This is true for the existing expressions matching that
pattern - namely the "1" and "TARGET_NAME" expressions. However,
the LOWER_CASE, and UPPER_CASE expressions should also accept
arbitrary content, and in their case, the result is not the input.

Refactor the cmGeneratorExpressionEvaluator to allow that extension.
Actually evaluate the "1" and "0" nodes.
2013-12-19 16:17:59 +01:00
Stephen Kelly 218ad35f96 Constify cmStrCmp. 2013-12-19 16:17:58 +01:00
Brad King eb20fab736 Merge topic 'wix-fragment-injection'
8632233 CPackWiX: allow customization of generated WiX sources
2013-12-19 10:13:47 -05:00
Brad King 0845aaddc5 Merge topic 'minor-cleanup'
e2cb3e7 Help: Note that COMPATIBLE_INTERFACE_ properties may be origin-debugged.
41e48c4 Avoid certain actions on IMPORTED targets.
2013-12-19 10:13:29 -05:00
Brad King 2e075b48e8 Merge topic 'constify'
c62cd3e Constify autogen handling.
035b690 Autogen: Split AutoRcc handling into two methods
2fcafbf cmLocalGenerator: Constify target definitions access
a54eedd Constify cmGeneratorTarget access.
9edee62 Constify handling of link targets.
ef25ba8 Constify handling of target dependencies.
2013-12-19 10:13:18 -05:00
Brad King d42e0d552c Merge topic 'remove-INTERFACE-build-targets'
97fae68 Remove INTERFACE build targets.
2013-12-19 10:12:57 -05:00
Brad King 33498bba9c Merge topic 'KateFixNinja'
c3d20c2 kate: fix ninja support
1eaf2f2 kate: remove unused function
2013-12-19 10:12:49 -05:00
Brad King a1e58db675 Merge topic 'fix-INTERFACE-mapped-config'
3b8e56a Don't search for IMPORTED_LOCATION of INTERFACE_LIBRARY (14636)
2013-12-19 10:12:42 -05:00
Alex Neundorf c3d20c2ac9 kate: fix ninja support
ninja needs to be run from the toplevel build dir,
not from the target dir, as make

Alex
2013-12-19 10:04:00 -05:00
Alex Neundorf 1eaf2f263b kate: remove unused function
Alex
2013-12-19 10:03:34 -05:00
Kitware Robot 2f0ff16418 CMake Nightly Date Stamp 2013-12-19 00:01:06 -05:00