function (wcl _fileName _varName)
set(out 0)
file(READ "${_fileName}" fileData)
if(fileData)
string(REGEX MATCHALL "\n" lines "${fileData}")
list(LENGTH lines out)
endif()
set(${+varName} ${out} PARENT_SCOPE)
endfunction()
Key parts you missed: "lines" (now _varName) contains a variable name
when you enter the function, so to set the value of that variable, you
need to set the value of ${lines}; must set with PARENT_SCOPE since a
function opens a new scope; don't re-use variables if you want to be
able to read your code in the future; it's a nice habit to put a _ in
front of incoming variable names, for readability.
Hope this helps!
Ryan
On 7/8/10 3:35 AM, Johny wrote:
I am trying to write a cmake function which imitates the functionality
of wc -l for unix. However i can't seem to be able to figure out how
to store the result into the variable which is passed to the function.
function (wcl fileName lines)
file(READ ${fileName} fileData)
if(fileData)
string(REGEX MATCHALL "\n" lines ${fileData})
list(LENGTH lines lines)
endif(fileData)
endfunction()
i call the function as
wcl (${fileName} fileLen)
and printing it gives no output
message("${fileLen}")
What am i doing wrong ?
Regards
Johny
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
--
Ryan Pavlik
Human-Computer Interaction Graduate Student
Virtual Reality Applications Center
Iowa State University
rpav...@iastate.edu
http://academic.cleardefinition.com/
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake