Files
NxpNfcRdLib/CMakeLists.txt
2024-07-08 21:03:06 +08:00

154 lines
4.5 KiB
CMake

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
OPTION(WITH_NDA "With Components/Examples Under NDA" OFF)
OPTION(BOARD_RaspberryPi "Platform is RaspberryPi" ON)
OPTION(BOARD_UdooNeo "Platform is UdooNeo" OFF)
OPTION(BOARD_LPC1769 "Platform is LPC1769" OFF)
OPTION(FRONTEND_PN5190 "IC Frontend is PN5190" ON)
OPTION(FRONTEND_PN5180 "IC Frontend is PN5180" OFF)
OPTION(FRONTEND_RC663 "IC Frontend is RC663" OFF)
OPTION(BUILD_EXAMPLES "Build examples and compliance apps" ON)
OPTION(BUS_SPIUserMode "Connected to FRONTEND over SPI in User Mode" OFF)
OPTION(BUS_SPIKernelMode "Connected to FRONTEND over SPI in Kernal Mode" OFF)
IF(BUS_SPIKernelMode AND BUS_SPIUserMode)
MESSAGE(FATAL_ERROR "Can not select both SPI Kernel Mode and SPI User Mode")
ENDIF()
IF(BUS_SPIKernelMode AND FRONTEND_RC663)
MESSAGE(FATAL_ERROR "SPI Kernel Mode is not supported for RC663")
ENDIF()
IF(BOARD_RaspberryPi AND BOARD_UdooNeo)
MESSAGE(FATAL_ERROR "RaspberryPi and UdooNeo can not be compiled at the same time. ")
ENDIF()
IF (FRONTEND_PN5180 AND FRONTEND_RC663)
MESSAGE(FATAL_ERROR "PN5180 and RC663 can not be compiled at the same time. ")
ENDIF (FRONTEND_PN5180 AND FRONTEND_RC663)
IF (FRONTEND_PN5190 AND FRONTEND_RC663)
MESSAGE(FATAL_ERROR "PN5190 and RC663 can not be compiled at the same time. ")
ENDIF (FRONTEND_PN5190 AND FRONTEND_RC663)
IF (FRONTEND_PN5180 AND FRONTEND_PN5190)
MESSAGE(FATAL_ERROR "PN5180 and PN5190 can not be compiled at the same time. ")
ENDIF (FRONTEND_PN5180 AND FRONTEND_PN5190)
IF(IS_ABSOLUTE ${CMAKE_TOOLCHAIN_FILE})
SET(INCLUDING_TOOLCHAIN_FILE_FOR_FLAGS ON)
INCLUDE(${CMAKE_TOOLCHAIN_FILE})
SET(INCLUDING_TOOLCHAIN_FILE_FOR_FLAGS OFF)
ENDIF()
# Generate folders for IDE targets (e.g., VisualStudio solutions)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(IDE_FOLDER "")
PROJECT(NxpNfcInfraSw)
IF (BUS_SPIKernelMode OR BUS_SPIUserMode)
ADD_DEFINITIONS(-DNXPBUILD__PHBAL_SELECTED)
ENDIF ()
IF(BUS_SPIKernelMode)
ADD_DEFINITIONS(-DNXPBUILD__PHBAL_REG_LINUX_KERNEL_SPI)
ENDIF()
IF(BUS_SPIUserMode)
ADD_DEFINITIONS(-DNXPBUILD__PHBAL_REG_LINUX_USER_SPI)
ENDIF()
IF (FRONTEND_PN5180 OR FRONTEND_RC663 OR FRONTEND_PN5190)
ADD_DEFINITIONS(-DNXPBUILD__PHHAL_SELECTED)
ELSE (FRONTEND_PN5180 OR FRONTEND_RC663 OR FRONTEND_PN5190)
MESSAGE(FATAL_ERROR "Either of PN5180 or PN5190 or RC663 should be selected. ")
ENDIF (FRONTEND_PN5180 OR FRONTEND_RC663 OR FRONTEND_PN5190)
IF(FRONTEND_PN5180)
ADD_DEFINITIONS(-DNXPBUILD__PHHAL_HW_PN5180)
ENDIF()
IF(FRONTEND_PN5190)
ADD_DEFINITIONS(-DNXPBUILD__PHHAL_HW_PN5190)
ENDIF()
IF(FRONTEND_RC663)
ADD_DEFINITIONS(-DNXPBUILD__PHHAL_HW_RC663)
ENDIF()
INCLUDE_DIRECTORIES(
Platform/DAL/inc
Platform/DAL/boards
Platform/DAL/cfg
RTOS/phOsal/inc
)
IF(BOARD_RaspberryPi OR BOARD_UdooNeo)
ADD_DEFINITIONS(-pthread)
ADD_DEFINITIONS(-DDEBUG)
ADD_DEFINITIONS(-g)
ENDIF()
IF(BOARD_RaspberryPi)
IF(FRONTEND_PN5180)
ADD_DEFINITIONS(-DPHDRIVER_PIPN5180_BOARD)
ENDIF(FRONTEND_PN5180)
IF(FRONTEND_PN5190)
ADD_DEFINITIONS(-DPHDRIVER_PIPN5190_BOARD)
ADD_DEFINITIONS(-DPH_NXPNFCRDLIB_CONFIG_EMVCO_FIELD_OFF_DELAY_US=2500)
ENDIF(FRONTEND_PN5190)
IF(FRONTEND_RC663)
ADD_DEFINITIONS(-DPHDRIVER_PIRC663_BOARD)
ENDIF(FRONTEND_RC663)
ADD_DEFINITIONS(-DNXPBUILD__PH_RASPBERRY_PI)
ADD_DEFINITIONS(-DPH_OSAL_LINUX)
INCLUDE_DIRECTORIES(
"Platform/DAL/src/Linux/"
)
ENDIF(BOARD_RaspberryPi)
IF(BOARD_UdooNeo)
ADD_DEFINITIONS(-DNXPBUILD__PH_UDOO_NEO)
ENDIF(BOARD_UdooNeo)
IF(BOARD_LPC1769)
ADD_SUBDIRECTORY(RTOS)
ADD_SUBDIRECTORY(Platform)
INCLUDE_DIRECTORIES(
"RTOS/FreeRTOS/include"
"RTOS/FreeRTOS/portable/GCC/ARM_CM3/"
)
IF(IS_DIRECTORY ${lpc_chip_175x_6x_SOURCE_DIR}/libs)
LINK_DIRECTORIES(${lpc_chip_175x_6x_SOURCE_DIR}/libs)
ENDIF()
ENDIF(BOARD_LPC1769)
ADD_SUBDIRECTORY(Platform/DAL)
ADD_SUBDIRECTORY(RTOS/phOsal)
ADD_SUBDIRECTORY(NxpNfcRdLib)
INCLUDE_DIRECTORIES(
${NxpNfcRdLib_SOURCE_DIR}/intfs
${NxpNfcRdLib_SOURCE_DIR}/types
)
IF(BUILD_EXAMPLES)
# ADD_SUBDIRECTORY(PlatformIntegartionTestBench)
ADD_SUBDIRECTORY(Examples)
ADD_SUBDIRECTORY(ComplianceApp)
IF(FRONTEND_PN5190)
ADD_SUBDIRECTORY(ExamplesPN5190)
ENDIF()
ENDIF(BUILD_EXAMPLES)