Russian Qt Forum
Ноябрь 22, 2024, 08:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: CMake + путь с пробелами  (Прочитано 5010 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Февраль 18, 2021, 13:36 »

Добрый день

При попытке воспользоваться CMake из командной строки затыкается на пути с пробелами.  Тот же рез-т при вызове CMake из IDE если генератор = Unix Makefiles. Убедился что это не связано ни с какой конкретной сборкой. Если создавать Xcode проект - то работает (конечно если нет др ошибок). Это неудобно, проект нужен далеко не всегда.

Цитировать
Сheck for working CXX compiler: /usr/bin/clang - broken
CMake Error at /Applications/CMake.app/Contents/share/cmake-3.19/Modules/CMakeTestCXXCompiler.cmake:59 (message):
  The C++ compiler

    "/usr/bin/clang"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/igor/Desktop/Tiny-Shading-Language-master/build/CMakeFiles/CMakeTmp
   
    Run Build Command(s):/usr/bin/make cmTC_90f10/fast && /Volumes/Data HD/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_90f10.dir/build.make CMakeFiles/cmTC_90f10.dir/build
    make: /Volumes/Data: No such file or directory
    make: *** [cmTC_90f10/fast] Error 1

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:61 (project)


Configuring incomplete, errors occurred!

Решение
Цитировать
А ты не используй путь с пробелами!
не устраивает, т.к. тонны софта уже привязаны у имени тома. Да и вообще "малодушно"

Наверно (ну это я так думаю) нужно задать какую-то переменную в environment чтобы взять калечный путь в кавычки
Цитировать
Volumes/Data HD/Xcode.app/Contents/Developer/usr/bin/make
Но где (или как) "выпасти" имя что задавать? Или я вообще неправильно понимаю?

Спасибо

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Февраль 18, 2021, 13:44 »

в качестве быстрого хака можно попробовать так:
Код
Bash
ln -s '/Volumes/Data HD/Xcode.app/Contents/Developer' /some/path/to/symlink
DEVELOPER_DIR=/some/path/to/symlink cmake ...
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Февраль 18, 2021, 14:44 »

в качестве быстрого хака можно попробовать так:
Код
Bash
ln -s '/Volumes/Data HD/Xcode.app/Contents/Developer' /some/path/to/symlink
DEVELOPER_DIR=/some/path/to/symlink cmake ...
То же самое, юзает старый (полный) путь. Причем DEVELOPER_DIR понимает, если ввожу неверно - ругается. Кстати откуда (или из каких соображений) Вы его взяли?  Спасибо
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Февраль 18, 2021, 15:21 »

это вполне себе документированный функционал Xcode для указания пути к нужному тулчейну, см. например man xcode-select.

судя по тому, что путь к make используется не обычный /usr/bin/make, а из тулчейна, это значит, что скорее всего он выдается из
Код
Bash
xcrun -f make
а xcrun также пользуется DEVELOPER_DIR.

как побороть сам cmake — это надо читать его доки, какие переменные среды он поддерживает.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Февраль 20, 2021, 09:22 »

Нашел опцию CMAKE_C_COMPILER_FORCE = true (аналогично CXX) - ну да, это место удается заткнуть, проходит дальше. Но потом он все равно что-то компилит, возникает та же ошибка, теперь уже говорит, мол, "нет такого" (напр нет pthread), в общем толку с того force нет.

как побороть сам cmake — это надо читать его доки, какие переменные среды он поддерживает.
Хмм... ну надо - так надо. Но каким образом? Подряд всю доку CMake? Ну это вряд ли. Др словами за что зацепиться ?

Попробовал переименовать make в недрах Xcode, сказал что не нашел тулза, но никаких переменных не показал (падло). A "xcrun make", как я понял, просто удобный вызов из потрохов Xcode

Мда..
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Февраль 20, 2021, 11:07 »

Скопировал make из Xcode в usr/local/bin
И... почухал !!! Улыбающийся

Вот уж не знаю насколько грамотны мои действия, ничего не понимаю в колбасных обрезках  Улыбающийся

Edit: правда работает только из командной строки (из CMake UI та же песня)
« Последнее редактирование: Февраль 20, 2021, 13:11 от Igors » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 23.