Commit Graph

768 Commits

Author SHA1 Message Date
Marc Herbert 4ea66b32fa git.cmake: git describe --always to support shallow clones
There's no reason for BUILD_VERSION to work only when there are git
tags.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-05-06 16:30:15 -05:00
Marc Herbert 654a2f245d git.cmake: print BUILD_VERSION always, simplify and fix error message
In an ideal world, good CIs make it very clear what exact git versions
are getting built. However:

- Zephyr is (re-)used in many projects and they cannot all be expected
  to have ideal CI.

- CI with multiple git repos is complex (#34713) which makes the world
  an even less ideal place: much more chance for some git versions to be
  missing.

- Many developers don't realize that Github and other CIs do not test
  pull/12345/head but the moving target pull/12345/merge instead. While
  not resolving pull/12345/merge completely (maybe another day), this
  commit provides at least evidence that pull/12345/head is NOT the
  commit tested.

So the addition of the following line in the logs is a very small price
to pay that can save enormous amounts of time when trying to understand
some obscure build failures.

-- BUILD_VERSION=zephyr-v2.5.0-2957-g6230b5bb66bc

Note this obviously does not provide any git information when
BUILD_VERSION is overriden but it does not hurt either in this case:
knowing BUILD_VERSION was overriden is also useful.

The "BUILD_VERSION is left undefined" message was just wrong in
the (unlikely) case `git describe` printed something while also
failing. Remove it; it's so much simpler to just print $BUILD_VERSION
and give the direct, unfiltered information.

Note this simplification is also a partial revert of 1b80f00f56
which threw the entire git warnings "baby" with some obscure duplicate
1.13.0 "bathwater" that is not relevant any more and that I guess barely
anyone noticed even at the time.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-05-06 16:30:15 -05:00
Torsten Rasmussen 5db987f922 cmake: use WEST_PYTHON as a preferred python installation if defined.
Fixes: #34368

Now added WEST_PYTHON to list of preferred pythons to check.
WEST_PYTHON is added after PYTHON_PREFER so that a user may still
request a specific python is used by supplying
`-DPYTHON_PREFER=<python>` even when building using `west build`.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-04-27 13:31:23 -04:00
Anas Nashif 29d35ced53 cmake: llvm: llvm has no newlib
llvm does not have newlib integrated for all architectures.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-04-22 07:42:58 -04:00
Torsten Rasmussen 3dd65a7663 runners: remove dependencies from runners
Today, there is a build target is added for each runner: flash, debug,
debugserver, attach.

And those runners will have a dependency to Zephyr logical target that
is built before invoking `west <runner>`.

This design has some flaws, mainly that additional dependencies directly
on the target will not be built when running `west <runner>` directly.
That generator expressions cannot be used for the DEPENDS argument.

Instead, the build target `<runner>` will not have any dependencies, and
will raise a build error if a dependency is added to the target.
Due to how `add_dependencies()` work, this must be done as a build time
check, and not configure time check.

`west <runner>` will invoke a build before executing the runner, and
this way ensure the build target is up-to-date, which again removes the
need for a dedicated `west_<runner>_target`.

It also minimizes the risk of developer errors, as developers no longer
need to consider the need for adding additional dependencies.
If a custom target is part of the default `all` build, then it's ensured
to be up-to-date.

Fixes: Issue reported on slack.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-04-19 15:35:30 +02:00
Flavio Ceolin 10fc05ced6 toolchain: llvm: Find strip command
Some targets require *strip* command. This command was not
being set when selecting llvm toolchain.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-04-17 21:03:13 -04:00
Arvin Farahmand b8f5968a42 cmake: gcc/clang: enable colour diagnostics in terminal output
When compiler results are piped through a non-terminal (e.g. ninja)
the compiler disables colour diagnostics. Using `-fdiagnostics-color`
forces the compiler to enable colour output. This flag is set for
clang and gcc when `ZEPHYR_BUILD_COLOUR_DIAGNOSTIC` environment
variable is set when a clean build is started.

Signed-off-by: Arvin Farahmand <arvinf@ip-logix.com>
2021-04-16 12:20:53 +02:00
Detlev Zundel f1f5f607b2 scripts: size_report: Add a depth parameter to CMakeLists.txt
The parameter can be used to limit the ram and rom reports to a
certain depth.  The resulting graphs with depths of e.g. 3 or 4 are
visually easier to grasp.

Signed-off-by: Detlev Zundel <dzu@member.fsf.org>
2021-04-14 07:05:58 -04:00
Jaxson Han 72287491df cmake: arm64: Add Cortex-R82 in toolchain option
Use -march=armv8.4-a to compile zephyr on cortex-R82.
Because Cortex-R82 has not been enabled in GCC 10.x currently.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2021-04-13 07:47:44 -04:00
Jaxson Han 8af11d40d0 cmake: emu: Add arm fvp emulator
Add arm fvp emulator in order to use ninja run or west build -t run.
Add armfvp in order to run twister.

Set env ARMFVP_BIN_PATH before using it,
e.g. export ARMFVP_BIN_PATH=<path/to/fvp/dir>
NOTE: ARMFVP_BIN_PATH is the dir path.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2021-04-13 07:47:44 -04:00
Anas Nashif 11e44627e9 cmake: fix isystem_include_dir path for windows
The system include directory might include spaces on windows, so quote
it.

Partially part of fix for #32111

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-04-02 13:36:49 -04:00
Christian Taedcke ea46c7a1a0 cmake: kconfig: Remove unused extra dtc flags
The usage of EXTRA_DTC_FLAGS was removed in commit
269f350487

If ninja was used and e.g. menuconfig is called, when more than one
element is in EXTRA_DTC_FLAGS, calling "ninja menuconfig" failed.

E.g.
west build -b lpcxpresso55s28_ns -t menuconfig samples/hello_world
resulted in and error. This is fixed with this commit.

Signed-off-by: Christian Taedcke <christian.taedcke@lemonbeat.com>
2021-04-01 07:31:50 -05:00
Rafał Kuźnia e68cfb5683 cmake: allow binary directory to be specified
Extend the add_subdirectory_ifdef extension to allow specifying
the binary directory.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2021-04-01 14:08:08 +02:00
Nicolas Pitre 5a1d069ae7 cmake: pick up some crumbs after the arm/arm64 split
Pick up some crumbs after the arm/arm64 split.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2021-04-01 01:03:04 -05:00
Carlo Caione 3539c2fbb3 arm/arm64: Make ARM64 a standalone architecture
Split ARM and ARM64 architectures.

Details:

- CONFIG_ARM64 is decoupled from CONFIG_ARM (not a subset anymore)
- Arch and include AArch64 files are in a dedicated directory
  (arch/arm64 and include/arch/arm64)
- AArch64 boards and SoC are moved to soc/arm64 and boards/arm64
- AArch64-specific DTS files are moved to dts/arm64
- The A72 support for the bcm_vk/viper board is moved in the
  boards/bcm_vk/viper directory

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-03-31 10:34:33 -05:00
Anas Nashif 1bb4e71bf2 toolchain: add support Intel oneApi toolchain based on llvm
This adds preliminary support for the oneApi toolchain for X86. The
toolchain is available from here:

   https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit/download.html

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-25 08:54:10 -04:00
Anas Nashif 1d949ee20f cmake: llvm: use lld
Use lld linker instead of ld.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-25 08:54:10 -04:00
Anas Nashif 22c1c505c4 cmake: bintool: add llvm abstraction
Based on abstraction for gcc with slight modifications.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-25 08:54:10 -04:00
Kumar Gala 95e4b3eb2c arch: arm: Add initial support for Cortex-M55 Core
Add initial support for the Cortex-M55 Core which is an implementation
of the Armv8.1-M mainline architecture and includes support for the
M‑profile Vector Extension (MVE).

The support is based on the Cortex-M33 support that already exists in
Zephyr.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-03-23 13:13:32 -05:00
Torsten Rasmussen 41e283c262 cmake: move the BOARD variable watch below deprecated board handling
Fixes: #33138

Board alias and deprecated board handling is setting the BOARD variable
after zephyr_boilerplate_watch(BOARD) has been executed.

This results in the board changed warning.

This commit moves the zephyr_boilerplate_watch(BOARD) code below the
board alias and deprecation handling.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-18 10:20:41 +01:00
Watson Zeng 1b99f0e67f linker: arcmwdt: use preprocess opiton -E.
-P is an option that was inherited from the old MetaWare compiler.
[ccac foo.c -P] is actually a shortcut for: [ccac -E foo.c -o foo.i].
In new version of mwdt, -P option can't redirect the output. we need
to use -E option, which works in all versions.

-P:  Preprocess the file and write it to <src>.i (C) or
      <src>.ii(C++). No compilation is performed.

-E:  Run preprocessor only.

Signed-off-by: Watson Zeng <zhiwei@synopsys.com>
2021-03-17 15:29:43 -04:00
Torsten Rasmussen 6360593f99 cmake: west: do not print error if west topdir fails
`west` is an optional tool.
Although `west` is optional, a developer might be working with both west
and non-west based projects, like
- vanilla Zephyr (using west)
- downstream project (not using west)

and thus have west installed, but not always in use.

In the downstream project scenario not using west, then running CMake
will print the following error:
```
FATAL ERROR: no west workspace found from "<path>/zephyr";
"west topdir" requires one.
Things to try:
  - Change directory to somewhere inside a west workspace and retry.
  - Set ZEPHYR_BASE to a zephyr repository path in a west workspace.
  - Run "west init" to set up a workspace here.
  - Run "west init -h" for additional information.
```

This commit sets `WEST` CMake variable to `WEST-NOTFOUND` when west is
found but Zephyr is not in a west workspace (`west topdir` fails)

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-17 11:28:14 +01:00
Torsten Rasmussen ffff2124d3 cmake: zephyr_file() now accepts BOARD and BOARD_REVISION as argument
With the introduction of #32556 changing the BOARD now prints a warning.

Zephyr provides `zephyr_file()` to look up overlays and Kconfig
fragments for a specified board, and it used to be possible and safe to
do:
```
function(my_func)
  set(BOARD <local_scope_board>)
  zephyr_file(CONF_FILES ...)
endfunction(my_func)
```

As the BOARD inside `my_func` is locally scoped, this is safe to do.
But with introduction of #32556 a warning is now printed when running
CMake.

Therefore `zephyr_file` has been extended to allow for optional BOARD
and BOARD_REVISION arguments.
If BOARD is not given as argument the current BOARD in the build system
will be used.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-16 17:03:04 -05:00
Torsten Rasmussen b3bb1d6ad2 cmake: make WATCH an optional argument to zephyr_check_cache()
Watching of specific Zephyr CMake build variables ensure users cannot
accidentally set important variables, such as BOARD, SHIELD, CONF_FILES
late in the build process.

This was also added to zephyr_check_cache() function.
However, the BOARD provided by the user may look as `<board>@<revision>`
and will be kept in the cache in that form.

However, the BOARD value from cache is spit into internal build
variables as: BOARD=<board> and BOARD_REVISION=<revision>.
However, this is done after `zephyr_check_cache()` which then triggers
the variable watch to trigger, and printing a warning when using board
revisions.

Therefore WATCH is now optional for `zephyr_check_cache()` and watch for
BOARD variable will be enabled when boilerplate has completed all board
handling.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-16 17:03:04 -05:00
Eugeniy Paltsev d80a11ab9d ARC: MWDT: avoid xcheck object linkage as we don't use xcheck
We don't use xcheck (we disable it by passing '-Hnoxcheck' to
linker) so let's avoid xcheck object linkage as well by
passing '-Hnoxcheck_obj' option.

