Skip to content

Commit

Permalink
cmake: remove NCS Toolchain CMake package lookup
Browse files Browse the repository at this point in the history
Jira: NCSDK-30518

nrfutil provides a custom command / shell environment which defines
all required tools.

VSCode uses this environment and therefore doesn't rely on the
NCS Toolchain CMake package.

To simplify NCS Toolchain integration then this PR removes the NCS CMake
package lookup.

The integration has also at some point become broken, which results in
the following error when trying to build outside the environment
provided by nrfutil:
> Could NOT find Python3 (missing: Interpreter) (Required is at least
> version "3.10")
>
>      Reason given by package:
>          Interpreter: Cannot run the interpreter
>          "/.../toolchains/b81a7cd864/usr/local/bin/python3"

Signed-off-by: Torsten Rasmussen <[email protected]>
  • Loading branch information
tejlmand authored and carlescufi committed Jan 9, 2025
1 parent 01a4103 commit 9299b43
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 81 deletions.
1 change: 0 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,6 @@
/scripts/ci/twister_ignore.txt @nordic-piks @PerMac @katgiadla
/scripts/quarantine*.yaml @nrfconnect/ncs-test-leads
/scripts/hid_configurator/ @nrfconnect/ncs-si-bluebagel
/scripts/ncs-toolchain-version-minimum.txt @nrfconnect/ncs-co-build-system @nrfconnect/ncs-ci
/scripts/tools-versions-*.txt @nrfconnect/ncs-co-build-system @nrfconnect/ncs-ci
/scripts/requirements-*.txt @nrfconnect/ncs-co-build-system @nrfconnect/ncs-ci
/scripts/west_commands/create_board/ @gmarull
Expand Down
3 changes: 0 additions & 3 deletions scripts/ncs-toolchain-version-minimum.txt

This file was deleted.

77 changes: 0 additions & 77 deletions share/ncs-package/cmake/NcsConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,83 +15,6 @@ set(NCS_VERSION_MINOR ${CMAKE_MATCH_2})
set(NCS_VERSION_PATCH ${CMAKE_MATCH_3})
set(NCS_VERSION_EXTRA ${CMAKE_MATCH_4})

file(STRINGS ${NRF_DIR}/scripts/ncs-toolchain-version-minimum.txt
toolchain_string LIMIT_COUNT 1 REGEX "^nrf-connect-sdk-toolchain="
)

string(REGEX MATCH "=([^ \t]*)" OUT_VAR "${toolchain_string}")
set(NCS_TOOLCHAIN_MINIMUM_REQUIRED ${CMAKE_MATCH_1})

if(NOT NO_BOILERPLATE)
if(NOT DEFINED NCS_TOOLCHAIN_VERSION AND SYSBUILD)
file(STRINGS "${SYSBUILD_CACHE}" sysbuild_cache_strings ENCODING UTF-8 REGEX "^NCS_TOOLCHAIN_VERSION:")
list(POP_FRONT sysbuild_cache_strings sysbuild_ncs_toolchain)
if(DEFINED sysbuild_ncs_toolchain)
string(REGEX MATCH "([^:]*):([^=]*)=" variable_identifier ${sysbuild_ncs_toolchain})
string(LENGTH ${variable_identifier} variable_identifier_length)
string(SUBSTRING "${sysbuild_ncs_toolchain}" ${variable_identifier_length} -1 variable_value)
set(NCS_TOOLCHAIN_VERSION ${variable_value} CACHE "${CMAKE_MATCH_2}" "NCS Toolchain controlled by sysbuild")
endif()
endif()

if(NCS_TOOLCHAIN_VERSION)
set(NCS_TOOLCHAIN_MINIMUM_REQUIRED ${NCS_TOOLCHAIN_VERSION})
set(EXACT "EXACT")
endif()

