definisce la parola chiave locale globalmente in una configurazione di macports

0

Il mio obiettivo principale è quello di abilitare globalmente tutte le porte a compilare con macports-clang-3.4 e usare libc ++ invece di libstdc ++.

Ad esempio quando si lavora con una porta ho bisogno di impostare configure.compiler=macports-clang-3.4 e configure.cxx_stdlib=c++11 sulla riga di comando. Ma come posso impostare queste variabili tramite la configurazione di macports globalmente in modo che qualsiasi invocazione di port utilizzi automaticamente le mie impostazioni predefinite? variants.conf accetta solo varianti e nessuna parola chiave e macports.conf include solo parole chiave globali.

    
posta kworr 24.01.2014 - 17:59
fonte

1 risposta

3

Suppongo che tu sia su un sistema < Mavericks perché altrimenti libc++ e un clang recente sarebbero già i tuoi valori predefiniti e forzarli non avrebbe molto senso.

Usa il trunk MacPorts (o attendi la versione 2.3) e imposta le seguenti opzioni in $prefix/etc/macports.conf :

  • cxx_stdlib libc++
  • buildfromsource always
  • delete_la_files yes

Se usi Xcode > = 4.2 non mi preoccuperei di cambiare il compilatore di default, dato che il clang di sistema è già il compilatore preferito di MacPorts e alcune porte cambiano in modo specifico se ciò non funziona (il che potrebbe rompersi se lo imponi per essere un compilatore diverso). Se una porta non funziona con la tua versione di system clang, ma funzionerà con un clang più recente, le porte in genere sceglieranno automaticamente un macports-clang.

Se usi Xcode < 4.2, aggiungi default_compilers macports-clang-3.4 macports-clang-3.3 macports-llvm-gcc-4.2 apple-gcc-4.2 al tuo macports.conf . Nota che questo è completamente non supportato, deliberatamente non documentato e, se si rompe, puoi tenere i pezzi.

Devi aver reinstallato tutte le porte dopo averlo fatto.

    
risposta data 04.03.2014 - 01:25
fonte

Leggi altre domande sui tag