On 2014-03-27 13:54, Matthew Woehlke wrote:
I haveĀ¹ a CTest like:
execute_process(...)
set(expected "
...text...
...text...
")
string(REGEX MATCH ${expected} match ${out})
This works great... *IF* the script file has UNIX line endings. I'm
wondering if that is expected? It seems that CTest must be processing
the script in binary mode in order for the string to contain '\r'
characters...
For the record: no. It turns out the line endings is actually a) a red
herring (although the problem was a platform difference in a way), and
b) not actually an issue (on further investigation, both CMake 2.8.x and
3.0 seem to be behaving as expected in this respect).
Can anyone spot the problem above? :-)
It turns out that what is *actually* happening is that this:
string(REGEX MATCH ${expected} match ${out})
...strips any ';'s from ${out}. And incidentally, the work-around I was
using ('string(REPLACE "\r" "" expected ${expected})') does likewise, so
that the combination results in neither string containing ';'s, which
then can match. I was only seeing issues on Windows because the relevant
';'s are path separators, which are of course ':'s on other platforms
and so are not affected.
Quoting the argument to REGEX MATCH is the actual correct fix :-).
--
Matthew
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake