Используйте source_group из подкаталога в cmake - PullRequest
0 голосов
/ 02 марта 2019

В cmake вы можете группировать исходные файлы в вашей IDE с помощью команды source_group (в моем случае это создает фильтры в проекте Visual Studio).

У меня есть структура каталогов, подобная этой

Main (dir)
  +-- CMakeLists.txt
  +-- main.cpp
  +-- shaders(dir)
        +-- CMakeLists.txt
        +-- shader1.glsl
        +-- shader2.glsl

Main / CMakeLists.txt:

cmake_minimum_required (VERSION 3.13)
add_executable(myExec main.cpp)
add_subdirectory(shaders)

shaders / CMakeLists.txt:

target_sources(myExec PRIVATE shader1.glsl shader2.glsl)

Если я добавлю source_group("Config Files" REGULAR_EXPRESSION ".*\.glsl") в Main / CMakeLists.txt, он создастфильтр, который содержит shader1.glsl и shader2.glsl, как и ожидалось.Однако, если я использую его в shaders / CMakeList.txt, он не добавляет фильтр, а shader1.glsl и shader2.glsl появляются непосредственно в проекте myExec.

Мне кажется, что source_group относится толькок целям, которые созданы в том же файле CMakeList.txt.Это поведение не очевидно для меня из его документации .

Это где-нибудь задокументировано?И есть ли способ использовать source_group из подкаталога (для меня было бы наиболее логичным сохранить все шейдеры в shaders / CMakeLists.txt)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...