diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-02-28 15:36:45 -0500 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-02-28 15:36:45 -0500 |
| commit | 612fd7b29cde5382fda720d76347212442ea4eec (patch) | |
| tree | cbaccd60d7eb64ab9aca4c217e67be5afeba05b5 | |
| parent | 8edb6adb91191ef329b6044ea298d74b11c7835d (diff) | |
fix: awk -> gawk & verify defconfig exists
Transitioned from awk to gawk for the time being to use gensub cross
platform. Also, now verify that the defconfig specified exists and if it
does not, then an error message is printed.
| -rw-r--r-- | CMakeLists.txt | 4 | ||||
| -rw-r--r-- | cmake/Kconfig.cmake | 6 | ||||
| -rw-r--r-- | cmake/TC-gcc11.cmake | 6 | ||||
| -rw-r--r-- | cmake/TC-gcc15.cmake | 6 | ||||
| -rw-r--r-- | configs/example2_defconfig | 4 | ||||
| -rw-r--r-- | configs/example_defconfig (renamed from configs/example_config) | 0 | ||||
| -rwxr-xr-x | tools/make-cmake-config | 2 |
7 files changed, 25 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 999ea9c..ebefb7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,10 @@ cmake_minimum_required(VERSION 3.22) project(KconfigCmake VERSION 0.0.1 LANGUAGES C) +set(C_STANDARD 23) +set(C_EXTENSIONS OFF) +set(C_STANDARD_REQUIRED ON) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) include(Kconfig) diff --git a/cmake/Kconfig.cmake b/cmake/Kconfig.cmake index 47f8295..580867b 100644 --- a/cmake/Kconfig.cmake +++ b/cmake/Kconfig.cmake @@ -7,7 +7,7 @@ set(TOOL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tools) set(KCONFIG_DIR ${TOOL_DIR}/Kconfiglib) set(LOCAL_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/.config) -if(DEFCONFIG AND NOT EXISTS ${CMAKE_BINARY_DIR}/config.cmake) +if(DEFCONFIG AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} AND NOT EXISTS ${CMAKE_BINARY_DIR}/config.cmake) execute_process( COMMAND ${KCONFIG_DIR}/defconfig.py ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -28,8 +28,10 @@ if(DEFCONFIG AND NOT EXISTS ${CMAKE_BINARY_DIR}/config.cmake) ${CMAKE_BINARY_DIR}/config.cmake ) -elseif(EXISTS ${CMAKE_BINARY_DIR}/config.cmake) +elseif(DEFCONFIG AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} AND EXISTS ${CMAKE_BINARY_DIR}/config.cmake) message("Ignoring DEFCONFIG") +elseif(DEFCONFIG AND NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG}) + message(FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} does not exist.") else() message(FATAL_ERROR "DEFCONFIG not set.") endif() diff --git a/cmake/TC-gcc11.cmake b/cmake/TC-gcc11.cmake new file mode 100644 index 0000000..a60e63a --- /dev/null +++ b/cmake/TC-gcc11.cmake @@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME MacOS) +set(CMAKE_SYSTEM_PROCESSOR arm64) + +set(tools /opt/homebrew) +set(CMAKE_C_COMPILER ${tools}/bin/gcc-11) +set(CMAKE_CXX_COMPILER ${tools}/bin/g++-11) diff --git a/cmake/TC-gcc15.cmake b/cmake/TC-gcc15.cmake new file mode 100644 index 0000000..43a1a34 --- /dev/null +++ b/cmake/TC-gcc15.cmake @@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME MacOS) +set(CMAKE_SYSTEM_PROCESSOR arm64) + +set(tools /opt/homebrew) +set(CMAKE_C_COMPILER ${tools}/bin/gcc-15) +set(CMAKE_CXX_COMPILER ${tools}/bin/g++-15) diff --git a/configs/example2_defconfig b/configs/example2_defconfig new file mode 100644 index 0000000..727be7f --- /dev/null +++ b/configs/example2_defconfig @@ -0,0 +1,4 @@ +CONFIG_USE_TOOLCHAIN_FILE=y +CONFIG_CMAKE_TOOLCHAIN_FILE="TC-gcc15.cmake" +CONFIG_AGE=32 +CONFIG_NAME="John Doe" diff --git a/configs/example_config b/configs/example_defconfig index 0c34f1e..0c34f1e 100644 --- a/configs/example_config +++ b/configs/example_defconfig diff --git a/tools/make-cmake-config b/tools/make-cmake-config index 6fa7ba4..0444767 100755 --- a/tools/make-cmake-config +++ b/tools/make-cmake-config @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cat $1 | awk '{print gensub(/(.*)=(.*)/, "set(\\1 \\2)", 1)}' > "$(dirname $1)/$(basename -s .make $1).cmake" +cat $1 | gawk '{print gensub(/(.*)=(.*)/, "set(\\1 \\2)", 1)}' > "$(dirname $1)/$(basename -s .make $1).cmake" |