if(NOT "${NCS_TOOLCHAIN_MINIMUM_REQUIRED}" STREQUAL "NONE")
find_package(NcsToolchain ${NCS_TOOLCHAIN_MINIMUM_REQUIRED} ${EXACT} QUIET)
if(${NcsToolchain_FOUND})
message("-- Using NCS Toolchain ${NcsToolchain_VERSION} for building. (${NcsToolchain_DIR})")

set(CUSTOM_COMMAND_PATH ${NCS_TOOLCHAIN_BIN_PATH} $ENV{PATH})
cmake_path(CONVERT "${CUSTOM_COMMAND_PATH}" TO_NATIVE_PATH_LIST CUSTOM_COMMAND_PATH)
string(REPLACE ";" "\\\;" CUSTOM_COMMAND_PATH "${CUSTOM_COMMAND_PATH}")

set(CUSTOM_COMMAND_ENV ${CMAKE_COMMAND} -E env "PATH=${CUSTOM_COMMAND_PATH}")
set(GIT_EXECUTABLE ${NCS_TOOLCHAIN_GIT} CACHE FILEPATH "NCS Toolchain Git")

set(DTC ${NCS_TOOLCHAIN_DTC} CACHE FILEPATH "NCS Toolchain DTC")
set(GPERF ${NCS_TOOLCHAIN_GPERF} CACHE FILEPATH "NCS Toolchain gperf")
set(WEST ${NCS_TOOLCHAIN_WEST} CACHE FILEPATH "NCS Toolchain West")
set(Python3_EXECUTABLE ${NCS_TOOLCHAIN_PYTHON} CACHE FILEPATH "NCS Toolchain Python")
set(PYTHON_EXECUTABLE ${NCS_TOOLCHAIN_PYTHON} CACHE FILEPATH "NCS Toolchain Python")

if(DEFINED NCS_TOOLCHAIN_PROTOC)
set(PROTOC ${CUSTOM_COMMAND_ENV} ${NCS_TOOLCHAIN_PROTOC} CACHE STRING "NCS Toolchain protoc")
set(PROTOBUF_PROTOC_EXECUTABLE ${CUSTOM_COMMAND_ENV} ${NCS_TOOLCHAIN_PROTOC} CACHE STRING "NCS Toolchain protoc")
endif()

set(ZEPHYR_TOOLCHAIN_VARIANT ${NCS_TOOLCHAIN_VARIANT} CACHE STRING "NCS Toolchain Variant")
if("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "zephyr")
set(ZEPHYR_SDK_INSTALL_DIR ${NCS_ZEPHYR_SDK_INSTALL_DIR} CACHE PATH "NCS Zephyr SDK install dir")
endif()
set(GNUARMEMB_TOOLCHAIN_PATH ${NCS_GNUARMEMB_TOOLCHAIN_PATH} CACHE PATH "NCS GNU ARM emb path")

if("${CMAKE_GENERATOR}" STREQUAL "Ninja")
set(CMAKE_MAKE_PROGRAM ${NCS_TOOLCHAIN_NINJA} CACHE INTERNAL "NCS Toolchain ninja")
endif()

if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
set(env_list_delimeter ";")
else()
set(env_list_delimeter ":")
endif()

# If NCS_TOOLCHAIN_ENV_PATH is set, then we must ensure to prepend it
# to ENV{PATH}. This is especially needed for west to work properly
# in windows with MinGW64.
if(NCS_TOOLCHAIN_ENV_PATH)
set(ENV{PATH} "${NCS_TOOLCHAIN_ENV_PATH}${env_list_delimeter}$ENV{PATH}")
endif()

# If the NCS toolchain specifies a dedicated PYTHONPATH,
# we must ensure all calls uses that.
if(NCS_TOOLCHAIN_PYTHONPATH)
set(ENV{PYTHONPATH} "${NCS_TOOLCHAIN_PYTHONPATH}")
endif()
endif()
endif()

include(${NRF_DIR}/cmake/boilerplate.cmake NO_POLICY_SCOPE)
endif()

0 comments on commit 9299b43

Please sign in to comment.