-1
set(STATE STUBS_OFF)
Set(SWC_Original_path
    datax/xx/yy/zz/datafile.c
    datax/xx/yy/zz/datafile1.c
   )
set(SWC_Stubs_path
    stubs/xx/yy/cc/stubsfile.c
   )

#Generic Function to Update the SWC PATH and Stubs state
function(SWC_PATH_STUBS_STATE SWC_STUBS_STATE SWC_STUBS_PATH SWC_SRC_PATH)
    if(NOT ${SWC_STUBS_STATE} MATCHES "STUBS_ON")
        set(SWC_PATH ${SWC_SRC_PATH} PARENT_SCOPE)
        return()
    else()
        set(SWC_PATH ${SWC_STUBS_PATH} PARENT_SCOPE)
        return()
    endif()
endfunction()

#function call()
SWC_PATH_STUBS_STATE(${STATE} ${SWC_Stubs_path} ${SWC_Original_path})
set(xx_path ${SWC_PATH})

Here in the variable(xx_path) I'm expecting the paths for two files, but I'm getting the variable updated only for the first file, whereas the second line is not updating.

If I tried printing the variable (xx_path) it only gives the first file path, second filepath is not updating xx_path = datax/xx/yy/zz/datafile.c (this is the output for the variable xx_path)

Could someone help me how to the variable updated with all the filepaths assigned to it.

starball
  • 20,030
  • 7
  • 43
  • 238

1 Answers1

0
SWC_PATH_STUBS_STATE(${STATE} ${SWC_Stubs_path} ${SWC_Original_path})

expands to

SWC_PATH_STUBS_STATE(${STATE} datax/xx/yy/zz/datafile.c datax/xx/yy/zz/datafile1.c stubs/xx/yy/cc/stubsfile.c)

Quote lists to pass ; literally:

SWC_PATH_STUBS_STATE(${STATE} "${SWC_Stubs_path}" "${SWC_Original_path}")
KamilCuk
  • 120,984
  • 8
  • 59
  • 111