'-Hnoxcheck_obj' option implies the '-Hnoxcheck' option.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
2021-03-12 18:29:27 -05:00
Wolfgang Puffitsch 4a01446a72 cmake: modules: Remove duplicates only from existing ZEPHYR_MODULE_NAMES
Remove duplicates from ZEPHYR_MODULE_NAMES only if that list
exists. That avoids cmake error "list sub-command REMOVE_DUPLICATES
requires list to be present" if ZEPHYR_MODULE_NAMES is empty.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
2021-03-09 07:04:09 -05:00
Anas Nashif 01b1ac8c7e xcc: do not assume clang by default
Some toolchain variants come with no clang support, so do not assume
clang by default and enable this using the enviornment variable
XCC_USE_CLANG.

export XCC_USE_CLANG=1

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-08 16:04:28 -05:00
Anas Nashif 7c15ccf8ca xcc: do not make assumptions about toolchain path
the toolchain path can either be part of a full SDK install or
standalone, support both modes.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-08 16:04:28 -05:00
Martí Bolívar 163a253539 cmake: check BOARD and SOC roots before use
People frequently do things like setting BOARD_ROOT to
/my/module/boards/arm/my_board when it should be set to /my/module.

Similar misconfigurations happen for SOC_ROOT.

Emit warnings in these situations to try to point users in the right
direction.

