On 11/13/2010 08:06 PM, luxInteg wrote: > Greetings, > > I am learning cmake > > > --I want to know how to set the installation directory tree. Is this done > in the CMakeList.txt in the base directory; if not where and how?
IIRC, the INSTALL() command with the FILES, PROGRAMS and DIRECTORY signature may appear in any CMakeLists.txt, but with the TARGETS signature, it must be placed in the same CMakeLists.txt as the targets it refers to. Anyway, IMO, it's a good style to have the INSTALL() commands near their subjects, generally. > --I want to install man pages, TEX files etc, I checked this > http://www.cmake.org/Wiki/CMake:Install_Commands but did not see any > references to files of the latter types -So how are these installed from a > ~/doc directory in the build tree? E.g., in the source directory's ~/doc/CMakeLists.txt, say INSTALL(FILES ${MANPAGES} DESTINATION man) with the variable MANPAGES containing the to-be-installed man pages with their absolute paths within the build directory, or preferably INSTALL(DIRECTORY ${CMAKE_BINARY_DIR}/doc/man/ DESTINATION man) to install the contents of ${CMAKE_BINARY_DIR}/doc/man to the ${CMAKE_INSTALL_PREFIX}/man directory; note the trailing slash. BTW, don't use the old INSTALL_{FILES,PROGRAMS,TARGETS}() commands; use the new comprehensive INSTALL() command with its signatures exclusively. > --If say one has a directory named INCLUDE in the build tree and one sets > the > files therein as ${headers} does one do > INSTALL_FILES(/include ${headers}) to install into ${Install_prefix}/include If the headers variable contains absolute paths, you might say INCLUDE(FILES ${headers} DESTINATION include) anywhere the headers variable is defined to install to the ${CMAKE_INSTALL_PREFIX}/include directory. Otherwise, you should say INCLUDE(DIRECTORY <absolute/path/ to/INCLUDE>/ DESTINATION include) to install the contents of the whole INCLUDE directory to ${CMAKE_INSTALL_PREFIX}/include - preferable again. > and is it done from a CMakeLists.txt within ~/INCLUDE to > effect installation OR do you do otherwise and if so how so? You said the INCLUDE directory is in the build tree, and the build tree has no CMakeLists.txt unless you're doing a discouraged in-source build: <http://www.cmake.org/Wiki/CMake_FAQ#Out-of-source_build_trees> Regards, Michael _______________________________________________ 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
