https://github.com/Kitware/CMake
Revision a79056bb023ae99c2e0f09f49b5d525e7b3eff8a authored by Alexandru Croitor on 31 July 2020, 15:50:37 UTC, committed by Alexandru Croitor on 03 August 2020, 17:38:11 UTC
The AutoMoc timestamp creating custom command explicitly depended
on all dependencies of the origin target (associated to the AutoGen
target).

When an origin target depended on a shared library 'libfoo.so',
if it was re-linked, the AutoMoc custom command would touch its
output timestamp file, and thus cause needless rebuilding of sources,
despite the shared library not having any influence on the AutoMoc
generated files.

Introduce a new '<target>_autogen_timestamp_deps' utility target,
which will serve as an 'order-only' dependency for the custom command.

This will prevent needless rebuilding, because touching 'libfoo.so'
will not cause the custom command to be re-executed.

The new AutoMoc dependency tree looks like:
    '_autogen_timestamp_deps (serves as order-only dep)'
 <- '<target_autogen>/timestamp' file ( + moc deps file)
 <- '<target>_autogen' target.

Fixes: #21020
1 parent 103d6fa
Raw File
Tip revision: a79056bb023ae99c2e0f09f49b5d525e7b3eff8a authored by Alexandru Croitor on 31 July 2020, 15:50:37 UTC
AutoGen: Fix over-specified direct dependencies of custom command
Tip revision: a79056b
CONTRIBUTING.rst
Contributing to CMake
*********************

The following summarizes the process for contributing changes.
See documentation on `CMake Development`_ for more information.

.. _`CMake Development`: Help/dev/README.rst

Community
=========

CMake is maintained and supported by `Kitware`_ and developed in
collaboration with a productive community of contributors.
Please subscribe and post to the `CMake Developers List`_ to raise
discussion of development topics.

.. _`Kitware`: http://www.kitware.com/cmake
.. _`CMake Developers List`: https://cmake.org/mailman/listinfo/cmake-developers

Patches
=======

CMake uses `Kitware's GitLab Instance`_ to manage development and code review.
To contribute patches:

#. Fork the upstream `CMake Repository`_ into a personal account.
#. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration.
#. See `Building CMake`_ for building CMake locally.
#. See the `CMake Source Code Guide`_ for coding guidelines.
#. Create a topic branch named suitably for your work.
   Base all new work on the upstream ``master`` branch.
   Base work on the upstream ``release`` branch only if it fixes a
   regression or bug in a feature new to that release.
   If in doubt, prefer ``master``.  Reviewers may simply ask for
   a rebase if deemed appropriate in particular cases.
#. Create commits making incremental, distinct, logically complete changes
   with appropriate `commit messages`_.
#. Push the topic branch to a personal repository fork on GitLab.
#. Create a GitLab Merge Request targeting the upstream ``master`` branch
   (even if the change is intended for merge to the ``release`` branch).
   Check the box labelled "Allow commits from members who can merge to the
   target branch".  This will allow maintainers to make minor edits on your
   behalf.

The merge request will enter the `CMake Review Process`_ for consideration.

.. _`Kitware's GitLab Instance`: https://gitlab.kitware.com
.. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake
.. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh
.. _`Building CMake`: README.rst#building-cmake
.. _`CMake Source Code Guide`: Help/dev/source.rst
.. _`commit messages`: Help/dev/review.rst#commit-messages
.. _`CMake Review Process`: Help/dev/review.rst

CMake Dashboard Client
======================

The *integration testing* step of the `CMake Review Process`_ uses a set of
testing machines that follow an integration branch on their own schedule to
drive testing and submit results to the `CMake CDash Page`_.  Anyone is
welcome to provide testing machines in order to help keep support for their
platforms working.

See documentation on `CMake Testing Process`_ for more information.

.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake
.. _`CMake Testing Process`: Help/dev/testing.rst

License
=======

We do not require any formal copyright assignment or contributor license
agreement.  Any contributions intentionally sent upstream are presumed
to be offered under terms of the OSI-approved BSD 3-clause License.
See `Copyright.txt`_ for details.

.. _`Copyright.txt`: Copyright.txt
back to top