Skip to content

let's not automoc them all #4

@portaloffreedom

Description

@portaloffreedom

Right now it seems that all header files are parsed through the automoc. We can probably flag many of them to not be parsed at all.

> cmake --help-policy CMP0100

CMP0100
-------

Let ``AUTOMOC`` and ``AUTOUIC`` process
header files that end with a ``.hh`` extension.

Since version 3.17, CMake processes header files that end with a
``.hh`` extension in ``AUTOMOC`` and ``AUTOUIC``.
In earlier CMake versions, these header files were ignored by
``AUTOMOC`` and ``AUTOUIC``.

This policy affects how header files that end with a ``.hh`` extension
get treated in ``AUTOMOC`` and ``AUTOUIC``.

The ``OLD`` behavior for this policy is to ignore ``.hh`` header files
in ``AUTOMOC`` and ``AUTOUIC``.

The ``NEW`` behavior for this policy is to process ``.hh`` header files
in ``AUTOMOC`` and ``AUTOUIC`` just like other header files.

.. note::

  To silence the ``CMP0100`` warning source files can be excluded from
  ``AUTOMOC`` and ``AUTOUIC`` processing by setting the
  source file properties ``SKIP_AUTOMOC``, ``SKIP_AUTOUIC`` or
  ``SKIP_AUTOGEN``.

  .. code-block:: cmake

    # Source skip example:
    set_property(SOURCE /path/to/file1.hh PROPERTY SKIP_AUTOMOC ON)
    set_property(SOURCE /path/to/file2.hh PROPERTY SKIP_AUTOUIC ON)
    set_property(SOURCE /path/to/file3.hh PROPERTY SKIP_AUTOGEN ON)

This policy was introduced in CMake version 3.17.0.  CMake version
3.17.3 warns when the policy is not set and uses ``OLD`` behavior.
Use the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW``
explicitly.

.. note::
  The ``OLD`` behavior of a policy is
  ``deprecated by definition``
  and may be removed in a future version of CMake.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions