I've written a custom CMake module (MyModule.cmake) and would like to install it in a sensible location on my system so my other CMake projects can find it easily.
First of all, is there an accepted standard way of doing this? If not, is my approach below acceptable and considered good practice? I have taken the following approach: *Project structure:* MyModule |---CMakeLists.txt |---MyModule.cmake |---MyModuleConfig.cmake *Contents of CMakeLists.txt:* cmake_minimum_required(VERSION 3.13.0) project(MyModule) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/MyModuleConfig.cmake ${CMAKE_CURRENT_SOURCE_DIR}/MyModule.cmake DESTINATION share/cmake/${PROJECT_NAME} ) *Contents of MyModule.cmake:* message(STATUS "included: my-module.cmake") *Contents of MyModuleConfig.cmake* # Add this module's directory to the "CMAKE_MODULE_PATH" so it is visible after calling "find_package()" list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) -------------------------------- The module can easily be built and installed with the following commands: cmake -S . -B build cmake --build build --target install -------------------------------- Once installed, the module can be used in any future CMake project as follows: find_package(MyModule) include(MyModule) This approach seems to work quite well and is very easy to use, but I feel like modifying "CMAKE_MODULE_PATH" from "MyModuleConfig.cmake" is not really a standard way of doing things because I've never seen it done before. Is this approach considered okay? Or is there a better more accepted way to easily make your own CMake modules visible from other projects?
-- 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