# Generated Cmake Pico project file

cmake_minimum_required(VERSION 3.13)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# Initialise pico_sdk from installed location
# (note this can come from environment, CMake cache etc)

# == DO NOT EDIT THE FOLLOWING LINES for the Raspberry Pi Pico VS Code Extension to work ==
if(WIN32)
    set(USERHOME $ENV{USERPROFILE})
else()
    set(USERHOME $ENV{HOME})
endif()
set(sdkVersion 2.1.0)
set(toolchainVersion 13_3_Rel1)
set(picotoolVersion 2.1.0)
set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake)
if (EXISTS ${picoVscode})
    include(${picoVscode})
endif()
# ====================================================================================
set(PICO_BOARD pico CACHE STRING "Board type")

# Pull in Raspberry Pi Pico SDK (must be before project)
include(pico_sdk_import.cmake)

project(Pico_NFC C CXX ASM)

# Initialise the Raspberry Pi Pico SDK
pico_sdk_init()

# Add executable. Default name is the project name, version 0.1

add_executable(Pico_NFC 
        Pico_NFC.c
        ##############
        2-NFC/Felica/X_FELICA_App.c
        2-NFC/ISO15/X_ISO15_App.c
        2-NFC/ISO14B/X_ISO14B_App.c
        2-NFC/ISO14A/X_ISO14A_App.c
        2-NFC/ISO14A/Ntag/X_Ntag.c
        ##################
        )

pico_set_program_name(Pico_NFC "Pico_NFC")
pico_set_program_version(Pico_NFC "0.1")

# Modify the below lines to enable/disable output over UART/USB
pico_enable_stdio_uart(Pico_NFC 0)
pico_enable_stdio_usb(Pico_NFC 1)

# Add the standard library to the build
target_link_libraries(Pico_NFC
        pico_stdlib)

# Add the standard include files to the build
target_include_directories(Pico_NFC PRIVATE
  ${CMAKE_CURRENT_LIST_DIR}
)

# Add any user requested libraries
target_link_libraries(Pico_NFC 
        pico_stdlib
        hardware_clocks
        hardware_pwm
        hardware_adc
        hardware_flash
        hardware_i2c
        hardware_uart
        hardware_pio
        )

########################################################
# Link against the static library and Pico SDK libraries
target_link_libraries(Pico_NFC
    ${CMAKE_CURRENT_LIST_DIR}/libNFC/ISO14A/lib_ps_iso14a.a
    ${CMAKE_CURRENT_LIST_DIR}/libNFC/ISO14B/lib_ps_iso14b.a
    ${CMAKE_CURRENT_LIST_DIR}/libNFC/ISO15/lib_ps_iso15.a
    ${CMAKE_CURRENT_LIST_DIR}/libNFC/Felica/lib_ps_felica.a
    ${CMAKE_CURRENT_LIST_DIR}/libNFC/Comm/lib_ps_comm.a
 )
#########################################################

pico_add_extra_outputs(Pico_NFC)

# Increase the SPI Flash clock divider setting to 4.
pico_define_boot_stage2(slower_boot2 ${PICO_DEFAULT_BOOT_STAGE2_FILE})
target_compile_definitions(slower_boot2 PRIVATE PICO_FLASH_SPI_CLKDIV=4)
pico_set_boot_stage2(Pico_NFC slower_boot2)

# add timestamp
string(TIMESTAMP CURRENT_TIME %Y%m%d_%H%M)
# file name with timestamp
set(TIMESTAMPED_UF2_FILE "${CMAKE_CURRENT_BINARY_DIR}/GroveNFC_${CURRENT_TIME}.uf2")
# copy uf2 file
add_custom_command(TARGET Pico_NFC POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
        "${CMAKE_CURRENT_BINARY_DIR}/Pico_NFC.uf2"
        ${TIMESTAMPED_UF2_FILE}
    COMMENT "Copying uf2 file to timestamped version"
)
 