crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> cmake очистка кэша
DEADHUNT
  опции профиля:
сообщение 15.9.2010, 23:19
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


необходимо собрать N целей, расположение файлов такое:
CMakeLists.txt
subfolder1
    CMakeLists.txt
    ...
subfolder2
    CMakeLists.txt
    ...
...
subfolderN
    CMakeLists.txt
    ...

корневой CMakeLists.txt:
...
add_subdirectory(subfolder1)
add_subdirectory(subfolder2)
...
add_subdirectory(subfolderN)

для пересборки под различные ОС, или для сборки в другой версии(Debug/Release) приходится заходить в каждую папку и удалить кэш файлы cmake, как можно решить данную проблему?

Сообщение отредактировал DEADHUNT - 15.9.2010, 23:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.9.2010, 6:12
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


если дело происходит под виндой, то запросто поможет батник. Запускать процесс и дождаться его окончания - команда start /wait
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 16.9.2010, 7:54
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(DEADHUNT @ 16.9.2010, 0:19) *
для пересборки под различные ОС, или для сборки в другой версии(Debug/Release) приходится заходить в каждую папку и удалить кэш файлы cmake, как можно решить данную проблему?

IMHO, лучше проводить сборку в отдельных папках.

Нужен релиз x86 - создали папку release-x86, зашли в нее, cmake </path/to/CMakeLists.txt>, make
Нужен дебаг x_86_64 - создали папку debug-x86_64, зашли в нее, cmake, make
Нужно что то очистить - убили все файлы в нужной папке или сразу папку.

Сообщение отредактировал BRE - 16.9.2010, 7:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 16.9.2010, 9:43
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Алексей1153 @ 16.9.2010, 7:12) *
если дело происходит под виндой, то запросто поможет батник. Запускать процесс и дождаться его окончания - команда start /wait

в линуксе тоже есть скрипт процессоры.

Цитата(BRE @ 16.9.2010, 8:54) *
IMHO, лучше проводить сборку в отдельных папках.

вот так наверное?
build
    CMakeLists.txt
    win_x86
    win_x86-64

cd build/win_x86
cmake ../CMakeLists.txt
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 16.9.2010, 10:18
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(DEADHUNT @ 16.9.2010, 10:43) *
вот так наверное?

В папке build вообще не нужен CMakeLists.txt, он должен лежать в папке с проектом.
Например:
prj
   src1
      CMakeLists.txt
      ...
   src2
      CMakeLists.txt
      ...
   src3
      CMakeLists.txt
      ...
   CMakeLists.txt
   ...

-------------
создали build с подкаталогами:
prj
   build
      win_x86
      win_x86_64

   src1
      CMakeLists.txt
      ...
   src2
      CMakeLists.txt
      ...
   src3
      CMakeLists.txt
      ...
   CMakeLists.txt
   ...

-------------
Зашли в папку prj/build/win_x86 и запустили cmake для prj/CMakeList.txt:
cmake ../.. или cmake /prj

В папке prj/build/win_x86 получили все для запуска make.

Сообщение отредактировал BRE - 16.9.2010, 10:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.9.2010, 10:38
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


для CMake'а норма - теневая сборка.
Под виндой есть CMake GUI позволяет наглядно всё настроить.
Там создаются два новых каталога - один для сборки (make), а другой для результата сборки (make install)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 16.9.2010, 12:00
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


всё спасибо разобрался.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.12.2024, 6:12