| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программное обеспечение под *NIX системы > cmake |
| Автор: GrayCardinal 21.5.2008, 15:55 | ||
| Перешёл на смаке.Душа ликует. Полностью отказался от AAP и Scons. Однако возникла трабла. Имею :
Так вот. Каким макаром можно собрать означенную лайбу с отключенной оптимизацией (непонятно какой) и включенной отладкой ? (-g3) |
| Автор: nickless 22.5.2008, 17:00 | ||||||||
Дебаг/релиз переключается обычно переменной CMAKE_BUILD_TYPE, типа
Флаги находятся в CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG, еще можно добавлять их как дефайны в add_definitions()
Еще есть set_target_properties()
Обычные переменные окружения вроде CXXFLAGS LDFLAGS он сам использует где положено. Сделай где-нибудь
будет виднее, что там задефайнено... |
| Автор: GrayCardinal 22.5.2008, 18:27 |
| nickless, Блакогадрю, очень помог |
| Автор: En_t_end 23.6.2008, 20:14 |
| Кто генерит make'и данной тулзой расскажите о минусах. |
| Автор: nickless 24.6.2008, 19:42 |
Мне пока не приходилось сталкиватся с большими минусами, cmake умеет достаточно для моих целей (в scons например пришлось немного дописывать и допиливать). Из минусов, на вскидку 1. синтаксис их языка простой, но об него ИМХО можно сломать пальцы 2. сложно/не удобно сделать что-либо не связаное с компилированием, линковкой, установкой итд. В принципе это правильно, но иногда хочется добавить вывод какой-нибудь интересной статистики итд. |
| Автор: En_t_end 25.6.2008, 18:14 |
| А существует ли толковая документация по сабжу ? man и doc'и от создателей читал. |
| Автор: nickless 28.6.2008, 21:32 |
| Есть еще книга, но чем она лучше всей остальной документации не знаю, документации, вики и примеры билд-скриптов из http://www.cmake.org/Wiki/CMake_Projects мне вполне хватает. |
| Автор: En_t_end 29.6.2008, 16:22 |
| nickless, tnx |
| Автор: Lych 24.7.2008, 11:14 | ||
| Привет всем! Столкнулся с такой проблемой: Нужно чтобы CMake добавлял разные пути результата сборки проекта для Debug и Release. Нашел только как задать этот параметр для всех целей:
При этом он сам добавляет в конец .../_Win32_Debug /Debug/...., .../_Win32_Debug /Release/.... и т. д. Как сделать так, чтобы он сам не дописывал путь, а в Debug и Release были разные пути, те которые нужны мне? |
| Автор: bilbobagginz 24.7.2008, 11:42 |
| я так понимаю что вы работаете с Windows. проблема, с которой вы пытаетесь бороться - зависит от ОС, и среды. вы ошиблись разделом. |
| Автор: Lych 24.7.2008, 11:54 |
| to bilbobagginz тема то CMake? я использую CMake как раз для того чтобы не зависеть от среды и оси не только Windows...проект кросплатформенный... в часности для Linuх пути должны быть: .../_Linux32_Debug / .../_Linux32_Release/ |
| Автор: bilbobagginz 24.7.2008, 18:23 | ||
вопрос: а почему вам не подходит так:
? |
| Автор: Lych 25.7.2008, 08:30 |
| Из-за особенностей проекта. Дебажные и релизные модули после компиляции должны находится в строго определенных различных местах, а данный способ задает этот путь сразу для всех...(в MSVC еще и приписывая окончания которые непонятно как убрать) |
| Автор: bilbobagginz 25.7.2008, 13:42 |
| я не работаю с cmake, но я понимаю что там идут разные переменные. LIBRARY_OUTPUT_PATH - это видимо переменная, на основе которой создаются др. каталоги. возможно эти каталоги создаются после создания дополнительных переменных, напр. set (LIBRARY_OUTPUT_PATH_$(ARCH_OPSYS_DEBUG), $(LIBRARY_OUTPUT_PATH)/Debug) set (LIBRARY_OUTPUT_PATH_$(ARCH_OPSYS_RELEASE), $(LIBRARY_OUTPUT_PATH)/Release) т.е. может быть создали 2 переменных LIBRARY_OUTPUT_PATH_INTEL_LINUX_DEBUG LIBRARY_OUTPUT_PATH_INTEL_LINUX_RELEASE Думаю тебе надо немного поковыряться в этом направлении. |
| Автор: kamre 18.8.2008, 23:28 | ||||
Для генерации makefile нет поддержки одновременно и Release, и Debug. Поэтому просто делаются сборки в разных местах. Типа такого:
А вот при генерации MSVC проектов все кофигурации впихиваются уже в один файл проекта, и раскладываются по соответсвующим директориям типа release/debug. Как их поменять я пока не разбирался. |