Інструменти проєкту
Цей модуль надає скрипти для Windows і Linux/Unix, які пропонують інтерактивне меню для виконання різних допоміжних скриптів CMake.
Він розроблений для спрощення налаштування та підтримки проєкту шляхом об'єднання часто використовуваних дій у зручному інтерфейсі.
📌 Головний екран
Після запуску скрипта головне меню виглядає так:
=====================================
1. Create module
2: Add component
3: Add CMake file
4: Initialization
5: Exit
=====================================
Enter your selection (1-5):
Примітка: фактичне меню може відрізнятися залежно від конкретної реалізації та доступних скриптів.
Створення модуля
Ця опція дозволяє користувачеві створити новий модуль у проєкті.
Після вибору скрипт запитає назву модуля та інші відповідні дані, а потім згенерує необхідну структуру тек і файлів.
Створювана структура тек:
ModuleName/
├─ CMakeLists.txt
├─ ModuleName_Port.h
├─ ModuleName_Types.h
├─ ModuleName.c
└─ ModuleName.h
CMakeLists.txt
Файл CMakeLists.txt міститиме базову конфігурацію для включення модуля до системи збірки. Він згенерує ціль статичної бібліотеки для модуля. Назва бібліотеки збігатиметься з назвою модуля із постфіксом "_Lib".
ModuleName_Port.h
Цей заголовковий файл міститиме публічні визначення портів модуля, наприклад прототипи функцій. Користувач не повинен напряму викликати жодних інших внутрішніх функцій. Це має бути єдина точка входу до модуля.
ModuleName_Types.h
Цей заголовковий файл міститиме всі публічні визначення типів, переліки, структури та макроси.
ModuleName.c
Цей файл із вихідним кодом міститиме реалізацію функцій модуля. Цей файл зазвичай використовується як публічний API модуля. Усі необхідні зовнішні функції мають бути інкапсульовані тут так само, як і публічні функції, визначені в ModuleName_Port.h.
ModuleName.h
Цей заголовковий файл міститиме внутрішні визначення типів, переліки, структури та макроси, що використовуються лише всередині модуля.
Додавання компонента
Ця опція дозволяє користувачеві додати новий компонент до наявного модуля. Після вибору скрипт запитає назву модуля та дані компонента, а потім згенерує необхідні файли в указаному модулі.
Створювана структура тек:
ModuleName/
├─ CMakeLists.txt - Existing file
├─ ModuleName_Port.h - Existing file
├─ ModuleName_Types.h - Existing file
├─ ModuleName.c - Existing file
├─ ModuleName.h - Existing file
├─ ModuleName_ComponentName.c - New component source file
└─ ModuleName_ComponentName.h - New component header file
Додавання файлу CMake
Ця опція дозволяє користувачеві створити або оновити файл CMakeLists.txt для певного модуля.
Ініціалізація
Після вибору скрипт відобразить підменю з різними опціями ініціалізації.
=====================================
1: Initialize folder structure
2: Initialize BSP module
3: Back to main menu
=====================================
Enter your selection (1-3):
Ініціалізація структури тек
Ця опція створює базову структуру тек проєкту, включно з теками для файлів вихідного коду, заголовків і тестів.
Створювана структура тек:
ProjectRoot/
├─ CMakeLists.txt - Project root CMake file
├─ ArtifactsConfig.txt - Artifacts configuration file
├─ Application/ - Project application part
│ ├─ AppCom/ - Application communication modules
│ ├─ AppComp/ - Application components (Low level logic)
│ ├─ AppFun/ - Application functionalities (High level logic)
│ ├─ AppCore/ - Application core (Top level logic)
│ ├─ AppMain/ - Application main file
│ └─ App.cmake - Application CMake file
├─ Middlewares/ - Project middlewares part
├─ BSP/ - Board Support Package
└─ STM_Template/ - CMake build system submodule
Ініціалізація модуля BSP
Ця опція ініціалізує модуль Board Support Package (BSP). Скрипт запитає цільовий мікроконтролер і налаштує необхідні файли та конфігурації.
Створювана структура тек BSP:
BSP/ - Board Support Package
├─ Hal/ - Hardware Abstraction Layer
├─ Mcal/ - Microcontroller Abstraction Layer
├─ Ral/ - Register Abstraction Layer
├─ Linker/ - Linker script
├─ Startup/ - Startup files
├─ Docs/ - BSP documentation
└─ Bsp.cmake - BSP CMake file
⚙️ Вимоги
Наведені нижче інструменти мають бути встановлені та доступні в PATH вашої системи:
- CMake
- Git
Усі інші залежності керуються самими скриптами CMake.
📝 Примітки
- Кожен пункт меню викликає певний скрипт CMake, розташований у теці
Scripts/. - Скрипт забезпечує узгоджений порядок виконання, тож вам не потрібно вручну викликати команди CMake.
Ліцензія
Цей проєкт ліцензовано за ліцензією CC BY-NC.
Ви можете вільно використовувати, змінювати та поширювати його у некомерційних цілях із зазначенням авторства.