Not recognizing passed argument to CMAKE via command prompt at the `make` stage

12 Views Asked by At

I am trying to force the user to pass a parameter before compiling. But I have a problem. After I run :

cd .. ;rm -r build; mkdir build; cd build; cmake -DUSER_DEFINED_BOARD_VERSION:STRING="SATNOGS_COMMS_VERSION_0_2_1" ..

Everything compiles as expected:

...
-- Detecting CXX compile features - done
-- USER_DEFINED_BOARD_VERSION: SATNOGS_COMMS_VERSION_0_2_1
-- BOARD_VERSION: 021
-- USER_DEFINED_BOARD_VERSION: SATNOGS_COMMS_VERSION_0_2_1
-- USER_DEFINED_BOARD_VERSION: SATNOGS_COMMS_VERSION_0_2_1
-- USER_DEFINED_BOARD_VERSION: SATNOGS_COMMS_VERSION_0_2_1
-- Configuring done
-- Generating done
-- Build files have been written to: /home/victoria/zephyr-sdk-0.16.1/zephyrproject/libsatnogs-comms/build

However, after I run make the following is shown:

-- Found Nanopb: /home/victoria/zephyr-sdk-0.16.1/zephyrproject/modules/lib/nanopb  
-- USER_DEFINED_BOARD_VERSION: OFF
CMake Error at /home/victoria/zephyr-sdk-0.16.1/zephyrproject/libsatnogs-comms/src/CMakeLists.txt:31 (message):
  Error: Please provide the board version using
  -DUSER_DEFINED_BOARD_VERSION=<value>


-- Configuring incomplete, errors occurred!

The rest of the code behaves fine if I use "SEND ERROR" as I use compile definitions in my code, but I cannot eliminate the error in the build process(while running make). Any ideas?

In CMakeCache.txt one can find:

//User-defined board version
USER_DEFINED_BOARD_VERSION:STRING=SATNOGS_COMMS_VERSION_0_2_1

And this is the CMakeLists.txt



# CMakeLists.txt

# Define a required option named USER_DEFINED_BOARD_VERSION
option(USER_DEFINED_BOARD_VERSION "User-defined board version" "")
message(STATUS "USER_DEFINED_BOARD_VERSION: ${USER_DEFINED_BOARD_VERSION}")


# Check if the USER_DEFINED_BOARD_VERSION option is provided
if (NOT USER_DEFINED_BOARD_VERSION)
    message(FATAL_ERROR "Error: Please provide the board version using -DUSER_DEFINED_BOARD_VERSION=<value>")
endif()

# Process the provided board version
if (${USER_DEFINED_BOARD_VERSION} STREQUAL "SATNOGS_COMMS_VERSION_0_2_1")
    set(BOARD_VERSION 021)
    message(STATUS "BOARD_VERSION: ${BOARD_VERSION}")
elseif (${USER_DEFINED_BOARD_VERSION} STREQUAL "SATNOGS_COMMS_VERSION_0_3_0")
    set(BOARD_VERSION 030)
    message(STATUS "BOARD_VERSION: ${BOARD_VERSION}")
else()
    message(FATAL_ERROR "Error: Please provide a valid board version. The valid inputs are: \"SATNOGS_COMMS_VERSION_0_2_1\" and \"SATNOGS_COMMS_VERSION_0_3_0\"")
endif()

..

0

There are 0 best solutions below