LINUX.ORG.RU

[CMake] install из подкаталогов


0

0

Есть проект на CMake.

Внутри два каталога с подпроектами. В корневом CMakeLists.txt на каждый подпроект пишу - add_subdirectory( имя_каталога_с_подпроектом )

В CMakeLists.txt для подпроекта пишу: install(TARGETS проект DESTINATION куда_мне_надо )

В результате все успешно собирается, но при инстале реально инсталятся только те цели, которые соответствуют только одному подпроекту. Это подпроект, который быль последним добавлен в корневой CMakeLists.txt

Хочу, чтобы инсталилось все!

ЧЯДН?

★★★

CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT(name)

include_directories(SYSTEM "./")

set(my_build_dirs dira dirb dirc)
FOREACH (my_dir ${my_build_dirs})
    MESSAGE("Parse subdirectory: ./${my_dir}/src/")
    ADD_SUBDIRECTORY("./${my_dir}/src/")
ENDFOREACH(my_dir)

SET(CMAKE_INSTALL_PREFIX /usr)
SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)

у меня всё работает.

устанавливаются файлы для всех подпроектов.

собираю из отдельной папки

cd ./build
cmake ..
make && make install

Dblmok ()
Ответ на: комментарий от Dblmok

Спасибо,

Но грабли таки имеют место быть)

CMP0013 Duplicate binary directories are not allowed.

CMake 2.6.3 and below silently permitted add_subdirectory() calls to create the same binary directory multiple times. During build system generation files would be written and then overwritten in the build tree and could lead to strange behavior. CMake 2.6.4 and above explicitly detect duplicate binary directories. CMake 2.6.4 always considers this case an error. In CMake 2.8.0 and above this policy determines whether or not the case is an error. The OLD behavior for this policy is to allow duplicate binary directories. The NEW behavior for this policy is to disallow duplicate binary directories with an error.

This policy was introduced in CMake version 2.8.0. CMake version 2.8.0 warns when the policy is not set and uses OLD behavior. Use the cmake_policy command to set it to OLD or NEW explicitly.

Вот на эту херню я и попался, недосмотрел варнинг в выводе.

AF ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.