Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JLink targets for Ubuntu 18.04 and gnome-terminal version 3.28.2 #1

Closed
podkiva opened this issue Feb 23, 2020 · 1 comment
Closed

Comments

@podkiva
Copy link

podkiva commented Feb 23, 2020

I am using the template project in order to build for Nordic 52840 chip in CLion on Ubuntu 18.04. My version of gnome-terminal is 3.28.2 and the following commands doesn't work:

COMMAND ${TERMINAL} "${nRF5_CMAKE_PATH}/runJLink...${COMMAND_SUFFIX}" ${POST_OPTIONS}

This is due to updated syntax as far as I understand, see this.

That means that following change would work:

COMMAND ${TERMINAL} -- "${nRF5_CMAKE_PATH}/runJLink...${COMMAND_SUFFIX}" ${POST_OPTIONS}

I have updated nRF5-cmake-scripts locally in another branch by adding "COMMAND_PREFIX" variable that would contain "--" for unix distros:

if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
        set(TERMINAL "open")
        set(COMMAND_PREFIX "")
        set(COMMAND_SUFFIX "")
    elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
        find_program(CMD cmd)
        set(TERMINAL ${CMD} /c start powershell -noexit -ExecutionPolicy Bypass -File)
        set(POST_OPTIONS -JLinkPath ${JLINK} -JLinkGDBServerPath ${JLINKGDBSERVER} -JLinkRTTClientPath ${JLINKRTTCLIENT})
        set(COMMAND_PREFIX "")
        set(COMMAND_SUFFIX ".ps1")
    else()
        set(TERMINAL "gnome-terminal")
        set(COMMAND_PREFIX "--")
        set(COMMAND_SUFFIX "")
    endif()

    if(EXISTS "${JLINK}")
        if(EXISTS "${JLINKGDBSERVER}" AND EXISTS "${JLINKRTTCLIENT}")
            add_custom_target(START_JLINK_ALL ALL
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkGDBServer${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkExe${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMAND cmake -E sleep 2
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkRTTClient${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMENT "started JLink commands"
                    VERBATIM
                    )
        endif()
        if(EXISTS "${JLINKRTTCLIENT}")
            add_custom_target(START_JLINK_RTT ALL
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkExe${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMAND cmake -E sleep 2
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkRTTClient${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMENT "started JLink RTT terminal"
                    VERBATIM
                    )
        else()
            message(WARNING "The path to the JLinkRTTClient utility (JLINKRTTCLIENT) is not set or does not exist, so START_JLINK_RTT and START_JLINK_ALL targets will not be available")
        endif()
        if(EXISTS "${JLINKGDBSERVER}")
            add_custom_target(START_JLINK_GDBSERVER ALL
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkExe${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMAND cmake -E sleep 2
                    COMMAND ${TERMINAL} ${COMMAND_PREFIX} "${nRF5_CMAKE_PATH}/runJLinkGDBServer${COMMAND_SUFFIX}" ${POST_OPTIONS}
                    COMMENT "started JLink GDB server"
                    VERBATIM
                    )
        else()
            message(WARNING "The path to the JLinkGDBServer utility (JLINKGDBSERVER) is not set or does not exist, so START_JLINK_GDBSERVER and START_JLINK_ALL targets will not be available")
        endif()
    else()
        message(WARNING "The path to the JLink utility (JLINK) is not set or does not exist, so START_JLINK_* targets will not be available")
    endif()

But I suppose that this probably needs another thought on how to keep it backward compatible?

@nrbrook
Copy link
Collaborator

nrbrook commented Feb 26, 2020

I think it would be better to just add -- into the TERMINAL variable instead of adding a new one, as this is how it is used on Windows already. I've done this in a4d77ee. Unless an issue is raised for compatibility, we won't worry about it.

@nrbrook nrbrook closed this as completed Feb 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants