diff options
| -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" |
