[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