cmake: Add seL4Config.cmake include CMakeLists.txt

seL4Config.cmake is responsible for generating a valid
CMAKE_TOOLCHAIN_FILE and setting up platform config options at the start
of the build. The CMAKE_TOOLCHAIN_FILE variable has to be set before the
first cmake `project()` function is processed to take effect.
Previously this file was required to be imported in a CMake script
before the kernel's CMakeLists.txt could be processed. This prevented
the main CMakeLists.txt file from being used without an additional
configuration file:
cmake -G Ninja -C ../configs/ARM_verified.cmake ../

Now it is possible to do:
cmake -G Ninja -DKernelPlatform=imx6 -DKernelARMPlatform=sabre ../

This should make it easier to invoke CMake for building kernel
configurations from other build environments.

Because this file is now imported in the Kernel's CMakeLists.txt
context, there is no longer a requirement to save all the intermediate
settings into the cache and then read them out again.

Signed-off-by: Kent McLeod <kent@kry10.com>
This commit is contained in:
Kent McLeod
2021-06-19 17:29:36 +10:00
committed by Gerwin Klein
parent 82e7a0251d
commit b05d681621
10 changed files with 15 additions and 102 deletions

View File

@@ -6,8 +6,6 @@
cmake_minimum_required(VERSION 3.7.2)
set(configure_string "${config_configure_string}")
config_option(
KernelIsMCS KERNEL_MCS "Use the MCS kernel configuration, which is not verified."
DEFAULT OFF
@@ -49,7 +47,7 @@ set_property(
)
# These options are now set in seL4Config.cmake
if(DEFINED CONFIGURE_MAX_IRQ)
if(DEFINED CALLED_declare_default_headers)
# calculate the irq cnode size based on MAX_IRQ
if("${KernelArch}" STREQUAL "riscv")
set(MAX_IRQ "${CONFIGURE_PLIC_MAX_NUM_INT}")