Using find_package to locate Zephyr.
Old behavior was to use $ENV{ZEPHYR_BASE} for inclusion of boiler plate
code.
Whenever an automatic run of CMake happend by the build system / IDE
then it was required that ZEPHYR_BASE was defined.
Using ZEPHYR_BASE only to locate the Zephyr package allows CMake to
cache the base variable and thus allowing subsequent invocation even
if ZEPHYR_BASE is not set in the environment.
It also removes the risk of strange build results if a user switchs
between different Zephyr based project folders and forgetting to reset
ZEPHYR_BASE before running ninja / make.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
23 lines
592 B
CMake
23 lines
592 B
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
cmake_minimum_required(VERSION 3.13.1)
|
|
|
|
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
|
|
project(test_relocation)
|
|
|
|
FILE(GLOB app_sources src/*.c)
|
|
target_sources(app PRIVATE ${app_sources})
|
|
|
|
# Code relocation feature
|
|
zephyr_code_relocate(src/test_file1.c SRAM2)
|
|
|
|
zephyr_code_relocate(src/test_file2.c SRAM)
|
|
|
|
zephyr_code_relocate(src/test_file3.c SRAM2_TEXT)
|
|
zephyr_code_relocate(src/test_file3.c SRAM_DATA)
|
|
zephyr_code_relocate(src/test_file3.c SRAM2_BSS)
|
|
|
|
zephyr_code_relocate(../../../kernel/sem.c SRAM)
|
|
|
|
zephyr_linker_sources(SECTIONS custom-sections.ld)
|