67 lines
2.8 KiB
ReStructuredText
67 lines
2.8 KiB
ReStructuredText
|
|
|
|
FAQ
|
|
===
|
|
|
|
|
|
Should I include and track also files generated by Autocmake in my repository?
|
|
------------------------------------------------------------------------------
|
|
|
|
Yes, you probably want to do that. Autocmake generates a number of files which
|
|
in principle could be generated at configure- or build-time. However, you
|
|
probably do not want the users of your code to run any Autocmake scripts like
|
|
``update.py`` to generate the files they need to build the project. The users
|
|
of your code will run ``setup.py`` directly and expect everything to just work
|
|
(TM).
|
|
|
|
|
|
The update.py script is overwriting my CMakeLists.txt and setup.py, isn't this bad?
|
|
-----------------------------------------------------------------------------------
|
|
|
|
No, it is not as bad as it first looks. It is a feature. Normally
|
|
``CMakeLists.txt`` and ``setup.py`` should not contain any explicit
|
|
customization and therefore should not contain anything that could not be
|
|
regenerated. In any case you should use version control so that you can inspect
|
|
and compare changes introduced to ``CMakeLists.txt`` and ``setup.py`` and
|
|
possibly revert them. See also the next remark.
|
|
|
|
|
|
But I need to manually edit and customize CMakeLists.txt and setup.py every time I run update.py!?
|
|
--------------------------------------------------------------------------------------------------
|
|
|
|
You typically never need to manually edit and customize ``CMakeLists.txt`` and
|
|
``setup.py`` directly. You can introduce customizations in ``autocmake.cfg``
|
|
which get assembled into the front-end scripts.
|
|
|
|
|
|
Where is a good place to list my sources and targets?
|
|
-----------------------------------------------------
|
|
|
|
As mentioned above ``CMakeLists.txt`` is not a good place because this file is
|
|
generated from ``autocmake.cfg`` and your modifications would become
|
|
overwritten at some point. A good standard is to organize your sources under
|
|
``src/`` and to list your sources and targets in ``src/CMakeLists.txt``. You
|
|
can include the latter in ``autocmake.cfg`` using::
|
|
|
|
[src]
|
|
source: https://github.com/scisoft/autocmake/raw/master/modules/src.cmake
|
|
|
|
If you really don't like to do it this way, you can describe your sources and
|
|
targets in a custom module in a local file and include it like this::
|
|
|
|
[my_sources]
|
|
source: custom/my_sources.cmake
|
|
|
|
|
|
How do I know whether I need to rerun updata.py?
|
|
------------------------------------------------
|
|
|
|
You need to rerun the ``update.py`` script in the following situations:
|
|
|
|
- To fetch updates to CMake modules which you include from the web.
|
|
- If you have added, removed, moved, or renamed CMake module files in
|
|
``autocmake.cfg`` and wish to propagate the change to ``CMakeLists.txt`` and
|
|
the ``setup.py`` script.
|
|
- If you automatically infer configuration from the CMake module documentation and
|
|
this documentation changes.
|