blob: 43e175058d51cf81e149b57813adb0a722f213d8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# Extra CMake Modules `extra-cmake-modules/`
> **Type**: CMake Module Collection
> **License**: BSD-3-Clause
> **Fork Origin**: [KDE ECM](https://api.kde.org/ecm/)
> **Status**: Detached Fork (independently maintained)
> **Latest Version**: 0.0.5-1
---
## Overview
Extra CMake Modules (ECM) provides additional CMake modules beyond what CMake ships by default. This includes:
- `find_package()` modules for common software
- Utility modules for common CMake tasks
- Toolchain files for cross-compilation
- Common build settings used by KDE software
While ECM originates from the KDE project, it is useful for any CMake-based project.
---
## Usage in ProjT Launcher
ECM is used for:
- **Qt integration** - Finding Qt components
- **Build utilities** - Common CMake patterns
- **Cross-platform support** - Toolchain configurations
---
## Key Modules
| Module | Purpose |
|--------|---------|
| `ECMQueryQt` | Query Qt installation details |
| `ECMInstallIcons` | Install icon themes |
| `ECMGenerateHeaders` | Generate forwarding headers |
| `ECMSetupVersion` | Configure project versioning |
---
## Build Integration
ECM is included as a subdirectory:
```cmake
add_subdirectory(extra-cmake-modules)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/extra-cmake-modules/modules")
```
---
## Documentation
- [ECM API Documentation](https://api.kde.org/ecm/)
- [KDE Community Wiki](https://community.kde.org/Policies/CMake_Coding_Style)
- [Original README](../../extra-cmake-modules/README.md) — Upstream library documentation
---
## Related Documentation
- [Third-party Libraries](./third-party.md)
- [Workflows](./workflows.md)
|