[cmake-developers] CMAKE_ARGC and CMAKE_ARGVx

Nicolas Desprès nicolas.despres at gmail.com
Wed Apr 27 09:11:52 EDT 2011


Hi,

I'm experimenting with the variables available in script mode in the
current master (a3a581f8cd):

CMAKE_SCRIPT_MODE_FILE
CMAKE_ARGC
CMAKE_ARGVx

Apparently they are not available in 2.8.4 yet.

Using this test script:

##################
message("Begin")
message("CMAKE_SCRIPT_MODE_FILE=${CMAKE_SCRIPT_MODE_FILE}")
message("CMAKE_ARGC=${CMAKE_ARGC}")
foreach(i RANGE 0 ${CMAKE_ARGC})
  message("CMAKE_ARGV${i}=${CMAKE_ARGV${i}}")
endforeach(i)
message("CMAKE_ARGV=${CMAKE_ARGV}")
message("CMAKE_ARGN=${CMAKE_ARGN}")
message("End")
#################

I have the following behavior:

$ ~/build/cmake/git/_build/bin/cmake -P /tmp/test.cmake a1 a2
Begin
CMAKE_SCRIPT_MODE_FILE=/tmp/test.cmake
CMAKE_ARGC=5
CMAKE_ARGV0=/home/despre_n/build/cmake/git/_build/bin/cmake
CMAKE_ARGV1=-P
CMAKE_ARGV2=/tmp/test.cmake
CMAKE_ARGV3=a1
CMAKE_ARGV4=a2
CMAKE_ARGV5=
CMAKE_ARGV=
CMAKE_ARGN=
End

I think the user does not care about having CMAKE_ARGV1=-P and
CMAKE_ARGV2=/tmp/test.cmake
I have attached a patch that do this behavior:

$ ~/build/cmake/git/_build/bin/cmake -P /tmp/test.cmake a1 a2
Begin
CMAKE_SCRIPT_MODE_FILE=/tmp/test.cmake
CMAKE_ARGC=2
CMAKE_ARGV0=a1
CMAKE_ARGV1=a2
CMAKE_ARGV2=
CMAKE_ARGV=
CMAKE_ARGN=
End

I think having CMAKE_ARGV would be good too but it is another topic.

Cheers,

-- 
Nicolas Desprès
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-CMAKE_ARGVx-does-not-include-P-pathname.patch
Type: text/x-patch
Size: 1196 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20110427/ac089280/attachment-0002.bin>


More information about the cmake-developers mailing list