C ++ CMake (добавить не встроенные файлы)

Я использую cmake для настройки своего проекта. Я визуализирую файлы проекта, используя qtcreator, который читает CMakeLists.txt. У меня есть несколько текстовых файлов (не код: файлы конфигурации, журналы, ..), и я хотел бы добавить их в мой проект cmake без (конечно) компиляции / компоновки их. Является ли это возможным ? Основная цель - открыть их автоматически в дереве моего проекта с помощью qtcreator и отредактировать их ... Спасибо за помощь.

Ответы на вопрос(2)

Здравствуйте, я создал такую функцию:

cmake_minimum_required(VERSION 3.5)
# cmake_parse_arguments needs cmake 3.5

##
# This function always adds sources to target, but when "WHEN" condition is not meet
# source is excluded from build process.
# This doesn't break build, but source is always visible for the project, what is 
# very handy when working with muti-platform project with sources needed
# only for specific platform
#
# Usage:
#      target_optional_sources(WHEN <condition> 
#                              TARGET <target>
#                              <INTERFACE|PUBLIC|PRIVATE> [items2...]
#                              [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
##
function(target_optional_sources)
    set(options OPTIONAL "")
    set(oneValueArgs WHEN TARGET)
    set(multiValueArgs PUBLIC PRIVATE INTERFACE)

    cmake_parse_arguments(target_optional_sources 
                          "${options}" "${oneValueArgs}" "${multiValueArgs}"
                          ${ARGN})

    target_sources(${target_optional_sources_TARGET}
                   PUBLIC ${target_optional_sources_PUBLIC}
                   PRIVATE ${target_optional_sources_PRIVATE}
                   INTERFACE ${target_optional_sources_INTERFACE})

    if (NOT ${target_optional_sources_WHEN})

        set_source_files_properties(${target_optional_sources_PUBLIC}
                                    PROPERTIES HEADER_FILE_ONLY TRUE)
        set_source_files_properties(${target_optional_sources_PRIVATE}
                                    PROPERTIES HEADER_FILE_ONLY TRUE)
        set_source_files_properties(${target_optional_sources_INTERFACE}
                                    PROPERTIES HEADER_FILE_ONLY TRUE)

    endif(NOT ${target_optional_sources_WHEN})

endfunction(target_optional_sources)

С одной стороны это работает так, как хотелось бы,on other hand сообщается о какой-то ошибкетак что все еще работаем над этим, Иссу оказалось проблемой, как я использовал функцию не так, как она написана. Теперь это работает отлично.

Решение Вопроса

Вы должны иметь возможность просто добавить их в свой список источников в зависимости от того,add_executable или жеadd_library вызов уместен и они появятся в IDE.

Я считаю, что CMake использует файлы & apos; расширения, чтобы определить, являются ли они фактическими исходными файлами, поэтому если у вас есть расширения, такие как & quot; .txt & quot; или & quot; .log & quot; они не будут скомпилированы.

 04 июл. 2014 г., 10:39
Смотрите такжеpublic.kitware.com/Bug/view.php?id=7835
 Eric11 июн. 2012 г., 10:09
Спасибо. Мне интересно, не добавили ли они что-то вроде add_doc () в версии 2.8?
 11 июн. 2012 г., 11:56
@Eric Не так далеко, как я знаю. Вы можете попробовать спросить в списке рассылки, есть ли планы сделать это.

Ваш ответ на вопрос