Здравствуйте, Pzz, Вы писали:
M>>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?
Pzz>Меняй пути. Иначе задолбаешься.
Логин в систему внезапно выглядит как "ФАМИЛИЯ ИНИЦИАЛЫ", и проекты лежат в домашнем каталоге.
Это просто ваш линупс ещё нигде толком не применяется, а то бы вы говна давно уже поели.
И да, сказать админу всея конторы, что логины надо делать без пробелов можно, но, в общем-то, бесполезно. Да и бухгалтерши и прочий стаф не поймет херни с подчёркиваниями. Программистов, которым нужны пути без пробелов, даже в программистской конторе только малые доли
Здравствуйте, Marty, Вы писали:
M>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?
Здравствуйте, Marty, Вы писали:
Pzz>>Меняй пути. Иначе задолбаешься.
M>Логин в систему внезапно выглядит как "ФАМИЛИЯ ИНИЦИАЛЫ", и проекты лежат в домашнем каталоге.
Ну, придумай что-нибудь. Тыжпрограммист
В конце концов, в венде всегда были junctions, а сейчас вроде и симлинки завезли. Я уверен, что можно что-нибудь изобрести, чтобы при сборке в пути не было директорий с пробелами. Есть, в конце концов, докер. Завсегда можно что-то изобрести, чтобы удобным образом организовать namespace. Тебе даже не обязательно делать это глобально, это требуется только во время сборки.
Ты задолбаешься чинить все эти сборочные скрипты, чтобы они правильно отрабатывали пути с пробелами. Это общаа проблема, что для линуха, что для венды.
M>И да, сказать админу всея конторы, что логины надо делать без пробелов можно, но, в общем-то, бесполезно. Да и бухгалтерши и прочий стаф не поймет херни с подчёркиваниями. Программистов, которым нужны пути без пробелов, даже в программистской конторе только малые доли
Про админа, это проблема понятная.
Что до бухгалтерии и прочиего стафа, они тоже гоняют на своих компьютерах сборочные скрипты?
В принципе, это конечно по инструментам разработки, но Cmake вроде только с плюсами и используется, да и MinGW тоже обычно, так что здесь больше шансов, имхо, найти ответ.
Суть проблемы в следующем. Есть библиотека, которую я подключил как сабмодуль гита и подключаю в CMakeLists.txt через add_subdirectory. Она, в свою очередь, тащит сабмодули своих зависимостей. В одноё из этих сторонних зависимостей генерится conf.h, и в инклюды прописывается путь ${CMAKE_CURRENT_BINARY_DIR}/third_party/bla-bla-lib.
Проблема в том, что у меня путь содержит пробелы. Windres CMake'ом вызывается корректно, все пути обрамлены в кавычки, а вот windres зовёт препроцессор cc1 и забывает закавычить пути инклюдов. Само собой, пути с пробелами бьются на части, такие каталоги не находятся, и сборка ломается.
Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?
Здравствуйте, Marty, Вы писали:
M>Здравствуйте!
M>... M>Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?
По хорошему — делаете патч, отправляете мейнтейнерам сторонних библиотек. Ну и у себя его можно сразу применить не дожидаясь фикса.
Либо как уже выше советовали — subst и вперёд (но там тоже свои нюансы, некоторые экзотические сборки его не понимают).