snapcraft faz o diretório de mudança de plugin?

1

Estou retirando um projeto do github que tem várias pastas src para instâncias diferentes (para diferentes arquiteturas de destino) em subpastas. Ele é compilado com make quando executado na subpasta de instância desejada.

Como faço para que o snapcraft execute o make no diretório correto (não consigo extrair apenas esse diretório, pois há arquivos src comuns no nível superior também)

Yaml atual:

parts:
    base:
        plugin: make
            source: git://github.com/myproject.git
    
por r4space 04.02.2016 / 21:56

1 resposta

3

Boa pergunta.

Embora você não possa fazer a detecção de arquitetura no YAML, é possível dizer aos plug-ins para usar um subdiretório da origem em vez da raiz. Então, contanto que você esteja bem mudando esse subdiretório manualmente dependendo da arquitetura para a qual você está construindo, você é bom.

Vamos supor que o layout do projeto que você está clonando tem esta aparência:

/:
    subdir1:
        Makefile
    subdir2:
        Makefile

Vamos supor também que você esteja interessado apenas em criar subdir1 . Aqui está um trecho de snapcraft help sources :

  
  • source-subdir:

         

    (string)

         

    Um diretório de origem dentro de um repositório ou tarfile para entrar e construir   de.

  •   

Então você pode usar o Snapcraft com o YAML assim:

parts:
    base:
        plugin: make
        source: git://github.com/myproject.git
        source-type: git
        source-subdir: subdir1

Isso fará com que make / make install seja executado a partir do subdir1. Observe que isso se aplica a qualquer plug-in que suporte as opções source .

EDITAR:

De fato, como a sergiusens aponta nos comentários, snapcraft help make é útil para ler e aponta outra possível resposta aqui:

parts:
    base:
        plugin: make
        source: git://github.com/myproject.git
        source-type: git
        makefile: subdir1/Makefile

Isso faz com que make / make install seja chamado com -f subdir1/Makefile

    
por Kyle 05.02.2016 / 19:33