[Cmake] INSTALL_FILES

Nils H. Busch nilsb at cns.mpg.de
Mon Apr 7 10:31:13 EDT 2003


Hi,

I am trying to build install targets for files scattered in many
subdirs.
I found something like:

FOREACH(dir ${DIRS})
  #INCLUDE_DIRECTORIES(${FOO_SOURCE_DIR}/${dir}) # for build version ?
  INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt)
  FOREACH(src ${CURRENT_SRCS})
    SET(SRCS ${SRCS} "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}")
    IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.h")
      INSTALL_FILES(/include/Foo/${THIS_DIR}/${dir} .h
                    ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src})
    ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.h")
  ENDFOREACH(src)

ENDFOREACH(dir)

where CURRENT_SRCS is a list of files set in respective subdir
CMakeLists.txt files,
to work, whereas

FOREACH(dir ${DIRS})
  INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt)
  FOREACH(src ${CURRENT_SRCS})
    SET(SRCS ${SRCS} "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}")
    #IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.h")
    #  INSTALL_FILES(/include/Foo/${THIS_DIR}/${dir} .h
    #                ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src})
    #ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.h")
    #IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.URM.h")
    #  INSTALL_FILES(/include/Foo/${THIS_DIR}/${dir} .URM.h
    #                ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src})
    #ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${src}.URM.h")

  ENDFOREACH(src)
  INSTALL_FILES(/include/Foo${THIS_DIR}/${dir} FILES
${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${CURRENT_SRCS})
ENDFOREACH(dir)

not to work. In the latter case, only the first file in each subdir list
is installed correctly. For the others, the directory ${dir} is dropped
in the INSTALL_FILES file list, hence it complains about files not
found.
This is the case for every syntax of INSTALL_FILES.

What am I missing here or is this a "bug" in cmake.
I am using cmake 1.6.5.

--
    Nils H. Busch
    Max-Planck-Institute of Cognitive Neuroscience
    phone:  ++49 (341) 9940-035 fax:  ++49 (341) 9940-204
    e-mail: nilsb at cns.mpg.de






More information about the CMake mailing list