On 06/21/2010 10:34 PM, Rick Gould wrote:
> I'm looking to install a directory as part of a custom target, but
> exclude all the Subversion .svn directories.
>
> Both of the the following work, but run as part of the "make install"
> target, which I don't want:
>
> install( DIRECTORY ${source_dir}
> DESTINATION ${destination_dir}
> PATTERN .svn EXCLUDE
> )
Maybe, you can use INSTALL()'s COMPONENT feature in junction with a
custom target invoking "cmake_install.cmake" for the installation:
install( DIRECTORY ${source_dir}
DESTINATION ${destination_dir}
COMPONENT myinstall
PATTERN .svn EXCLUDE
)
add_custom_target(myinstall
COMMAND ${CMAKE_COMMAND}
-D COMPONENT=myinstall
-P cmake_install.cmake
)
So, after cmaking, "make myinstall" should do the job, but regrettably,
it's also triggered by "install"; if you don't want that you have to
abandon the general install target as a whole and provide custom
install targets solely.
> file( COPY ${source_dir}
> DESTINATION ${destination_dir}
> PATTERN .svn EXCLUDE
> )
AFAIK, FILE(COPY ...) isn't run at installation time but during
configuration, so you could possibly use it for your purpose:
file(WRITE ${CMAKE_BINARY_DIR}/myinstall.cmake
"file( COPY ${source_dir}
DESTINATION ${destination_dir}
PATTERN .svn EXCLUDE
)")
add_custom_target(myinstall
COMMAND ${CMAKE_COMMAND} -P myinstall.cmake
)
I.e., provide a CMake script with the desired FILE(COPY ...) command or
even generate it at configuration time, and let it be triggered by a
custom target via CMake's "-P" option; this would be my favourite
since it isn't connected to the install target.
'hope that helps.
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