aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAlex Merry <kde@randomguy3.me.uk>2014-01-26 15:47:54 +0000
committerAlex Merry <kde@randomguy3.me.uk>2014-01-26 15:49:26 +0000
commit0bada507e4e209f2abc360c5ff22aad805a41ee1 (patch)
tree4b49f0428090aa9444d010076710816c31591417 /README.md
parentfc09a7e81864ad5901a7996648ffe161370f2971 (diff)
downloadextra-cmake-modules-0bada507e4e209f2abc360c5ff22aad805a41ee1.tar.gz
extra-cmake-modules-0bada507e4e209f2abc360c5ff22aad805a41ee1.tar.bz2
Replace the minimal README with a better README.md file
Diffstat (limited to 'README.md')
-rw-r--r--README.md82
1 files changed, 82 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..85b97b7f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,82 @@
+Extra CMake Modules
+===================
+
+Additional functionality for the CMake build system
+
+
+Introduction
+------------
+
+The Extra CMake Modules package, or ECM, adds to the modules provided by CMake,
+including both ones used by `find_package()` to find common software and ones
+that can be used directly in `CMakeLists.txt` files to perform common tasks.
+
+In addition, it provides common build settings used in software produced by the
+KDE community.
+
+While the driving force of this module is to reduce duplication in CMake scripts
+across KDE software, it is intended to be useful for any software that uses the
+CMake build system.
+
+
+Usage
+-----
+
+To use ECM, add the following to your `CMakeLists.txt`:
+
+ find_package(ECM <ecm-version> REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
+
+(note that you may want to append `${ECM_MODULE_PATH}` to `CMAKE_MODULE_PATH`
+instead). You can then just include the modules you require, or use
+`find_package()` as needed. For example:
+
+ include(ECMInstallIcons)
+
+Developers of KDE software will often want to use the KDE standard settings
+provided by ECM; they can do the following:
+
+ find_package(ECM <ecm-version> REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
+ include(KDEInstallDirs)
+ include(KDECompilerSettings)
+ include(KDECMakeSettings)
+
+Note that any combination of the above includes can be used if you only want
+some of the settings. Some of the functionality of `KDECMakeSettings` can also
+be selectively disabled; see the documentation at the top of
+`kde-modules/KDECMakeSettings.cmake` for more details.
+
+
+Organization
+------------
+
+This module is organised as follows:
+
+- `attic/` contains most of the CMake modules shipped with kdelibs 4. These
+ can be used to form the basis of cleaned-up modules, either for inclusion in
+ ECM or for private use in a project.
+- `find-modules/` contains the modules used by CMake's `find_package()` command.
+- `kde-modules/` contains modules that provide some common settings for KDE
+ applications and frameworks.
+- `modules/` contains the modules that should be included directly by CMake
+ scripts, other than those in `kde-modules/`.
+- `tests/` contains automated tests for the functionality provided by ECM
+ modules.
+
+
+License
+-------
+
+All code in this repository is licensed under the [BSD 2-Clause license][1].
+
+[1]: http://opensource.org/licenses/BSD-2-Clause
+
+
+Links
+-----
+
+- Home page: <https://projects.kde.org/projects/kdesupport/extra-cmake-modules>
+- Mailing list: <https://mail.kde.org/mailman/listinfo/kde-buildsystem>
+- IRC channel: \#kde-devel on Freenode
+- Git repository: <https://projects.kde.org/projects/kdesupport/extra-cmake-modules/repository>