Working directory for install-time CMake scripts?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Working directory for install-time CMake scripts?

Kevin Ushey
Hi,

It's possible to request a CMake script to be run at installation time, with e.g.

    install(SCRIPT <script>.cmake)

I think this is most commonly used for fixing up bundles generating during install time (e.g. rpath munging or other muckery). Within such a script, I'd like to execute a shell script that does the heavy lifting, e.g. within the above script I might have:

    execute_process(COMMAND sh <script>.sh)

I'd like to have this bash script run within the install directory. It seems like one can get this directory with e.g.

    $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}

but this sort of usage seems somewhat thinly documented. https://cmake.org/cmake/help/v3.10/variable/CMAKE_INSTALL_PREFIX.html suggests DESTDIR can be used when one is using 'make' to build the project, but I'm guessing this may not be portable to other generators. For example, NSIS suggests that the following build directory is used (https://cmake.org/Wiki/CMake:CPackNSISAdvancedTips):

    ${CMAKE_BINARY_DIR}\_CPack_Packages\${CPACK_TOPLEVEL_TAG}\${CPACK_GENERATOR}\

For what it's worth, I'm trying this out on Linux when using CPack to generate DEB/RPM packages, and all seems well so far, but I suspect there may be a simpler, or more idiomatic, way to accomplish what I'm trying to do.

tl;dr: Is there a portable way to get the path to the directory being used during the install phase? Or do I need to rethink the way I'm approaching this?

Thanks,
Kevin

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake