@Bodden

Как в Cmake папку с срр добавить целиком?

Здравствуйте друзья.
Есть такая Структура проекта
64e8ae34c0475881895483.png

В смаке все файлы срр приходиться перечислять.
add_executable(bulk src/main.cpp
src/controlsData.cpp
src/models/dataTime.cpp
src/models/procesData.cpp
src/models/writeFile.cpp
src/models/outConsole.cpp
)

target_include_directories(bulk
    PRIVATE
    includes/
)


Можно ли как нибудь организовать подключения папки models целиком, что бы не перечислять каждый файл срр?
Я только учусь, не судите строго за вопрос.

Спасибо.
  • Вопрос задан
  • 497 просмотров
Решения вопроса 2
xzripper
@xzripper
0xC0000005
Используйте перебор файлов. IE:
file(GLOB ModelsCPPS "models/*.hpp")
Ответ написан
@dima20155
you don't choose c++. It chooses you
Насколько знаю, добавляют cpp руками.
Вот пример (почти три сотни исходников) https://github.com/oatpp/oatpp/blob/master/src/CMa...
При правильном подходе вы делаете это лишь 1 раз, так что никакой проблемы это представлять не должно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DSRussell
Программист
Спросил у бота chat gpt:

Для добавления всех файлов из определенной папки в переменную FILES с использованием CMake, вы можете воспользоваться командой `file(GLOB ...)` для поиска файлов в этой папке и затем добавить результат в вашу переменную. Вот как это можно сделать:

CMakeLists.txt.
# Создайте пустую переменную FILES
set(FILES )


# Используйте file(GLOB ...) для поиска файлов в папке
file(GLOB FILES "путь/к/папке/*.расширение")


# Теперь переменная FILES содержит список всех найденных файлов


В этом коде:

- Сначала мы создаем пустую переменную FILES с помощью команды `set(FILES )`.

- Затем мы используем команду `file(GLOB ...)` для поиска файлов в указанной папке. Замените `"путь/к/папке/*.расширение"` на фактический путь к вашей папке и маску для файлов, которые вы хотите включить в переменную FILES. Например, `"путь/к/папке/*.cpp"` будет искать все файлы с расширением `.cpp`.

- После выполнения команды `file(GLOB ...)`, переменная FILES будет содержать список всех найденных файлов.

Теперь вы можете использовать переменную FILES в своих целях или задачах CMake. Например, вы можете передать ее в цель `add_executable` или `add_library` для сборки проекта:

add_executable(MyApp ${FILES})

Обратите внимание, что использование `file(GLOB ...)` может быть удобным для небольших проектов, но для больших проектов с большим количеством файлов или для того, чтобы правильно обрабатывать изменения файлов в процессе разработки, более предпочтительным может быть явное перечисление файлов в вашем файле
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы