From 8dd264e10c52d3d01620f8fa76a287118b3a78ef Mon Sep 17 00:00:00 2001 From: Stefan Bienert <stefan.bienert@unibas.ch> Date: Tue, 24 Mar 2015 17:25:58 +0100 Subject: [PATCH] More CMake documentation --- actions/CMakeLists.txt | 4 ++-- cmake_support/doc/index.rst | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/actions/CMakeLists.txt b/actions/CMakeLists.txt index d5666f1d..90f98aa6 100644 --- a/actions/CMakeLists.txt +++ b/actions/CMakeLists.txt @@ -1,6 +1,6 @@ add_custom_target(actions ALL) +add_subdirectory(tests) + pm_action_init() pm_action(pm-build-rawmodel actions) pm_action(pm-help actions) - -add_subdirectory(tests) diff --git a/cmake_support/doc/index.rst b/cmake_support/doc/index.rst index cc3b7023..368f4b1c 100644 --- a/cmake_support/doc/index.rst +++ b/cmake_support/doc/index.rst @@ -26,7 +26,7 @@ into three categories of varying relevance for you: Best practices for using our home-brew |cmake| functions are found in the various :file:`CMakeLists.txt` files in the project's directory tree. -Functions For Module Maintenance +Functions For Module/ Action Maintenance -------------------------------------------------------------------------------- Unit Tests @@ -54,7 +54,8 @@ Unit Tests ``MODULE`` Specify the name of the module these tests are made for. Needs to be set, - needs to be a single word. + needs to be a single word. Ends up in ``make help`` as a prefix, nothing + will break if it does not match the name of any existing module. ``Sources`` Describe a set of files hosting unit test code here. If its a wild mix of @@ -80,10 +81,36 @@ Unit Tests ``TARGET`` This defines an additional dependency for the unit test. +Actions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. cmake:command:: pm_action + + .. code-block:: cmake + + pm_action(ACTION action-script + TARGET target) + + Add an action to |project|. Actions are scripts called by the ``pm`` launcher + and should all live in the :file:`actions` directory as executable files. + Adding an action means connecting its file with the given target to be copied + to the :file:`libexec` directory. No dedicated ``make`` target will be + created. + + The parameters are: + + ``ACTION`` + Name of the action to be added. Should start with ``pm-``. Needs to be an + existing file in the same directory as the invoking :file:`CMakeLists.txt`. + + ``TARGET`` + Provide a ``make`` target to trigger copying the action's script file. The + target has to be created **before** any action may be attached to it. + .. Finding packages .. ----------------- .. Extending |cmake| .. ----------------- -.. LocalWords: cmake PROMOD +.. LocalWords: cmake PROMOD CMakeLists txt promod unittest codetest xml py +.. LocalWords: libexec -- GitLab