Я использую QtCreator для открытия проекта CMake. Некоторые каталоги, кроме CMakeLists.txt, содержат только файлы заголовков * .h, и для этих каталогов QtCreator в дереве проекта отображается только CMakeLists.txt. Как это исправить? Мне нужно увидеть все файлы проекта из QtCreator.Проект QtCreator CMake - как показать все файлы проекта
ответ
Просмотр проекта как файловой системы не является решением, потому что настройки редактора проекта, например, не будут применяться. И я не люблю добавлять заголовки к исполняемой цели, потому что они на самом деле не принадлежат. Вы эффективно калечите файл проекта, чтобы хорошо работать с одной конкретной IDE ... не хорошо. уборщик вариант ИМХО будет:
FILE(GLOB_RECURSE LibFiles "include/*.hpp")
add_custom_target(headers SOURCES ${LibFiles})
В качестве бонуса вы получите свой включает показано в отдельной папке. (заимствовано от https://cmake.org/pipermail/cmake/2012-August/051811.html)
Я предлагаю вам переключить вид вашего проекта на Файловую систему. Это будет отображать представление, где вы можете просмотреть любой файл, который вы хотите:
Вы могли бы хотеть, чтобы разделить представление проекта на два, нажав второй по правой кнопке, если вы все еще желаете режим Projects.
Вы должны добавить файлы заголовков в список ваших исходных файлов: add_executable(${Executable} ${Sources} ${headers})
Вы можете использовать GLOB_RECURSE
, если есть много файлов заголовков:
FILE(GLOB_RECURSE INC_ALL "headers/*.h")
include_directories("headers")
add_executable(main "main.cpp" ${INC_ALL})
Не забудьте снова запустить CMake (Build> Run Cmake).
[CMake официально не рекомендует] (https://cmake.org/cmake/help/latest/command/file.html), подталкивая ваши источники, потому что CMake тогда не сможет обнаружить когда он должен восстанавливаться на основе добавленных, удаленных или переименованных файлов. –
Вы можете попробовать CMakeProjectManager2. Код для отображения всех файлов, уже распространенных в восходящем потоке, в качестве доказательства концепции. Применяемая концепция, но код не может быть применен как-то по некоторым причинам. Таким образом, простая функция ожидания в восходящем потоке.
На основании другой темы, задающей тот же вопрос, я нашел общее решение проблемы, работая для всех IDE (по крайней мере, протестированных с QtCreator и Visual Studio).
можно найти здесь: https://github.com/sauter-hq/cmake-ide-support
# \brief adds for the given target a fake executable targets which allows all
# headers and symbols to be shown in IDEs.
# \param target_name Which target properties should be added to the IDE support target.
function(target_add_ide_support target_name)
if (NOT TARGET ${target_name})
message(FATAL_ERROR "No target defined with name ${target_name}, cannot target_add_ide_support it.")
endif()
set (target_for_ide "${target_name}_ide_support")
if (NOT TARGET ${target_for_ide})
file(GLOB_RECURSE target_for_ide_srcs "*.h" "*.hpp" "*.hxx" "*.c" "*.cpp" "*.cxx")
add_executable(${target_for_ide} ${target_for_ide_srcs})
set_target_properties(${target_for_ide} PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)
endif()
get_target_property(dirs ${target_name} INCLUDE_DIRECTORIES)
target_include_directories(${target_for_ide} PRIVATE ${dirs})
endfunction(target_add_ide_support)
Использование тогда для любых целей в CMakeLists, добавьте следующий вызов (может быть сделано в самой верхней CMakeLists.txt после всех add_subdirectory:
include(add_ide_support.cmake)
target_add_ide_support(some-target)
У меня возникла проблема с принятым решением, которое не могло найти некоторые внешние заголовки (из библиотеки PCL Pointcloud) в файлах заголовков моего собственного проекта. Вместо этого этот подход разрешил проблему. – mikkola
- 1. Как выполнить все задания для проекта cmake с помощью qtcreator?
- 2. выполнить проект cmake в qtcreator как root
- 3. Показать все исходные файлы проекта?
- 4. Проект Cmake с зависимостью от проекта cmake
- 5. QtCreator не распознает cmake
- 6. Параметры QtCreator 4 и CMake
- 7. Как удалить файлы из проекта QtCreator
- 8. QtCreator и «Run CMake»
- 9. Проект CMake внутри проекта qmake
- 10. Как добавить проект в QTCreator
- 11. C++ CMake (добавить неиспользуемые файлы)
- 12. QtCreator автоматически запускает CMake
- 13. Сводные аргументы командной строки Cmake с QtCreator
- 14. qtcreator cmake «Не указан исполняемый файл»
- 15. qtcreator может создавать только не все цели для проектов cmake
- 16. Как очистить файлы проекта, созданные cmake?
- 17. Как использовать существующий проект QMake (файл проекта .pro) как «внешний проект» в CMake?
- 18. Редактор QtCreator не выделяет Qt включает в себя проект CMake
- 19. Eclipse: все файлы проекта опущены
- 20. Построить CMake ребенка проект от CMake родительского проекта
- 21. Как добавить глобальные файлы preinclude в проект QtCreator?
- 22. qtcreator игнорирует варианты cmake при создании с cmake
- 23. Как организовать проект QtCreator с библиотеками
- 24. Неопределенная ссылка при использовании CMake и QtCreator
- 25. CMake: Как повторно использовать объектные файлы для проекта подкаталогов тестов?
- 26. QtCreator: Как скомпилировать внешние исходные файлы
- 27. Как скомпилировать проект, включая все необходимые библиотеки Qt, QtCreator, Linux?
- 28. CMake: Зависимости внешнего проекта
- 29. Как добавить библиотеки dcmtk в проект QTCreator?
- 30. Debian упаковка - CMake проект
Хорошо, но какая инструкция в файлах CMake приводит к тому, что файлы видны в представлении древовидной структуры проекта? – Irbis
Я не уверен, но есть декларации в CMake, указывающие исходный код, вероятно, добавьте ограничение на то, что отображается в дереве проекта. некоторые строения я сомневаюсь в том, что сам QtCreator. –
К сожалению, просмотр файла является плоским и, следовательно, не является достаточной заменой для представления проекта. – Zulan