A similar change could be made for DTS_ROOT, but that is trickier
since at least one directory (the application root) is legitimately
added to it that does not always contain dts/ or include/
subdirectories.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-08 12:51:29 +01:00
Torsten Rasmussen 3a58b45ced cmake: board_check_revision() also accepts a list of valid revisions
To remove the need of empty config files, the `board_check_revision()`
now accepts a list of valid revisions.

As example:
```
board_check_revision(
  FORMAT MAJOR.MINOR.PATCH
  VALID_REVISIONS 0.1.0 0.5.0 0.10.0
)
```

The code is still compatible with the `<board>_<revision>.conf` changes
so that if different revisions of a board has Kconfig differences, then
there is no need to also specify the list of valid revisions.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-04 12:58:43 +01:00
Kumar Gala 444a2d19a8 cmake: dtc: Validate EXTRA_DTC_FLAGS flags
Make sure the flags in EXTRA_DTC_FLAGS are valid for the version of dtc
we have and only invoke dtc with flags it supports.

Fixes #32644

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-03-03 17:29:29 +01:00
Martí Bolívar 2a52fa3eab cmake: dts: pass EXTRA_GEN_DEFINES_ARGS to gen_defines.py
Users can now set this CMake variable to pass additional arguments to
gen_defines.py.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-03 10:22:36 -06:00
Torsten Rasmussen 48321ef252 shield: cmake: adjust if(EXISTS <shield>.conf) to check for right file
Fixes: #32269

