Изменение расширения файла в скрипте jam

Как я могу изменить расширение от входных файлов в Jam-скрипте. На Linux Box у меня есть следующий рабочий код —

for local var in $(objFiles)
{
local objName = [ SHELL "var1=$(var); echo ${var1%.cpp}.obj" ] ;
obj $(objName) : $(var) : $(properties) ;
}

Первая строка цикла for выбирает имя файла cpp и изменяет его расширение с <File>.cpp в <File>.obj, Мне нужно скрыть эти изменения, совместимые с платформой Windows. Я думаю, что какой-то модуль в процессе ускоренной сборки предоставил бы какой-то способ сделать это, но поиск в Google не очень помог.

Какие изменения я должен сделать в приведенном выше коде, чтобы objName будет содержать расширение файла OBJ, и эти изменения остаются совместимыми для всех платформ (особенно Win / Linux)

0

Решение

Я не знаком с Boost.Jam, но подозреваю, что он работает так же, как и в обычном Jam. Есть несколько операторов выбора / замены, которые вы можете применить к переменным. В этом случае вы хотите использовать S= для изменения суффикса имени файла:

local objName = $(var:S=.obj) ;

В обычном джеме есть предопределенная OS-зависимая переменная SUFOBJ который следует использовать вместо жесткого кодирования «.obj». Не уверен, доступен ли он и в Boost.Jam. Если это так, вы можете использовать:

local objName = $(var:S=$(SUFOBJ)) ;
1

Другие решения


По вопросам рекламы [email protected]