diff options
| author | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-07-03 11:52:41 +0700 |
|---|---|---|
| committer | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-07-03 11:52:41 +0700 |
| commit | 4b51da0ae181ded262ff7609bd0baac67a4e92ba (patch) | |
| tree | b2ed80261d7fa438ac1ca206e9e79db2fea42183 /cmake/module/feature.cmake | |
| parent | 0d1d78eb82075c9543aa06af576825902e8ec52f (diff) | |
File write functions changes
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>
Diffstat (limited to 'cmake/module/feature.cmake')
| -rw-r--r-- | cmake/module/feature.cmake | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/cmake/module/feature.cmake b/cmake/module/feature.cmake index d350227..193df46 100644 --- a/cmake/module/feature.cmake +++ b/cmake/module/feature.cmake @@ -174,12 +174,29 @@ endfunction() # <FEATURE_PROPERTY> = "<VARIABLE>" ]] function(outFeaturesToFile) + get_directory_property(cacheVars CACHE_VARIABLES) get_property(FEATURES_LIST GLOBAL PROPERTY FEATURES_LIST) set(OUT_FILE "${CMAKE_BINARY_DIR}/${FEATURE_OUT_FILE}") file(WRITE "${OUT_FILE}" "# This file contains list of kernel configurable objects\n\n") + file(APPEND "${OUT_FILE}" "# Toolset variables\n") + if("CMAKE_TOOLCHAIN_FILE" IN_LIST cacheVars + AND NOT "${CMAKE_TOOLCHAIN_FILE}" STREQUAL "") + cmake_path(GET CMAKE_TOOLCHAIN_FILE FILENAME TOOLCHAIN_FILE_NAME) + file(APPEND "${OUT_FILE}" + " -DCMAKE_TOOLCHAIN_FILE=" + "${ObjectiveProject_SOURCE_DIR}/cmake/toolchain/${TOOLCHAIN_FILE_NAME}") + else() + cmake_path(GET CMAKE_CXX_COMPILER FILENAME CXX_COMPILER_EXECUTABLE) + file(APPEND "${OUT_FILE}" + "CMAKE_CXX_COMPILER = \"${CXX_COMPILER_EXECUTABLE}\"\n") + file(APPEND "${OUT_FILE}" + "ObjectiveProject_ARCHITECTURE = " + "\"${ObjectiveProject_ARCHITECTURE}\"\n") + endif() + file(APPEND "${OUT_FILE}" "\n\n") foreach(feature IN LISTS FEATURES_LIST) get_property(FEATURE_DEPENDENCIES TARGET ${feature} PROPERTY FEATURE_DEPENDENCIES) @@ -194,7 +211,16 @@ function(outFeaturesToFile) "FEATURE_${feature}_${FIELD_NAME} = \"${FEATURE_${FIELD_NAME}}\"\n") endforeach() + # Check if feature is enable, and push them to file + if("FEATURE_${feature}" IN_LIST cacheVars + AND NOT "${FEATURE_${feature}}" STREQUAL "") + file(APPEND "${OUT_FILE}" + "FEATURE_${feature}_IS_ENABLING = " + "\"TRUE\"\n") + endif() + file(APPEND "${OUT_FILE}" - "FEATURE_${feature}_${FIELD_NAME} = \"${FEATURE_DEPENDENCIES}\"\n\n\n") + "FEATURE_${feature}_DEPENDENCIES = \"${FEATURE_DEPENDENCIES}\"\n\n\n") + endforeach() endfunction() |
