Commit Graph

20643 Commits

Author SHA1 Message Date
Stephen Kelly df8c3130d6 cmGlobalGenerator: Don't use cmMakefile::IssueMessage after configure 2016-06-12 19:01:45 +02:00
Stephen Kelly 946d1e50dc cmMakefile: Avoid IssueMessage after configure is finished 2016-06-12 19:01:45 +02:00
Stephen Kelly 096c7754b3 cmLocalGenerator: Store Backtrace for the directory
Don't rely on cmMakefile to provide that.  Use it to issue messages.
2016-06-12 19:01:45 +02:00
Stephen Kelly 0a4af0735f cmake: Issue message independent of cmMakefile definition
The makefile is only used when called by the cmMessageCommand, so inline
the use of it there.  It otherwise creates an undesirable dependency on
cmMakefile for issuing messages in the cmake instance, a violation of
the Interface Segregation Principle.

 https://en.wikipedia.org/wiki/Interface_segregation_principle

This also makes it more explicit that the variable definitions only
affect the message() command.  If an AUTHOR_WARNING is issued for any
other reason, it is not affected.  To affect that, it is necessary to
set the cache variable instead of the regular variable.

This is an unfortunate interface quirk, but one which can't be fixed
easily now.
2016-06-12 18:38:33 +02:00
Kitware Robot acf0c0f444 CMake Nightly Date Stamp 2016-06-12 00:01:09 -04:00
Daniel Pfeifer 757b0ff5dd Add missing braces around statements in header files 2016-06-11 09:49:00 +02:00
Kitware Robot d6e99fa834 CMake Nightly Date Stamp 2016-06-11 00:01:07 -04:00
Daniel Pfeifer a16bf141bc Add missing braces around statements.
Apply fixits of clang-tidy's readability-braces-around-statements
checker.
2016-06-10 18:36:24 +02:00
Daniel Scharrer 896ad251de Teach find_library and find_package to search lib32 paths (#11260)
Add a ``FIND_LIBRARY_USE_LIB32_PATHS`` global property analogous to the
``FIND_LIBRARY_USE_LIB64_PATHS`` property.  This helps find commands on
multilib systems that use ``lib32`` directories and either do not have
``lib`` symlinks or point ``lib`` to ``lib64``.
2016-06-10 11:09:16 -04:00
Tobias Hunger 63c0e92c93 cmState: Expose list of properties of values in the cache 2016-06-10 09:33:41 -04:00
Tobias Hunger 6eee24634b cmCacheEntry: Retrieve all properties of cache entries 2016-06-10 09:33:41 -04:00
Tobias Hunger 120899c698 cmPropertyList: Add a way to retrieve all properties 2016-06-10 09:33:02 -04:00
Tobias Hunger 7066218e79 cmake: Kill cmake::CacheManager and its getter
This member variable is never initialized and has apparently moved
to cmState.
2016-06-10 09:27:59 -04:00
Tobias Hunger f62ed322dc cmLocalGenerator: Add GetTargetDefines to get all defines for a target 2016-06-10 09:24:49 -04:00
Brad King 853b1bb4ba cmLocalGenerator: Constify AppendDefines and AddCompileDefinitions 2016-06-10 09:24:11 -04:00
Brad King 98aafb2ad6 Merge topic 'refactor-cmLocalGenerator-flags'
d9613b96 cmLocalGenerator: Move GetFrameworkFlags implementation to private helper
70d3bf85 cmLocalGenerator: Adopt GetFrameworkFlags method
de4ee088 cmCommonTargetGenerator: De-duplicate CMAKE_BUILD_TYPE lookup
2016-06-10 09:10:04 -04:00
Brad King 1bde72a390 Merge topic 'cmake-gui-osx-symlink-qt5-plugin'
f2840155 cmake-gui: Teach Qt5 where plugins are when launched through a symlink
2016-06-10 09:09:47 -04:00
Kitware Robot 1f9b35da10 CMake Nightly Date Stamp 2016-06-10 00:01:06 -04:00
Robert Maynard f28401554a cmake-gui: Teach Qt5 where plugins are when launched through a symlink
When we are on OSX and we are launching cmake-gui from a symlink, the
application will fail to launch as it can't find the qt.conf file which
tells it what the name of the plugin folder is. We need to add this path
BEFORE the application is constructed as that is what triggers the
searching for the platform plugins
2016-06-09 13:21:27 -04:00
Tobias Hunger d9613b962e cmLocalGenerator: Move GetFrameworkFlags implementation to private helper 2016-06-09 10:41:42 -04:00
Tobias Hunger 70d3bf8580 cmLocalGenerator: Adopt GetFrameworkFlags method
Move it from cmCommonTargetGenerator.
2016-06-09 10:39:57 -04:00
Brad King 8f3bd1f454 Merge topic 'ninja-no-ranlib-windows'
ea598671 Run ranlib on archives only if the tool is available
2016-06-09 09:18:28 -04:00
Brad King c21397b2df Merge topic 'refactor-cmLocalGenerator-flags'
b0d3e693 cmLocalGenerator: Pass configuration to GetTargetFlags
2016-06-09 09:18:26 -04:00
Brad King 065bb0ffeb Merge topic 'small-cleanups'
9f25fc4d Prefer std::ostream& over derivatives as parameters
f9cc43ea cmake: remove unnused member Verbose
6e658085 cmake: Fix constness of methods
87ffd76d cmake: Make internal method file static
fa169fe8 Parser: Merge identical conditions
2016-06-09 09:18:23 -04:00
Brad King 01632c2552 Merge topic 'xmlwriter'
e9da5192 CPack/PackageMaker: port to cmXMLWriter
2016-06-09 09:18:21 -04:00
Daniel Pfeifer e9da5192e5 CPack/PackageMaker: port to cmXMLWriter 2016-06-09 09:16:34 -04:00
Kitware Robot 3969994758 CMake Nightly Date Stamp 2016-06-09 00:01:07 -04:00
Daniel Pfeifer 9f25fc4dbb Prefer std::ostream& over derivatives as parameters 2016-06-08 23:08:40 +02:00
Daniel Pfeifer f9cc43ea37 cmake: remove unnused member Verbose 2016-06-08 23:08:33 +02:00
Stephen Kelly 6e65808516 cmake: Fix constness of methods 2016-06-08 23:08:29 +02:00
Stephen Kelly 87ffd76d1a cmake: Make internal method file static 2016-06-08 23:08:24 +02:00
Stephen Kelly fa169fe8a7 Parser: Merge identical conditions 2016-06-08 23:08:14 +02:00
Tobias Hunger de4ee088e7 cmCommonTargetGenerator: De-duplicate CMAKE_BUILD_TYPE lookup 2016-06-08 16:41:41 -04:00
Tobias Hunger b0d3e693f1 cmLocalGenerator: Pass configuration to GetTargetFlags
Move the configuration lookup to call sites.  This will allow
multi-configuration callers to use the method.
2016-06-08 16:18:31 -04:00
Brad King 8632251b25 Merge topic 'find_path-in-framework'
188baef0 find_path: Fix location of <dir/header.h> in a framework on OS X
2016-06-08 12:56:00 -04:00
Brad King 5572f5fffd Merge topic 'clang-format-again'
ff08a80a Source/CPack: Run clang-format to fix style
3b284432 Tests/FindOpenCL: Run clang-format to fix style
2016-06-08 12:55:58 -04:00
Brad King ea59867187 Run ranlib on archives only if the tool is available
CMakeFindBinUtils sets CMAKE_RANLIB to `:` if it is not available in
order to get a no-op.  This does not work on a Windows host build
environment that runs commands in `cmd` instead of `sh`.  Teach the
Ninja and Makefile generators to simply skip the command if it is `:`.

This this was already done by the Makefile generator since commit
v2.6.0~3161 (BUG: Do not write link script lines that use the ':',
2006-06-18), but only when using a link script.

Reported-by: Michael Jäntsch <Michael.Jaentsch@gmx.de>
2016-06-08 12:00:44 -04:00
Kitware Robot 1cfc750150 CMake Nightly Date Stamp 2016-06-08 00:01:07 -04:00
Harry Mallon 188baef00c find_path: Fix location of <dir/header.h> in a framework on OS X
After finding it in `foo.Framework/Headers/dir/header.h`, we should
report the `foo.Framework/Headers` directory, not
`foo.Framework/Headers/dir`, because the former is what actually
contains the path the caller wishes to include.
2016-06-07 09:04:35 -04:00
Brad King ff08a80af1 Source/CPack: Run clang-format to fix style 2016-06-07 08:41:16 -04:00
Brad King 633d99dc62 Merge topic 'remove-c_str'
fa277b29 Remove c_str() calls from stream arguments.
ba5fb165 call static cmOutputConverter::GetFortranFormat without object
2016-06-07 08:34:04 -04:00
Kitware Robot 14de21d7d2 CMake Nightly Date Stamp 2016-06-07 00:01:07 -04:00
Daniel Pfeifer fa277b29e4 Remove c_str() calls from stream arguments.
Mostly automated:

git grep -l '.c_str() <<' | xargs sed -i 's|\.c_str() <<| <<|g'
2016-06-06 23:53:32 +02:00
Daniel Pfeifer ba5fb16519 call static cmOutputConverter::GetFortranFormat without object 2016-06-06 23:32:38 +02:00
Brad King d546456765 Merge topic 'productbuild'
63e5eb5f Help: Add notes for 'productbuild' topic
2e3c67d1 productbuild: Add new productbuild cpack generator.
50a3d340 PackageMaker: factor out common code for creating pkg files.
2016-06-06 11:19:20 -04:00
Kitware Robot fc45ecfc50 CMake Nightly Date Stamp 2016-06-06 00:01:05 -04:00
Kitware Robot 1503a67bf4 CMake Nightly Date Stamp 2016-06-05 00:01:05 -04:00
Kitware Robot 6a22a7cf71 CMake Nightly Date Stamp 2016-06-04 00:01:05 -04:00
Clinton Stimpson 2e3c67d1b6 productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
2016-06-03 14:41:57 -06:00
Brad King 0663dbf133 Merge topic 'minor-cleanups'
f6c21894 Modules: Rename internal platform-specific compiler determination modules
0c7951a9 cmLocalGenerator: Consolidate conditions in AddArchitectureFlags
2016-06-03 10:45:59 -04:00
Brad King 9d16f64048 Merge topic 'fix-TARGET_PROPERTY-LOCATION-crash'
f500a784 Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134)
2016-06-03 10:45:57 -04:00
Brad King 3d6638471a Merge topic 'size-empty'
c6220de2 Use the empty() method to check for emptyness.
2016-06-03 10:45:52 -04:00
Brad King 811831a958 Merge topic 'simplify-boolean-expressions'
7f6b8d33 Simplify boolean expressions
2016-06-03 10:45:40 -04:00
Kitware Robot 8b289db739 CMake Nightly Date Stamp 2016-06-03 00:01:19 -04:00
Daniel Pfeifer c6220de276 Use the empty() method to check for emptyness.
Apply fix-its from clang-tidy's readability-container-size-empty
checker.
2016-06-02 21:35:50 +02:00
Brad King 7e8cfb9549 Merge branch 'fix-TARGET_PROPERTY-LOCATION-crash' into release 2016-06-02 11:08:09 -04:00
Brad King f500a784d0 Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134)
Policy CMP0026 deprecated the LOCATION property, and we have long
provided a $<TARGET_FILE:...> generator expression.  However, if
a project tries to use $<TARGET_PROPERTY:...,LOCATION> we should
at least not crash.

