Cmake и MinGW windres
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 22.12.25 18:36
Оценка:
Здравствуйте!

В принципе, это конечно по инструментам разработки, но Cmake вроде только с плюсами и используется, да и MinGW тоже обычно, так что здесь больше шансов, имхо, найти ответ.

Суть проблемы в следующем. Есть библиотека, которую я подключил как сабмодуль гита и подключаю в CMakeLists.txt через add_subdirectory. Она, в свою очередь, тащит сабмодули своих зависимостей. В одноё из этих сторонних зависимостей генерится conf.h, и в инклюды прописывается путь ${CMAKE_CURRENT_BINARY_DIR}/third_party/bla-bla-lib.

Проблема в том, что у меня путь содержит пробелы. Windres CMake'ом вызывается корректно, все пути обрамлены в кавычки, а вот windres зовёт препроцессор cc1 и забывает закавычить пути инклюдов. Само собой, пути с пробелами бьются на части, такие каталоги не находятся, и сборка ломается.

Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?
Маньяк Робокряк колесит по городу
Re: Cmake и MinGW windres
От: Doom100500 Израиль  
Дата: 23.12.25 06:44
Оценка: :)
Здравствуйте, Marty, Вы писали:

M>Проблема в том, что у меня путь содержит пробелы.

M>Вопрос: как решить эту проблему?

Покупаю попкорн
Спасибо за внимание
Re: Cmake и MinGW windres
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 11:08
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?


Меняй пути. Иначе задолбаешься.
Re[2]: Cmake и MinGW windres
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 23.12.25 21:53
Оценка: -2
Здравствуйте, Pzz, Вы писали:

M>>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?


Pzz>Меняй пути. Иначе задолбаешься.


Логин в систему внезапно выглядит как "ФАМИЛИЯ ИНИЦИАЛЫ", и проекты лежат в домашнем каталоге.

Это просто ваш линупс ещё нигде толком не применяется, а то бы вы говна давно уже поели.

И да, сказать админу всея конторы, что логины надо делать без пробелов можно, но, в общем-то, бесполезно. Да и бухгалтерши и прочий стаф не поймет херни с подчёркиваниями. Программистов, которым нужны пути без пробелов, даже в программистской конторе только малые доли
Маньяк Робокряк колесит по городу
Re[3]: Cmake и MinGW windres
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.12.25 06:20
Оценка: +1
Здравствуйте, Marty, Вы писали:

Pzz>>Меняй пути. Иначе задолбаешься.


M>Логин в систему внезапно выглядит как "ФАМИЛИЯ ИНИЦИАЛЫ", и проекты лежат в домашнем каталоге.


Ну, придумай что-нибудь. Тыжпрограммист

В конце концов, в венде всегда были junctions, а сейчас вроде и симлинки завезли. Я уверен, что можно что-нибудь изобрести, чтобы при сборке в пути не было директорий с пробелами. Есть, в конце концов, докер. Завсегда можно что-то изобрести, чтобы удобным образом организовать namespace. Тебе даже не обязательно делать это глобально, это требуется только во время сборки.

Ты задолбаешься чинить все эти сборочные скрипты, чтобы они правильно отрабатывали пути с пробелами. Это общаа проблема, что для линуха, что для венды.

M>И да, сказать админу всея конторы, что логины надо делать без пробелов можно, но, в общем-то, бесполезно. Да и бухгалтерши и прочий стаф не поймет херни с подчёркиваниями. Программистов, которым нужны пути без пробелов, даже в программистской конторе только малые доли


Про админа, это проблема понятная.

Что до бухгалтерии и прочиего стафа, они тоже гоняют на своих компьютерах сборочные скрипты?
Re: Cmake и MinGW windres
От: SaZ  
Дата: 24.12.25 15:18
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>...

M>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?

По хорошему — делаете патч, отправляете мейнтейнерам сторонних библиотек. Ну и у себя его можно сразу применить не дожидаясь фикса.
Либо как уже выше советовали — subst и вперёд (но там тоже свои нюансы, некоторые экзотические сборки его не понимают).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.