Incorporação Rake em um aplicativo de C ++? Ou há um lago para LUA?

votos
2

Eu encontrei um par de perguntas sobre a incorporação de rubi em um aplicativo C ++. Quase todas as respostas mais votados sugerir o uso de Lua em seu lugar.

Tendo em conta que um projeto que tenho em mente seria melhor servido pela gramática já expressa em Rake (é um mecanismo de regras), há alguma maneira fácil de incorporar Rake em um aplicativo C ++, ou há um módulo de Rake, como para Lua?

Para esclarecer: eu quero que este seja um aplicativo auto-suficiente, se possível. Ele deve ter o mínimo de pré-requisitos, porque ele vai estar em execução num (Windows) OS bastante bare-desossada.

Publicado 19/05/2009 em 14:29
fonte usuário
Em outras línguas...                            


2 respostas

votos
3

Há uma série de sistemas de compilação que podem usar Lua, baseados fortemente na Lua ou mesmo implementado em Lua. Alguns deles estão listados no Wiki do usuário da Lua .

Dos listados no wiki, Bou foi explicitamente inspirado pelo Rake. Seu autor observou que o nome de "lago" já estava em uso por outro sistema de construção no momento que o projeto foi iniciado, mas não forneceu um link para que eu não tenho idéia o que se poderia ter sido relacionado. Desde aquela época, Bou foi renomeado para Lake e se mudou para uma nova casa.

Lago é a criação de um contribuinte regular para a comunidade Lua, steve Donovan. Como Bou foi, ele é implementado em quase puro Lua (que não depende de LuaFileSystem para acesso ao sistema de arquivos). Ao invés de agir como um filtro para criar arquivos de projeto Makefile ou IDE, ele dirige os compiladores diretamente com base em descrições de projetos escritos em Lua. Construir projectos são descritos em uma DSL (domínio específico da linguagem) que inclui acesso a todas Lua para lidar com casos especiais.

Os "oficiais" versões binárias de Lua todos vêm de um sistema chamado tecmake originou no Tecgraf como a própria Lua. Tecmake é implementado em cima da marca, através de um script shell acondicionamento e um conjunto comum de regras Makefile execução das suas convenções. Ele funciona bem para eles, mas pessoalmente eu nunca fui capaz de obtê-lo a correr no meu sistema. Há um trabalho em progresso para mover os LuaBinaries constrói longe das peculiaridades de techmake.

LuaRocks usa Lua para descrever requisitos de construção, está escrito quase inteiramente na Lua, e se destina a ser integrado com uma aplicação distribuída para que os aplicativos podem ser auto-atualização. Pelo que entendi, um dos objetivos do LuaRocks é permitir edifício projeto para usar seus arquivos de "rock" independente de plataforma, e utilizando LuaRocks para construir um projeto pessoal certamente torná-lo mais fácil de publicá-lo para uma distribuição mais ampla mais tarde.

E como um fallback, é sempre possível usar Lua como mais uma ferramenta para estender uma compilação-driven makefile. Eu usei-o desta forma para pré-processamento de tarefas que eu poderia ter delegadas awk ou perl, como a recolha de dados dos atuais fóssil revisão em meu projeto construído.

Atualizar:

E como o tempo passa, o conhecimento melhora. Como observado por Victor T em um comentário, Lago de Steve é realmente o mesmo projeto que foi nomeado Bou. Aparentemente, tudo o que objeções ao nome "Lago" tinha desaparecido, e eu simplesmente não percebeu que eles eram uma ea mesma ferramenta. Eu editei a resposta original e sua atualização para refletir melhor o meu entendimento atual.

Respondeu 20/05/2009 em 22:20
fonte usuário

votos
1

Há pelo menos dois projetos diferentes chamados "Lua Marca" (que você pode Google para), e também há algum tipo de sistema de compilação associado com rochas Lua . Não está claro se a Lua Rochas coisa vai ser de alguma utilidade, mas os outros dois parecem ser a pena conferir.

Respondeu 20/05/2009 em 00:20
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more