This commit is a followup to #31877 where the `${shield_dir}/${s_dir}`
was adjusted to `${SHIELD_DIR_${s}}` to ensure only including shields
and not boards in list of known shields.

An `if(EXISTS ${shield_dir}/${s_dir}...)` was missed in this process
which causes #32269. This is corrected in this commit.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-03-01 15:50:52 -06:00
Martí Bolívar 0629e698af cmake: warn if it's too late to set a boilerplate variable
Several variables must be set by the time boilerplate.cmake is run.
This includes BOARD, SHIELD, CONF_FILE, and DTC_OVERLAY_FILE.

It's not always clear to users that this is the case, and we sometimes
see attempts to modify these variables in app CMakeLists.txt files
after find_package(Zephyr ...) lines, where they will have no effect.
This causes confusion.

Add a new extension function, zephyr_boilerplate_watch(), which traps
attempts to set these variables and prints a noisy warning. Use it
from boilerplate.cmake on the variables mentioned above.

This will hopefully make it clearer at build time why the changes are
being ignored.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-02-28 16:48:23 -05:00
Pete Johanson 310a464acf cmake: Add UF2 as an additional build output option.
Add ability to build a UF2 (https://github.com/Microsoft/uf2)
image as an additional output type. This leverages the code
partition offset for the UF2 base address, and a configurable
UF2 family ID.

Includes an unmodified (except for headers for licensing, pylit
disabling) version of the uf2conv.py script copied the UF2
format specification repository, used to convert the bin to UF2.

Origin: UF2 file format specification reference utilies
License: MIT
URL: https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
commit: 587abb8b909266e9b468d6284f2fbd425235d1b5
Signed-off-by: Pete Johanson <peter@peterjohanson.com>
2021-02-23 21:11:04 +01:00
Henrik Brix Andersen 19b540630e boards: shields: add SHIELD_DIRS to DTS_ROOT
Treat shield directories containing a dts subdirectory as a DTS root
directory.

This allows shield specific devicetree include files and bindings to be
stored under the shield dts subdirectory.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-02-23 12:37:54 +01:00
Henrik Brix Andersen 50aab5d27c boards: shields: add shield directories to SHIELD_DIRS
Keep a list of shield directories for use in other parts of the build
system.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-02-23 12:37:54 +01:00
Torsten Rasmussen fa8912d9f4 cmake: remove duplicated ZEPHYR_BASE append to BOARD_ROOT
The following two lines are duplicated in boilerplate.cmake
```
zephyr_file(APPLICATION_ROOT BOARD_ROOT)
list(APPEND BOARD_ROOT ${ZEPHYR_BASE})
```

This commit removes one set of the duplicated lines.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-19 10:24:13 +03:00
Anas Nashif c7bc6380bd compiler: do not allow expansion-to-defined
'-Wexpansion-to-defined'
     Warn whenever 'defined' is encountered in the expansion of a macro
     (including the case where the macro is expanded by an '#if'
     directive).  Such usage is not portable.  This warning is also
     enabled by '-Wpedantic' and '-Wextra'.

This is enabled by default in llvm but not in gcc. Given that it is 'not
portable', lets disallow this in gcc and keep both compilers in sync.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-17 04:05:42 -05:00
Torsten Rasmussen c4c79f5f33 cmake: improved handling of output and byproducts in CMake
Fixes: #23449

This commit adds additional OUTPUT and BYPRODUCTS to custom command
and targets in the Zephyr build system.

This ensures that files produced during the build will be removed again
when invoking ninja clean / make clean.

The generated syscalls headers include folder is added to the syscall
target using ADDITIONAL_CLEAN_FILES property.
However, this property is new in CMake 3.15, so will not work when using
older CMake with ninja.

For CMake versions <=3.15 the ADDITIONAL_MAKE_CLEAN_FILES property is
used. However, this only supports Makefile generator.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-14 18:09:24 -05:00
Anas Nashif 467f916860 renode: fix dependencies for renode platforms
Make renode platforms run target depend on zephyr ELF.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-08 21:03:48 -05:00
Torsten Rasmussen d162e9e1ff cmake: twister: Using common script for toolchain setting verification
Fixes: #30713

Now using the common script `verify-toolchain.cmake` for verifying
toolchain settings.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-04 20:05:05 -05:00
Torsten Rasmussen 7f970093b3 cmake: remove ZEPHYR_GCC_VARIANT variable
ZEPHYR_GCC_VARIANT was deprecated in #6139 in 02/2018

Removing the variable now.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-04 20:05:05 -05:00
Anas Nashif 59365f576e cmake: remove usage of deprecated gccarmemb variant
gccarmemb was deprecated 2 years ago, so remove it.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-04 11:14:44 -05:00
Kumar Gala 5a11af3ce2 cmake: dts: Fix passing multiple EXTRA_DTC_FLAGS to gen_defines.py
Since EXTRA_DTC_FLAGS will be ';' seperated if we pass that as is if
there are multiple items in the list we'll get an error.  Sanitize
EXTRA_DTC_FLAGS by replacing ';' with ' ' before we call gen_defines.py

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-02-04 10:05:47 -05:00
Torsten Rasmussen 2bf26ecf4d cmake: modules: remove Zephyr module duplicates from ZEPHYR_MODULE_NAMES
This allows users to overrule a module from command line.
As example, the Zephyr build system loads the module FOO from
`modules/FOO`, but user has a custom FOO locally at `custom/FOO` and
would like to use this module instead of manifest specified.

If user does `-DZEPHYR_EXTRA_MODULES=custom/FOO` the following error
will be seen:
```
The binary directory

  build/modules/FOO

is already used to build a source directory.  It cannot be used to build
source directory

  custom/FOO

Specify a unique binary directory name.
```

Removing duplicates from the list allows a user to use
`-DZEPHYR_EXTRA_MODULES=custom/FOO` and thus replace `modules/FOO` for
the current build.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-03 16:58:28 -05:00
Torsten Rasmussen 6055c253ee shield: cmake: using Kconfig.shield instead of looking for overlay files
Fixes: #26522

Now searching for Kconfig.shield instead of recursively looking for
overlay files.

Globbing recursively for overlay files also picks up board overlays,
which leads to errors in the shield handling, as user could wrongly
specify certain boards as shields.
Also it led to wrongly list some board as shields, as reported
in #26522.

The folder containing a Kconfig.shield is then used when looking up
overlay files, as all overlay files in that folder represents a shield.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-02 19:05:47 -05:00
Torsten Rasmussen bc47797fbb cmake: Look for revision specific overlays also in <app>/boards/
This is a follow-up to commit 77ecd6837d.

Add missing check that looks for a revision specific overlay located
in the `<app>/boards/` directory similar to how overlays and Kconfig
fragments are handled.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-02-02 14:02:13 -05:00
Torsten Rasmussen d24ca1be1b cmake: shields: escaping and quoting list when used for env settings
Fixes: #30553

The `;` in a list must be escaped when used as for execute_process and
add_custom_target, as those functions are using `cmake -E env` to setup
correct environment before executing kconfig and menuconfig.

This commits escapes `SHIELD_AS_LIST` variable list correctly before
using it.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-01-26 17:42:08 -05:00
Torsten Rasmussen 774103d050 cmake: pristine.cmake requires SOURCE_DIR and BINARY_DIR as arguments
Calling cmake/pristine.cmake now requires SOURCE_DIR and BINARY_DIR as
arguments.

This ensures that pristine.cmake can evaluate if pristine is requested
on in-source builds, and bail out in such case with an error message.

All uses of `pristine.cmake` has been updated to use the new arguments.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-01-23 08:31:13 -05:00