Использование premake с несколькими локализациями

Я работаю с premake 5 уже несколько дней. В настоящее время я пытаюсь перенести наше решение VS2015 (в основном C++ native и CLI) на решение premake 5. До сих пор у меня не было проблем, но сейчас я не могу создавать библиотеки ресурсов для всех языков, на которые мы локализуем наши сборки. Например, если у нас есть fr и es (для французского и испанского), у нас должно быть разделение сборки следующим образом:

  • foo.dll (по умолчанию английский),
  • спутники foo.resources.dll друг для друга языки (разнесенные в разные папки конечно).

Но я не могу (читай: я не знаю как) правильно написать скрипт lua.

Кто-нибудь знает, как генерировать локализованные (сателлитные) сборки с premake5?

Спасибо за вашу помощь!


РЕДАКТИРОВАТЬ 1

Я добавил это к моему сценарию lua:

files({"/**.resx"})

Добавил .resx файлы в .vcxproj файл, но не включается так:

<EmbeddedResource Include="bar.resx"/>

они включены как это:

<None Include="bar.resx"/>

В чем дело?


РЕДАКТИРОВАТЬ 2

Затем я добавил:

filter "files:**.resx"
    buildaction "Embed"

Но это остается прежним. В premake 5 doc я обнаружил, что buildaction был поддержан только в C# (мой код на C++/CLI). Если это правда (кажется, что есть), есть ли способ углубиться в мой сценарий, чтобы добавить, скажем, записи XML непосредственно в .vcxproj?

1 ответ

Решение

Ну... после многих попыток я нашел способ. Я только что добавил новую (файловую) категорию для EmbeddedResource, например:

premake.vstudio.vc2010.categories.EmbeddedResource = {
    name = "EmbeddedResource",
    extensions = {".resx"},
    priority = 50, -- arbitrary number, I saw priorities are 0, 1, 2...

    emitFiles = function(prj, group)
        premake.vstudio.vc2010.emitFiles(
            prj,
            group,
            "EmbeddedResource",
            {premake.vstudio.vc2010.generatedFile}    -- cannot explain this...
       )
    end,

    emitFilter = function(prj, group)
        premake.vstudio.vc2010.filterGroup(prj, group, "EmbeddedResource")
    end
}

Надеюсь, что это может помочь...

Другие вопросы по тегам