Alan W. Irwin wrote:
install(
CODE "
file(GLOB USER_DOCS ${CMAKE_SOURCE_DIR}/doc/user/html/*) \n
file(INSTALL DESTINATION ${docdir}/html/user/html
TYPE FILE FILES \${USER_DOCS}
)"
)
[snip]
Furthermore, I have no clue why the $ in ${USER_DOCS} has to be escaped,
but
the other "$" within the file commands do not. So all this seems very much
like magic to me in the absence of documentation.
My guess: If the last $ were not escaped, cmake would attempt to expand it to
its value in the CMakeLists.txt script (where it is not defined). I assume that
the INSTALL CODE signature generates a CMake script on the fly which in your
case will be:
file(GLOB USER_DOCS path_to_sources/doc/user/html/*)
file(INSTALL DESTINATION path_to_docdir/html/user/html
TYPE FILE FILES ${USER_DOCS})
where path_to_sources is whatever CMAKE_SOURCE_DIR was in your CMakeLists.txt
(similarly path_to_docdir is whatever ${docdir} was there). Now, if you were to
run this script, USER_DOCS will contain the proper list of files.
Just out of curiosity, is there any reason/advantage to using the above versus
simply having
file(GLOB USER_DOCS ${CMAKE_SOURCE_SIR}/doc/user/html/*)
file(INSTALL DESTINATION ${docdir}/html/user/html
TYPE FILE FILES ${USER_DOCS})
--Radu
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake