Я пытаюсь настроить проект C++ с помощью cmake. Я хочу иметь возможность скомпилировать свой проект как в режиме выпуска, так и в режиме отладки, поэтому мне нужны разные папки для моих исполняемых файлов. Поскольку между этими двумя сборками есть лишь несколько различий, например, флаги компилятора, я бы хотел, чтобы у них было как можно больше общих конфигураций. В идеале моя структура папок должна выглядеть так:
Код: Выделить всё
root/
│
├── src/
│
├── CMakeLists
│
└── build/
└── bin/
│ ├── Debug/
│ └── Release/
└──Makefile
В этом случае обе папки используют общие файлы конфигурации makefile и cmake. Я заметил, что визуальная студия делает это примерно так. Однако cmake, похоже, заставляет меня выбирать между режимом отладки и выпуска уже при запуске cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release. Кажется, я не влияю на какой-либо cmake --build build --config Release, например, при настройке каталога двоичного вывода.
В этом сообщении о переполнении стека предлагается выполнить отладку и выпуск непосредственно при сборке и с двумя совершенно отдельными файлами makefile и конфигурациями cmake для двух режимов. Это усложнило бы и сделало бы остальную часть настройки моей среды довольно беспорядочной.
Например, подобные действия всегда будут иметь значение false, даже с помощью --config Release:
Код: Выделить всё
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/$)
Есть какие-нибудь указания о том, как добиться такой структуры папок и правильно реализовать режимы сборки для C++ с помощью cmake?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... with-cmake