Sebastian Holtermann
2e4dab087e
Autogen: Set CM_DISABLE_COPY in cmQtAutoGenerators
2017-09-07 18:03:14 +02:00
Sebastian Holtermann
9468e926b0
Autogen: Refactor logging
2017-09-07 18:03:13 +02:00
Sebastian Holtermann
d561c1fffc
Autogen: More use of scoped lambdas
2017-09-07 18:03:13 +02:00
Sebastian Holtermann
f23a24c287
Autogen: Use list of lists functions for UIC options
2017-09-07 17:53:19 +02:00
Sebastian Holtermann
37ef18a468
Autogen: Pass RCC build names and function names in info file
...
- The output file name of the `rcc` command get computed once
in the AUTOGEN initializer and is passed in the info file.
- The function name for the `-name` option of `rcc` gets computed
once in the AUTOGEN initializer and is passed along with the
other `rcc` options in the info file.
2017-09-07 17:53:19 +02:00
Sebastian Holtermann
84658539bc
Autogen: Use single KeyRegExp filter struct
2017-09-07 17:53:19 +02:00
Sebastian Holtermann
d8d064abbc
Autogen: Use the same algorithm for RCC and UIC option merging
2017-09-07 17:53:19 +02:00
Sebastian Holtermann
d1e5eb8497
Autogen: Iterate source files only once
...
This is a large commit that serves multiple purposes
- Iterate source files only once and store all extracted
information in a cmQtAutogenDigest class that can be reused.
This is brings speed improvements because several properties
are only evaluated once. More that that it helps to avoid
duplication of code with non trivial files property checks.
- Fix the Visual Studio generator to use PRE_BUILD when possible.
- Convert `for( ... )` loops to C++11 range base loops where possible
(cmQtAutogen*.cxx only).
- String concatenation optimizations.
2017-09-07 17:53:18 +02:00
Daniel Pfeifer
2b4c32c95f
clang-format: format all code as Cpp11
2017-08-30 11:07:05 -04:00
Daniel Pfeifer
5962db4389
Use C++11 nullptr
2017-08-24 23:39:47 +02:00
Sebastian Holtermann
93f0ba2823
Autogen: Add AUTOMOC_MACRO_NAMES support
...
Closes #17176
2017-08-18 12:32:04 +02:00
Sebastian Holtermann
02e6c54813
Autogen: Restore AUTOUIC lookup paths from 3.8.2
...
When encountering an `#include "<PATH>ui_<BASE>.h"` statement,
search for `<BASE>.ui` in
- <SOURCE_DIR>/<BASE>.ui
- <SOURCE_DIR>/<PATH><BASE>.ui
- <AUTOUIC_SEARCH_PATH>/<BASE>.ui
- <AUTOUIC_SEARCH_PATH>/<PATH><BASE>.ui
In CMake 3.8.2 the lookup list was
- <SOURCE_DIR>/<BASE>.ui
In CMake 3.9.[01] the lookup list was
- <SOURCE_DIR>/<PATH><BASE.ui>
- <AUTOUIC_SEARCH_PATH>/<PATH><BASE>.ui
Closes #17168
2017-08-15 12:17:37 +02:00
Sebastian Holtermann
dbda590628
Autogen: Per-config file suffixes. New AUTOGEN_BUILD_DIR target property.
...
Closes #14760
Closes #14313
2017-05-26 15:27:17 +02:00
Sebastian Holtermann
0965002e57
Autogen: Pass build directory in Info file
2017-05-26 15:23:21 +02:00
Sebastian Holtermann
7c5f5f1a20
Autogen: Generate moc_predefs.h only on demand
2017-04-22 14:39:50 +02:00
Sebastian Holtermann
65290169f2
Autogen: Add FileDiffers and FileWrite methods
2017-04-22 14:01:18 +02:00
Sebastian Holtermann
344a6d8448
Autogen: MakeParentDirectory logPrefix parameter
2017-04-22 13:30:28 +02:00
Sebastian Holtermann
5965a58915
Autogen: Determine settings file name only once
2017-04-22 13:21:18 +02:00
Sebastian Holtermann
46ba6abe49
Autogen: Overhaul class variable names and sorting
2017-04-22 13:21:18 +02:00
Brad King
2b7aecba16
Merge topic 'autogen-fixes'
...
09035319 Autogen: Pass explicit predefines header to moc if possible
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !671
2017-04-21 08:43:43 -04:00
Aleix Pol
0903531964
Autogen: Pass explicit predefines header to moc if possible
...
Qt is relying on whoever calls moc to include a file with the predefined
values that will be used by the compiler, otherwise moc takes wrong
paths and weird things happen.
Instead, generate an include file and feed it to all mocs to make sure
it's generating correct code.
Co-Author: Sebastian Holtermann <sebholt@xwmw.org >
Fixes : #16640
2017-04-20 08:59:07 -04:00
Daniel Pfeifer
1d829c862c
Use quotes for non-system includes
...
Automate with:
git grep -l '#include <cm_' -- Source \
| xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'
git grep -l '#include <cmsys/' -- Source \
| xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'
git grep -l '#include <cm[A-Z]' -- Source \
| xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
2017-04-11 22:35:21 +02:00
Daniel Pfeifer
5afac50f68
cmConfigure: Ensure separate include block in headers
...
Make sure that `#include <cmConfigure.h>` is followed by an empty line
in header files. This is necessary to make sure that changing <> to ""
does not affect the include ordering of clang-format.
Automate with:
git grep -l '#include <cmConfigure.h>' | grep -v '.cxx$' \
| xargs sed -i '/#include <cmConfigure.h>/ { N; N; s/\n\{1,2\}/\n\n/ }'
2017-04-11 22:35:20 +02:00
Sebastian Holtermann
60274e1d94
Autogen: Add RunCommand method with built in logging
2017-03-06 22:01:03 +01:00
Sebastian Holtermann
8f2ad9c4a0
Autogen: Error return when a scan file is not readable
2017-03-06 22:01:03 +01:00
Sebastian Holtermann
662ad240db
Autogen: Rename and merge moc related methods
2017-03-02 09:10:02 -05:00
Sebastian Holtermann
1cdf7c1be2
Autogen: Add AUTOUIC_SEARCH_PATHS support
...
Closes #15227
2017-03-02 09:10:01 -05:00
Sebastian Holtermann
110c1bf475
Autogen: Add subDirPrefix function
2017-03-02 09:10:01 -05:00
Sebastian Holtermann
db431ecfe3
Autogen: Merge FindInIncludeDirectories into FindIncludeFile
2017-03-01 15:30:28 +01:00
Sebastian Holtermann
70ebf35cda
Autogen: Add AUTOMOC_DEPEND_FILTERS support
2017-02-22 21:13:48 +01:00
Sebastian Holtermann
c23206b6c1
Autogen: Log simplifications
...
The logging methods now automatically add an end-of-line
to the message if it is missing.
2017-02-21 10:12:55 -05:00
Sebastian Holtermann
03df033bfa
Autogen: Rebuild moc when Q_PLUGIN_METADATA json file changes
...
Closes #15419
2017-02-21 10:12:54 -05:00
Sebastian Holtermann
41fb64e719
Autogen: Search moc includes in include directories
2017-02-21 10:12:54 -05:00
Sebastian Holtermann
80a007534f
Autogen: Add FindInIncludeDirectories method
2017-02-21 10:12:53 -05:00
Sebastian Holtermann
f379fdbb9e
Autogen: Synchronize header/source argument names
2017-02-21 10:12:53 -05:00
Sebastian Holtermann
ddf940725e
Autogen: Split moc include paths on info reading
2017-02-21 10:12:53 -05:00
Sebastian Holtermann
71c5ae253c
Autogen: Loop based macro detection instead of code duplication
2017-02-21 10:12:52 -05:00
Sebastian Holtermann
4c60099fea
Autogen: Acquire and store header extensions in Init()
2017-02-21 10:12:51 -05:00
Sebastian Holtermann
815a05cf12
Autogen: Overhaul FindMatchingHeader function
2017-02-21 10:12:51 -05:00
Sebastian Holtermann
25dbfbc2a9
Autogen: Rename moc related variables
2017-02-21 10:12:50 -05:00
Sebastian Holtermann
3cc42863a4
Autogen: Overhaul moc include list generation
2017-02-21 10:12:49 -05:00
Sebastian Holtermann
b2063fd70f
Autogen: Move method declarations; Remove comments
2017-02-19 12:35:43 +01:00
Sebastian Holtermann
10beb4a034
Autogen: Rename SkipFoo variables/methods to FooSkip
2017-02-19 12:35:43 +01:00
Sebastian Holtermann
f37f1a647d
Autogen: Split moc options info string immediately
2017-02-19 12:35:43 +01:00
Sebastian Holtermann
5bb997c24a
Autogen: Split moc compile options info string immediately
2017-02-19 12:35:42 +01:00
Sebastian Holtermann
a9e3c903b6
Autogen: Rename variables read from info file
2017-02-19 12:35:42 +01:00
Sebastian Holtermann
2f3ecd4ea9
Autogen: Inline settings string generation methods
2017-02-19 12:35:42 +01:00
Sebastian Holtermann
739592c925
Autogen: Rename settings string variables
2017-02-19 12:35:42 +01:00
Sebastian Holtermann
ad1f21313f
Autogen: Make methods const
2017-02-19 12:35:42 +01:00
Sebastian Holtermann
d3a9887149
Autogen: Add method for checksum based path generation
2017-02-19 12:35:42 +01:00