That tip worked fine!
I ended up doing
STRING(REPLACE "\n" "\\n\\\n" svn_lastlog_with_slashes
${rr_LAST_CHANGED_LOG})
So when reading the char constant newlines are embedded.
tk
On 6/28/2012 11:08 PM, m.hergarden wrote:
Will a string replace combo help in your case? We use it to replace line
endings with ; to make a cmake list variable from a filelist:
STRING(REPLACE "\n" "\\" svn_lastlog_with_slashes ${svn_lastlog})
regards,
Micha
On 06/29/2012 01:56 AM, Totte Karlsson wrote:
Hi,
I'm trying to get some svn information into a build of a C library.
The cmake currently looks like this (gathered from various posts)
INCLUDE(FindSubversion)
IF(SUBVERSION_FOUND)
Subversion_WC_INFO(${PROJECT_SOURCE_DIR} rr)
Subversion_WC_LOG(${PROJECT_SOURCE_DIR} rr)
SET(infoFile rr_svn_info)
FILE(WRITE ${infoFile}.txt
"#ifndef ${infoFile}H
#define ${infoFile}H
const int SVN_VERSION = ${rr_WC_REVISION};\n
const char* SVN_LAST_COMMIT_AUTHOR =\"${rr_WC_LAST_CHANGED_AUTHOR}\";\n
const char* SVN_LASTLOG =\" ${rr_LAST_CHANGED_LOG}\";\n
#endif"
)
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${infoFile}.txt ${infoFile}.h)
ENDIF(SUBVERSION_FOUND)
Currently I have two problems:
When generating the header, the svn_lastlog expands to something like
const char* SVN_LASTLOG ="
------------------------------------------------------------------------
r505 | tottek | 2012-06-28 14:11:49 -0700 (Thu, 28 Jun 2012) | 20 lines
New release
..... etc..
The above will not compile, because a string spanning multiple lines
in C must have a continuation character at the end of each line, e.g.
const char* SVN_LASTLOG ="\
------------------------------------------------------------------------\
r505 | tottek | 2012-06-28 14:11:49 -0700 (Thu, 28 Jun 2012) | 20 lines\
.... etc...
How would one solve that in CMake?
The second problem is the execute process command
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${infoFile}.txt ${infoFile}.h)
which do create the txt file, but fails to copy it to the .h file.
Just getting an error saying
Error copying file (if different) from "the txt file" to "the h file"
Any tips?
-totte
--
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