From 41b11775f109b80fcb8dbbdf48329a31a9d3ab9d Mon Sep 17 00:00:00 2001 From: Ilya Korolev Date: Thu, 11 Dec 2008 12:37:09 +0000 Subject: [PATCH] =?UTF-8?q?=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88?= =?UTF-8?q?=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=20=09-?= =?UTF-8?q?=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B2=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/init.d/CMakeLists.init | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/init.d/CMakeLists.init b/tools/init.d/CMakeLists.init index c3541b9e39c..1428402883b 100644 --- a/tools/init.d/CMakeLists.init +++ b/tools/init.d/CMakeLists.init @@ -5,6 +5,17 @@ # CREATE_INIT_SCRIPT(divider Divider) # Будет создан init.d скрипт с названием divider для демона (бинарника) Divider +# NB Тут _не_ используется add_custom_command. Это делается только потому, что +# если её использовать, то у cmake сносит крышу, и она начинает путать цели и файлы. А +# именно, начинает ругаться, что нет файла divider.cpp и нельзя собрать divider.cpp.o. +# Опытным путём было установлено, что эта ошибка возникает из-за совпадения названия (без учёта расширения) +# 'divider.cpp' и добавляемой custom command 'divider' (тот который init.d скрипт). Было найдено два пути решения: +# - писать add_executable (Divider ${CMAKE_CURRENT_SOURCE_DIR}/divider.cpp ${SRCS}), т.е. явно указать, +# где искать файлы для сборки Divider +# - переименовать init.d-скрипт +# Оба варианта накладывают странные ограничения, поэтому, учитывая, что само создание init.d файла весьма +# недорого, было принято решение не использовать add_custom_command + macro (CREATE_INIT_SCRIPT initname daemonname) add_custom_target(${initname}.target ALL COMMAND sed -e 's,[@]DAEMON[@],${daemonname},g' < ${PROJECT_SOURCE_DIR}/tools/init.d/template > ${CMAKE_CURRENT_BINARY_DIR}/${initname}