Probleme mit Universal Binaries unter OS X

Alles rund um die Programmierung mit Qt
Antworten
mrwienh
Beiträge: 5
Registriert: 18. August 2009 14:51

Probleme mit Universal Binaries unter OS X

Beitrag von mrwienh »

Hallo zusammen,

vielleicht ein triviales Problem, allerdings bereitet es uns momentan einiges an Kopfzerbrechen:

Beim Portieren unserer Software nach OS X soll ein Universal Binary erzeugt werden (für Intel und PPC), das Projektfile wurde daher für macx um folgende CONFIGS erweitert:

CONFIGS += i386 ppc

Unsere Software ist allerdings auf verschiedene DEFINES je nach Architektur angewiesen (z.B. altivec code im Fall PPC).

Nun ist es möglich im Projektfall dies weiter zu spezifizieren:

macx {
ppc {
DEFINES += ...
}
i386 {
DEFINES += ...
}
}

Da ja aber beide CONFIGS true sind wirken sich die jeweiligen Blöcke natürlich auf das gesamte entstehende XCode Projekt aus.

Wie handhabt Ihr solche Fälle (in denen die DEFINES für die verschiedenen Zielplattformen eines XCode-Projekts unterschiedlich sein müssen)?

Eine andere Möglichkeit, die uns vorschwebt wäre das auswerten der Build-In Compiler DEFINES, wie z.B. __i386__, allerdings behebt dies nicht die Problematik unterschiedlicher aufrufe des Compilers, z.B. bei unterschiedlichen CFLAGS.

Ich wäre für jede Idee dankbar.

Viele Grüße

Markus
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Ich hab mal schnell einen Blick in "mkspecs/macx-xcode/qmake.conf" geworfen. Kannst du nicht einfach

Code: Alles auswählen

QMAKE_CFLAGS_PPC_64             =
QMAKE_CFLAGS_X86_64             =
QMAKE_CFLAGS_PPC                =
QMAKE_CFLAGS_X86                =
in der pro-file neu setzen (oder mit "+=" ergänzen)?

BTW: Die allgemeine Vorgehensweise in einem XCode-Projekt ist hier
http://developer.apple.com/legacy/mac/l ... binary.pdf
dokumentiert. Im Abschnitt "Architecture-Specific Options" ist dort auch die Sache mit den Flags beschrieben. Aber das wird hier vermutlich nicht weiterhelfen, weil qmake vermutlich die Einstellungen wieder überschreibt..

hth..
Antworten