summaryrefslogtreecommitdiffstats
path: root/cmake/module/feature.cmake
AgeCommit message (Collapse)AuthorFilesLines
2026-07-23Include cmake feature module in the build routineAlexey Gavrilov1-10/+29
Add predicate `ifFeatureEnables` that checks feature is define or not, and return accordingly boolean value. Consider some cmake objective targets as features. Populate information to these targets, and provides in particular file `CMakeFeatures.txt`. Cpuid, MSR, ACPI and driver VGA in text mode they are. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-21Add project-related variables to feature moduleAlexey Gavrilov1-10/+30
Project available architectures, project root directory, project current architecture, project toolchain directory are define in feature module, and they must to initialize with new function. The mention above function `featureProjectDataAssign` writes values to these variables cause them initialize. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-21Cmake feature add some commentsAlexey Gavrilov1-8/+18
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-17Overwrite over the macro a feature module functionAlexey Gavrilov1-11/+67
The cmake feature module function `bindFeatureToBuild` has overwrite over the cover function macro. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-16Processing feature variables policy changeAlexey Gavrilov1-1/+1
Feature is enable if variable FEATURE_<feature name> defines and it caches, and it judges as **enable**. It influences the FEATURE_<feature name>_IS_ENABLE field in `CMakeFeature.out` and runfile generation files - all the **enable** features are mention direct or indirect now. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-16Cmake feature module duplicates checkAlexey Gavrilov1-1/+15
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-16Cmake feature module generates functions bodyAlexey Gavrilov1-76/+86
Add a new macros `createFeatureModuleFunction` that cover functions definition. If module suspends, generates all blank function. Blank function is only show a warning about module status. Generate according body and arguments of function when module is active. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-03File write functions changesAlexey Gavrilov1-1/+27
In `outFeaturesToFile` function toolset is appends to a resulting file (cmake toolchain file or arch, compiler if previous is not specify). Toolset mention needs to filter available features for a specific platform. FEATURE_<feature>_IS_ENABLING var also provides when <feature> already enabled. Build type is not in toolset now. That means to parse `CMAKE_BUILD_TYPE` anyway when toolset is processing even if `CMAKE_TOOLSCHAIN_FILE` is specified. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-02Write configuring features into output fileAlexey Gavrilov1-20/+53
Implements a new feature module function `outFeaturesToFile` to output all available features into 'CMakeFeatureOut.txt' file. Format of that file is set of FEATURE_<feature>_<property> variables like defines in `CMakeCache.txt`. Will to use as proxy between cmake and configuration tools. Those utilities read features out file to build configuration kernel tree. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-06-25Add feature cmake moduleAlexey Gavrilov1-0/+167
Feature is abstraction around cmake build target used to contains descriptive information in target properties as name, dependencies, tags and etc.. Feature creation divided by three processes: start creation process, fields filling and stop creation process. Start creation process means passed target is handle now, and stop process is finish to handle a current feature. Using this way helps to construct correct features hierarchy and simplify kernel configuration process. This will use in standalone automating kernel configuration tools: 1. Cmake generate a features file with information about them all. 2. Tool read this file and display features tree. 3. User start to configuring his kernel. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>