definir palabra clave local globalmente en una configuración de macports


0

Mi objetivo principal es habilitar globalmente todos los puertos para compilar con macports-clang-3.4 y usar libc ++ en lugar de libstdc ++.

Por ejemplo, cuando trabajo con un puerto, necesito configurar configure.compiler=macports-clang-3.4y configure.cxx_stdlib=c++11la línea de comando. Pero, ¿cómo puedo establecer estas variables a través de la configuración de macports a nivel mundial para que cualquier invocación portuse automáticamente mis valores predeterminados? variants.confacepta solo variantes y no palabras clave y macports.confsolo incluye palabras clave globales.

Respuestas:


3

Supongo que estás en un sistema <Mavericks porque, de lo contrario, libc++un clamor reciente ya sería tu defecto y forzarlo no tendría mucho sentido.

Use el tronco de MacPorts (o espere la versión 2.3) y configure las siguientes opciones en $prefix/etc/macports.conf:

  • cxx_stdlib libc++
  • buildfromsource always
  • delete_la_files yes

Si usa Xcode> = 4.2, no me molestaría en cambiar el compilador predeterminado, ya que el clang del sistema ya es el compilador MacPorts preferido y algunos puertos lo cambian específicamente si eso no funciona (lo que podría romperse si lo fuerza a ser diferente compilador). Si un puerto no funciona con su versión del sonido de sistema, pero funcionará con un sonido más nuevo, los puertos generalmente elegirán automáticamente un sonido de macports.

Si usa Xcode <4.2, agréguelo default_compilers macports-clang-3.4 macports-clang-3.3 macports-llvm-gcc-4.2 apple-gcc-4.2a su macports.conf. Tenga en cuenta que hacer esto es totalmente incompatible, deliberadamente indocumentado y, si se rompe, puede conservar las piezas.

Debe reinstalar todos sus puertos después de hacer eso.


Gracias, intentaré esto. Sé que también habría mucha confusión con ranlib / ar.
kworr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.