diff options
| author | saturneric <[email protected]> | 2026-09-19 11:57:16 +0200 |
|---|---|---|
| committer | saturneric <[email protected]> | 2026-09-19 11:57:16 +0200 |
| commit | cf2eebe9eea1cad1d12dd789fea13d511a63b4b0 (patch) | |
| tree | e25c9cf4f21a4c0d11d7b4be3888bd60b6fed52b /include/GFModule.h | |
| parent | feat(modules): package modules as signed gfmodule files (diff) | |
| download | modules-cf2eebe9eea1cad1d12dd789fea13d511a63b4b0.tar.gz modules-cf2eebe9eea1cad1d12dd789fea13d511a63b4b0.zip | |
refactor(module): centralize module headers and identity
- split common utilities into focused logging, event, i18n, memory,
and conversion headers
- add GFModule.h as the unified module include
- derive bootstrap identity and translation context from generated metadata
- replace parameterized bootstrap macros with GF_MODULE_BOOTSTRAP()
- retain deprecated compatibility headers and allocation helper names
- remove the obsolete GFModuleDeclare.h interface
- correct non-debug logging macros to use their intended levels
Diffstat (limited to 'include/GFModule.h')
| -rw-r--r-- | include/GFModule.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/include/GFModule.h b/include/GFModule.h new file mode 100644 index 0000000..740ed81 --- /dev/null +++ b/include/GFModule.h @@ -0,0 +1,65 @@ +/** + * Copyright (C) 2021-2024 Saturneric <[email protected]> + * + * This file is part of GpgFrontend. + * + * GpgFrontend is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GpgFrontend is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>. + * + * The initial version of the source code is inherited from + * the gpg4usb project, which is under GPL-3.0-or-later. + * + * All the source code of GpgFrontend was modified and released by + * Saturneric <[email protected]> starting on May 12, 2021. + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#pragma once + +/** + * @file GFModule.h + * @brief The one header a module includes. + * + * Everything a module needs, grouped by what it is for. Include this; the + * individual headers are there for when you want to see what is in each area, + * not because you have to pick. + * + * | Header | What lives there | + * | ----------------- | ------------------------------------------------ | + * | GFModuleLog.h | `LOG_*`, `FLOG_*`, `MLog*` | + * | GFModuleEvent.h | `LISTEN`, `CB_*`, handlers, event conversion | + * | GFModuleI18n.h | translation context and `.qm` reader | + * | GFModuleMemory.h | who frees what: `DUP`/`UDUP`, SDK allocation | + * | GFModuleConvert.h | QString/QMap <-> C, `FormatString` | + * + * Deliberately NOT here: `GFModuleBootstrap.h`, and through it the generated + * `GFModuleIdentity.h`. Exactly one translation unit per module bootstraps, so + * only that one includes it. Everything else -- including the sources a + * module's own gtest target compiles without the SDK -- then builds without + * needing anything generated. + * + * A module declares itself in `module.json` beside its `CMakeLists.txt`, and + * `gf_add_module()` turns that one file into the generated identity, the + * translation wiring and the signed package. Nothing about a module's identity + * is written twice. + */ + +#include "GFModuleConvert.h" +#include "GFModuleEvent.h" +#include "GFModuleExport.h" +#include "GFModuleI18n.h" +#include "GFModuleLog.h" +#include "GFModuleMemory.h" +#include "GFSDKBuildInfo.h" |
