Robotics StackExchange | Archived questions

Package that contains packageConfig.cmake only

We have a whole bunch of packages with CMakeLists.txt that share code like

set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(project_cxx_flags -Wall)
set(project_cuda_flags -gencode arch=compute_61,code=compute61 -gencode ..62 -gencode ..52)

Along with other code for doing stuff on either x64 or arm64 (we also should only build CUDA 6.2 on ARM, 5.2 on x64, etc) that really should be made common.

Reading the documentation for find_package() it seems it should be possible to create a new package inside our main project and then use:

find_package(common_stuff)

To load up common_stuffConfig.cmake.

NOTE: I know I could use CMAKE_MODULE_PATH but I would have to reconfigure a good number of machines, so I want a solution that uses the existing code tree.

My current directory structure looks like

catkin_root\src
+--foo
    +--various files...
+--bar
    +--various files...
+--common_stuff
    +--CmakeLists.txt (empty file)
    +--Findcommon_stuff.cmake
    +--package.xml
    +--common_stuffConfig.cmake

So, currently I do this:

find_package(common_stuff REQUIRED MODULE)
# or
find_package(common_stuff REQUIRED)

This fails with the error:

No "Findcommon_stuff_build.cmake" found in CMAKE_MODULE_PATH.

Asked by KenYN on 2018-11-01 21:47:12 UTC

Comments

Answers