The compatibility implementation of the LOCATION property uses
cmGlobalGenerator::CreateGenerationObjects to create the structures
needed to evaluate the property before generation starts.  The
implementation assumed that accessing the property could only be done
during configuration (via the typical get_property command use case).
The $<TARGET_PROPERTY:...,LOCATION> genex causes the LOCATION property
to be accessed during generation.  Calling CreateGenerationObjects
during generation blows away all the objects currently being used for
generation and is not safe.  Add a condition to call it only when
configuration is not finished.
2016-06-02 10:58:38 -04:00
Brad King 0c7951a939 cmLocalGenerator: Consolidate conditions in AddArchitectureFlags
Make room for possible future non-Apple architecture flags.
2016-06-02 09:47:32 -04:00
Brad King f1ff6301ea Merge topic 'minor-cleanups'
2175e5bf cmGlobalGenerator: Make IsMultiConfig() const
2016-06-02 09:44:53 -04:00
Brad King c6bcb6fa1e Merge topic 'bin-dir-option'
18bfbc97 Add option to control 'bin' directory of CMake's own installation (#16076)
2016-06-02 09:44:48 -04:00
Daniel Pfeifer 7f6b8d3399 Simplify boolean expressions
Use clang-tidy's readability-simplify-boolean-expr checker.
After applying the fix-its, revise all changes *very* carefully.
Be aware of false positives and invalid changes.
2016-06-02 08:24:04 -04:00
Kitware Robot 34d07d7ccc CMake Nightly Date Stamp 2016-06-02 00:01:10 -04:00
Clinton Stimpson 50a3d34005 PackageMaker: factor out common code for creating pkg files. 2016-06-01 21:56:50 -06:00
Tobias Hunger 2175e5bfa5 cmGlobalGenerator: Make IsMultiConfig() const 2016-06-01 11:12:58 -04:00
Nicolas BUNEL 18bfbc972f Add option to control 'bin' directory of CMake's own installation (#16076)
Add a `CMAKE_BIN_DIR` cache entry to CMake's own build configuration.
Add a `--bindir` option to the `bootstrap` script to set it.
2016-06-01 11:12:36 -04:00
Brad King d6754d37d5 Begin post-3.6 development 2016-06-01 10:59:26 -04:00
Brad King 91f6e7904a CMake 3.6.0-rc1 version update 2016-06-01 10:57:43 -04:00
Brad King 4062d6d694 Merge topic 'minor-cleanups'
bd4fef64 cmSourceFileLocation: Fix typo in comment
814e774e cmSearchPath: Fix typo in comment
2016-06-01 09:04:48 -04:00
Tobias Hunger bd4fef6406 cmSourceFileLocation: Fix typo in comment 2016-06-01 08:33:48 -04:00
Tobias Hunger 814e774eff cmSearchPath: Fix typo in comment 2016-06-01 08:33:35 -04:00
Kitware Robot adc7fcd013 CMake Nightly Date Stamp 2016-06-01 00:01:07 -04:00
Kitware Robot 88ede8e5ea CMake Nightly Date Stamp 2016-05-31 00:01:06 -04:00
Kitware Robot 8afadaa5b2 CMake Nightly Date Stamp 2016-05-30 00:01:05 -04:00
Kitware Robot e0fbd95f06 CMake Nightly Date Stamp 2016-05-29 00:01:05 -04:00
Kitware Robot 797a332a61 CMake Nightly Date Stamp 2016-05-28 00:01:06 -04:00
Brad King fb1f5d50af Merge topic 'remove-needless-copies'
27ead963 Remove unnecessary local copies.
618fb23f Pass arguments that are not modified as const&.
2016-05-27 09:08:21 -04:00
Brad King 82c286393a Merge topic 'remove-needless-c_str'
1b2bb933 Remove redundant c_str() calls.
2016-05-27 09:08:18 -04:00
Kitware Robot fdb474d456 CMake Nightly Date Stamp 2016-05-27 00:01:07 -04:00
Daniel Pfeifer 1b2bb93302 Remove redundant c_str() calls.
Run clang-tidy's readability-redundant-string-cstr checker.
Ignore findings in kwsys.
2016-05-26 22:52:22 +02:00
Daniel Pfeifer 27ead96305 Remove unnecessary local copies.
Use clang-tidy's performance-unnecessary-copy-initialization checker.
After applying the fix-its (which turns the copies into const&), revise
the changes and see whether the copies can be removed entirely by using
the original instead.
2016-05-26 22:21:15 +02:00
Daniel Pfeifer 618fb23fc9 Pass arguments that are not modified as const&.
Use clang-tidy's performance-unnecessary-value-param checker to find
value parameter declarations of expensive to copy types that are not
modified inside the function.  Ignore findings in kwsys.
After applying the fix-its, manually change `const T&` to `T const&`.
2016-05-26 21:58:51 +02:00
Brad King 36d9a01a31 Merge topic 'try_compile-custom-variables'
d256ba07 try_compile: Optionally forward custom platform variables to test project
fb4791b3 cmCoreTryCompile: Refactor forwarding of variables to test project
2016-05-26 09:52:12 -04:00
Brad King 67cc866877 Merge topic 'fix-variable-watch-leak'
75e3e0d3 cmVariableWatch: Fix potential memory leak
2016-05-26 09:52:09 -04:00
Brad King 579185be7a Merge topic 'cpack-dmg-no-app-link'
3acc29fc CPack/DragNDrop: Optionally disable `/Applications` symlink
2016-05-26 09:52:07 -04:00
Brad King 2a028b7898 Merge topic 'style-cmSystemTools'
8e801eb5 cmSystemTools: Fix indentation typo
2016-05-26 09:52:02 -04:00
Kitware Robot 0746a4c62c CMake Nightly Date Stamp 2016-05-26 00:03:52 -04:00
Brad King 75e3e0d3dc cmVariableWatch: Fix potential memory leak
Teach cmVariableWatch::AddWatch to own the Pair it allocates until
it needs to pass ownership to WatchMap.
2016-05-25 09:58:36 -04:00
Harry Mallon 3acc29fca9 CPack/DragNDrop: Optionally disable `/Applications` symlink 2016-05-25 09:51:04 -04:00
Brad King d256ba078a try_compile: Optionally forward custom platform variables to test project
Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
of custom variables to be forwarded to a `try_compile` test project.
This will be useful for platform information modules or toolchain files
to forward some platform-specific set of variables from the host project
(perhaps set in its cache) to the test project so that it can build the
same way.
2016-05-25 09:36:19 -04:00
Brad King fb4791b37c cmCoreTryCompile: Refactor forwarding of variables to test project
De-duplicate the logic that constructs the cmake `-D` flag used to pass
variables into the test project cache.  Also subsume variables that were
propagated by generating `set()` commands in the project and pass them
as cache entries instead.
2016-05-25 09:36:19 -04:00
Brad King 6052e4b3bf Merge topic 'improve-character-find-and-replace'
5784747d Improve string find: prefer character overloads.
5cec953e Use std::replace for replacing chars in strings.
2a1a2033 cmExtraEclipseCDT4Generator: use std::replace.
34bc6e1f cmCTestScriptHandler: don't call find repeatedly.
2016-05-25 09:34:29 -04:00
Brad King 916d52533e Merge topic 'standard-include-directories'
c1340827 Add a variable to specify language-wide system include directories
44199097 cmMakefile: Optimize AddSystemIncludeDirectories for empty set
a896043b GHS: Compute include directories consistently with other generators
2016-05-25 09:34:24 -04:00
Brad King 2bc55b69db Merge topic 'output-converter-enums'
25d1ef64 Use enums defined in cmOutputConverter using their fully qualified name.
2016-05-25 09:34:19 -04:00
Brad King c13408279f Add a variable to specify language-wide system include directories
Create a `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable to specify
system include directories for for `<LANG>` compiler command lines.
This plays a role for include directories as the existing
`CMAKE_<LANG>_STANDARD_LIBRARIES` variable does for link libraries.
2016-05-25 09:30:31 -04:00
Brad King 8e801eb517 cmSystemTools: Fix indentation typo 2016-05-25 09:27:54 -04:00
Daniel Pfeifer 25d1ef6424 Use enums defined in cmOutputConverter using their fully qualified name.
Mostly automated:

values=("RelativeRoot" "NONE" "FULL" "HOME" "START" "HOME_OUTPUT" "START_OUTPUT"
        "OutputFormat" "UNCHANGED" "MAKERULE" "SHELL" "WATCOMQUOTE" "RESPONSE"
        "FortranFormat" "FortranFormatNone" "FortranFormatFixed" "FortranFormatFree")
for i in "${values[@]}"; do git grep -l cmLocalGenerator::$i | xargs sed -i "s|cmLocalGenerator::$i|cmOutputConverter::$i|g"; done
2016-05-25 09:20:09 -04:00
Kitware Robot d5ccab37b3 CMake Nightly Date Stamp 2016-05-25 00:01:07 -04:00
Daniel Pfeifer 5784747d1b Improve string find: prefer character overloads.
Apply fix-its from clang-tidy's performance-faster-string-find checker.
Ignore findings in kwsys.
2016-05-24 23:22:24 +02:00
Daniel Pfeifer 5cec953e6a Use std::replace for replacing chars in strings.
Find uses of `cmSystemTools::ReplaceString` where both `replace` and
`with` are string literals with a size of one.

Automate with:

git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\2', '\3');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\\\\\\\\\");|std::replace(\1.begin(), \1.end(), '\2', '\\\\\\\\');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\\\\\\\\\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\\\\\\\\', '\2');|g"
2016-05-24 23:22:20 +02:00
Daniel Pfeifer 2a1a2033af cmExtraEclipseCDT4Generator: use std::replace. 2016-05-24 23:22:16 +02:00