Hi Zach,

Hmm, couple of notes:

Maybe you could create a target based on the file names. This way you could have as many as you want. Also, maybe you could use set/configure_file combination instead of FILE(append).

Other than that, it looks great.

      Andy

Zachary Pincus wrote:

Andy,

Thanks for the tip on installing things at absolute locations.

Here's a hackish macro to do this, in case anyone needs it. (Note -- macro can only be used once per directory, and only one install path is allowed per use. Modifications are an exercise for the reader.)

Zach

MACRO(INSTALL_AT_ABSOLUTE_PATH PATH)
  # USAGE:
# INSTALL_AT_ABSOLUTE_PATH("/path/to/install" "/path/to/file1" ... "path/to/fileN")
  #
# Only use this macro once per directory -- otherwise the custom installation
  # will get overwritten.

  FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CustomInstall.cmake" "")

  FOREACH(file ${ARGN})
    GET_FILENAME_COMPONENT(filename "${file}" NAME)
    STRING(REGEX REPLACE "/$" "" stripped_path "${PATH}")
    FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/CustomInstall.cmake"
     "MESSAGE(STATUS \"Installing ${stripped_path}/${filename}\")\n")
    FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/CustomInstall.cmake"
"FILE(INSTALL DESTINATION \"${PATH}\" TYPE FILE FILES \"${file} \")\n")
  ENDFOREACH(file)

  ADD_CUSTOM_TARGET("${CMAKE_CURRENT_BINARY_DIR}/CustomInstall" ALL)
SET_TARGET_PROPERTIES("${CMAKE_CURRENT_BINARY_DIR}/CustomInstall" PROPERTIES POST_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/ CustomInstall.cmake")

ENDMACRO(INSTALL_AT_ABSOLUTE_PATH)



On Jan 18, 2006, at 6:40 AM, Andy Cedilnik wrote:

Hi Zach,

There is a way to do installing using custom install script. What you do is to create a cmake script that does whatever you want and then set on some target a pre and/or post install script:

SET_TARGET_PROPERTIES(myLib PROPERTIES PRE_INSTALL_SCRIPT "$ {CMAKE_CURRENT_BINARY_DIR}/some_pre_install.cmake" POST_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/ some_post_install.cmake")


Then you can put in that file:
FILE(INSTALL DESTINATION "/etc" TYPE FILE FILES "/home/andy/ MyProject/myetc.file")

Andy


Zachary Pincus wrote:

Hello again,

I'm wondering if there is any good way to have CMake install a particular file at an absolute position in the filesystem (not prefixed by CMAKE_INSTALL_PREFIX) during 'make install'.

It's clearly possible to send a file to any given location during the configure or build step, but it's more appropriate to do this during install, in my case.

Any thoughts? (and yes, the files do need to be at specific positions; for example in a python site-packages directory).

Thanks,

Zach
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake




--
Andy Cedilnik
Kitware Inc.

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake


_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake



--
Andy Cedilnik
Kitware Inc.

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to