<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cmake.git/Source/cmQtAutoMocUic.h, branch master</title>
<subtitle>gitlab.kitware.com: cmake/cmake.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/'/>
<entry>
<title>Modernize: Use #pragma once in all header files</title>
<updated>2020-09-03T13:30:21+00:00</updated>
<author>
<name>Kitware Robot</name>
<email>kwrobot@kitware.com</email>
</author>
<published>2020-08-29T20:27:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=bdca8b01d2d96d63e685e7eca03e0f51f5410fdf'/>
<id>bdca8b01d2d96d63e685e7eca03e0f51f5410fdf</id>
<content type='text'>
#pragma once is a widely supported compiler pragma, even though it is
not part of the C++ standard. Many of the issues keeping #pragma once
from being standardized (distributed filesystems, build farms, hard
links, etc.) do not apply to CMake - it is easy to build CMake on a
single machine. CMake also does not install any header files which can
be consumed by other projects (though cmCPluginAPI.h has been
deliberately omitted from this conversion in case anyone is still using
it.) Finally, #pragma once has been required to build CMake since at
least August 2017 (7f29bbe6 enabled server mode unconditionally, which
had been using #pragma once since September 2016 (b13d3e0d)). The fact
that we now require C++11 filters out old compilers, and it is unlikely
that there is a compiler which supports C++11 but does not support
#pragma once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
#pragma once is a widely supported compiler pragma, even though it is
not part of the C++ standard. Many of the issues keeping #pragma once
from being standardized (distributed filesystems, build farms, hard
links, etc.) do not apply to CMake - it is easy to build CMake on a
single machine. CMake also does not install any header files which can
be consumed by other projects (though cmCPluginAPI.h has been
deliberately omitted from this conversion in case anyone is still using
it.) Finally, #pragma once has been required to build CMake since at
least August 2017 (7f29bbe6 enabled server mode unconditionally, which
had been using #pragma once since September 2016 (b13d3e0d)). The fact
that we now require C++11 filters out old compilers, and it is unlikely
that there is a compiler which supports C++11 but does not support
#pragma once.
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Make cmQtAutoMocUic a free function</title>
<updated>2019-09-28T22:07:32+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-27T13:57:29+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=6bd40ccf8424a6e8c3a77857d48600ed7c624a07'/>
<id>6bd40ccf8424a6e8c3a77857d48600ed7c624a07</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Refactor json info file reading interface</title>
<updated>2019-09-28T22:07:32+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-27T12:47:05+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=820962edc9dd7481c440068dd894c1026abf671d'/>
<id>820962edc9dd7481c440068dd894c1026abf671d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Use JSON instead of CMake script for info files</title>
<updated>2019-09-25T14:07:09+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-20T20:39:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=d867e058924d348ee5ec5bba867965e8f1f276e2'/>
<id>d867e058924d348ee5ec5bba867965e8f1f276e2</id>
<content type='text'>
We used to store information for the _autogen target in a CMake script
file AutogenInfo.cmake, which was imported by a temporary cmake instance in
the _autogen target.  This introduced the overhead of creating a temporary
cmake instance and inherited the limitations of the CMake language which
only supports lists.

This patch introduces JSON files to pass information to AUTORCC and
autogen_ targets.  JSON files are more flexible for passing data, e.g. they
support nested lists.

The patch has the side effects that

- AutogenInfo.cmake is renamed to AutogenInfo.json
- AutogenOldSettings.txt is renamed to AutogenUsed.txt
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;Info.cmake is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Info.json
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;.lock is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Lock.lock
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;Settings.txt is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Used.txt
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We used to store information for the _autogen target in a CMake script
file AutogenInfo.cmake, which was imported by a temporary cmake instance in
the _autogen target.  This introduced the overhead of creating a temporary
cmake instance and inherited the limitations of the CMake language which
only supports lists.

This patch introduces JSON files to pass information to AUTORCC and
autogen_ targets.  JSON files are more flexible for passing data, e.g. they
support nested lists.

The patch has the side effects that

- AutogenInfo.cmake is renamed to AutogenInfo.json
- AutogenOldSettings.txt is renamed to AutogenUsed.txt
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;Info.cmake is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Info.json
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;.lock is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Lock.lock
- RCC&lt;qrcBaseName&gt;&lt;checksum&gt;Settings.txt is renamed to
  AutoRcc_&lt;qrcBaseName&gt;_&lt;checksum&gt;_Used.txt
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Variable renames and cleanups</title>
<updated>2019-09-25T08:31:06+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-23T11:21:10+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=881e3cfbf96c7b4f48304d3dfc07899c2e6703de'/>
<id>881e3cfbf96c7b4f48304d3dfc07899c2e6703de</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cmstd: Modernize CMake system headers</title>
<updated>2019-09-20T14:01:37+00:00</updated>
<author>
<name>Marc Chevrier</name>
<email>marc.chevrier@gmail.com</email>
</author>
<published>2019-08-04T08:49:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=c688b401d3adaacc820ef4b589010e8aefa808b1'/>
<id>c688b401d3adaacc820ef4b589010e8aefa808b1</id>
<content type='text'>
Provide a standardized way to handle the C++ "standard" headers
customized to be used with current CMake C++ standard constraints.
Offer under directory `cm` headers which can be used as direct
replacements of the standard ones.  For example:

    #include &lt;cm/string_view&gt;

can be used safely for CMake development in place of the `&lt;string_view&gt;`
standard header.

Fixes: #19491
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a standardized way to handle the C++ "standard" headers
customized to be used with current CMake C++ standard constraints.
Offer under directory `cm` headers which can be used as direct
replacements of the standard ones.  For example:

    #include &lt;cm/string_view&gt;

can be used safely for CMake development in place of the `&lt;string_view&gt;`
standard header.

Fixes: #19491
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Add moc path prefix generation (AUTOMOC_PATH_PREFIX)</title>
<updated>2019-09-16T16:18:48+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-13T13:17:24+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=d018d27c101869e4e2449f938df89d4f97c5b73c'/>
<id>d018d27c101869e4e2449f938df89d4f97c5b73c</id>
<content type='text'>
The new `AUTOMOC_PATH_PREFIX` boolean target property enables automatic
generation of the path prefix `-p` option for `moc`.
`AUTOMOC_PATH_PREFIX` is initialized from the variable
`CMAKE_AUTOMOC_PATH_PREFIX`, which is ON by default.

When `AUTOMOC_PATH_PREFIX` is enabled, CMake tests if a `moc`ed header file is
in one of the include directories.  If so, then the `-p` option, with the
relative path of the header parent directory to the respective include
directory, is added to the `moc` command.  If the header file is not in an
include directory, the `-p` option is omitted.

Closes: #18815 "AUTOMOC: generated files include full relative path,
                breaking certain reproducible builds"
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new `AUTOMOC_PATH_PREFIX` boolean target property enables automatic
generation of the path prefix `-p` option for `moc`.
`AUTOMOC_PATH_PREFIX` is initialized from the variable
`CMAKE_AUTOMOC_PATH_PREFIX`, which is ON by default.

When `AUTOMOC_PATH_PREFIX` is enabled, CMake tests if a `moc`ed header file is
in one of the include directories.  If so, then the `-p` option, with the
relative path of the header parent directory to the respective include
directory, is added to the `moc` command.  If the header file is not in an
include directory, the `-p` option is omitted.

Closes: #18815 "AUTOMOC: generated files include full relative path,
                breaking certain reproducible builds"
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Add IsHeader flag to SourceFileT class</title>
<updated>2019-09-16T16:18:48+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-13T10:51:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=77983c814725317e990315be8bc8d5b93fa6ffbd'/>
<id>77983c814725317e990315be8bc8d5b93fa6ffbd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Abbreviate file paths in messages</title>
<updated>2019-09-16T16:18:48+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-09T15:04:51+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=f9e5441eb43d3238211685cded447141082e37b8'/>
<id>f9e5441eb43d3238211685cded447141082e37b8</id>
<content type='text'>
This introduces the `cmQtAutoGenerator::MessagePath` method, that abbreviates
paths by placing a
 - "SRC:" prefix in place of the project source directory
 - "BIN:" prefix in place of the project binary directory

The method is used in `AUTO{MOC,UIC,RCC}` when paths are displayed in
messages.  This makes the messages generated by `AUTO{MOC,UIC,RCC}` shorter
and improves their readability.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introduces the `cmQtAutoGenerator::MessagePath` method, that abbreviates
paths by placing a
 - "SRC:" prefix in place of the project source directory
 - "BIN:" prefix in place of the project binary directory

The method is used in `AUTO{MOC,UIC,RCC}` when paths are displayed in
messages.  This makes the messages generated by `AUTO{MOC,UIC,RCC}` shorter
and improves their readability.
</pre>
</div>
</content>
</entry>
<entry>
<title>Autogen: Split JobEvalCacheT job into separate moc and uic jobs</title>
<updated>2019-09-16T16:18:48+00:00</updated>
<author>
<name>Sebastian Holtermann</name>
<email>sebholt@xwmw.org</email>
</author>
<published>2019-09-12T11:00:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=51676cf65590f7a9bc3ad247151ee5bdc768eb77'/>
<id>51676cf65590f7a9bc3ad247151ee5bdc768eb77</id>
<content type='text'>
This splits the `JobEvalCacheT` job into separate `JobEvalCacheMocT` and
`JobEvalCacheUicT` classes, that run concurrently.
The `JobEvalCache*T::FindIncluded*` methods are overhauled to store probed
directoriy names only if probing fails.  Warning messages are refactored
to show the file name and the probed directories instead of all probed file
paths.  This is easier to read.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This splits the `JobEvalCacheT` job into separate `JobEvalCacheMocT` and
`JobEvalCacheUicT` classes, that run concurrently.
The `JobEvalCache*T::FindIncluded*` methods are overhauled to store probed
directoriy names only if probing fails.  Warning messages are refactored
to show the file name and the probed directories instead of all probed file
paths.  This is easier to read.
</pre>
</div>
</content>
</entry>
</feed>
