blob: 3ff7d632d4f2a628ee683291bb7a3b93cbe4b0bf [file] [log] [blame]
# Copyright (c) 2023 Nordic Semiconductor ASA
# Copyright (c) 2018 Oticon A/S
# SPDX-License-Identifier: Apache-2.0
find_package(BabbleSim)
zephyr_library()
# Due to the BLE controller assumption about enum size
zephyr_compile_options(
-fshort-enums
)
# Structures layouts needs to match in the interface between the runner and the embedded SW
# The nrfx HAL uses enums in its definitions,so they need to have the same size in both,
# as both the HW models and embedded SW use them.
target_compile_options(native_simulator INTERFACE -fshort-enums)
zephyr_library_sources(
irq_handler.c
cpu_wait.c
argparse.c
nsi_if.c
soc/nrfx_coredep.c
common/bstests_entry.c
common/cmsis/cmsis.c
common/trace_hook.c
)
# Include sync_rtc from real SOC code if enabled
zephyr_library_sources_ifdef(CONFIG_NRF53_SYNC_RTC
${ZEPHYR_BASE}/soc/arm/nordic_nrf/nrf53/sync_rtc.c
)
target_sources(native_simulator INTERFACE
common/bsim_args_runner.c
common/bsim_extra_cpu_if_stubs.c
common/phy_sync_ctrl.c
common/runner_hooks.c
common/posix_arch_if.c
common/trace_hook.c
)
if (CONFIG_IPC_SERVICE AND CONFIG_BOARD_NRF5340BSIM_NRF5340_CPUAPP)
zephyr_library_sources(
ipc_backend.c
)
endif()
zephyr_include_directories(
soc
common
common/cmsis
${NSI_DIR}/common/src/include
)
zephyr_library_include_directories(
${BSIM_COMPONENTS_PATH}/libUtilv1/src/
${BSIM_COMPONENTS_PATH}/libPhyComv1/src/
${BSIM_COMPONENTS_PATH}/libRandv2/src/
${ZEPHYR_BASE}/kernel/include
${ZEPHYR_BASE}/arch/posix/include
common/
)
set(libpath ${BSIM_OUT_PATH}/lib)
set_property(TARGET native_simulator APPEND PROPERTY RUNNER_LINK_LIBRARIES
${libpath}/libUtilv1.32.a
${libpath}/libPhyComv1.32.a
${libpath}/lib2G4PhyComv1.32.a
${libpath}/libRandv2.32.a
)
target_compile_options(native_simulator INTERFACE
"-DNSI_PRIMARY_MCU_N=${CONFIG_NATIVE_SIMULATOR_PRIMARY_MCU_INDEX}")
add_subdirectory(${ZEPHYR_BASE}/boards/${ARCH}/common/extra_args/
${CMAKE_CURRENT_BINARY_DIR}/extra_args
)
include(../common/natsim_config.cmake)