2017-06-08 4 views
1

Unterstützt Xcode das Exportieren einer Erstellungskonfiguration (Compiler & Linkeroptionen und Flags) in ein Makefile? Oder gibt es eine Implementierung von Drittanbietern für diese Aufgabe?Makefile von Erstellungskonfiguration erstellen

Wir machen den Großteil unserer (nativen Code) Entwicklung mit Xcode, aber wir müssen es auch gegen Windows/Linux-Bibliotheken kompilieren. Im Allgemeinen haben wir gültige Build-Konfigurationen in Xcode und wir bearbeiten Makefiles manuell, bevor wir Code-Modifikationen vornehmen. Dieser Prozess ist fehleranfällig und erzeugt unerwünschte Unterschiede zwischen der Entwicklungsumgebung und unserem Build-System.

Das automatische Exportieren der Build-Konfigurationen in Makefiles würde unseren Workflow erheblich vereinfachen.

+0

Wie hängt das mit C und C++ zusammen, die darüber hinaus zwei verschiedene Sprachen sind? – Badda

+0

Die Tags betonen, dass dies nicht Objective-C/Swift ist. – Elist

Antwort

1

Ich denke, Ihre Antwort ist xcodebuild -showBuildSettings

$ xcodebuild -showBuildSettings 
Build settings for action build and target YourApp: 
ACTION = build 
AD_HOC_CODE_SIGNING_ALLOWED = NO 
ALTERNATE_GROUP = staff 
ALTERNATE_MODE = u+w,go-w,a+rX 
ALTERNATE_OWNER = Stanislaw 
... 

Sie es mit normalen Optionen wie -scheme kombinieren, -configuration, -target usw.

auch versuchen, die Menschen mit so genannten .xcconfig Dateien zu arbeiten, wenn es darum geht, über die Injektion von einigen benutzerdefinierten Flags. Dieser Pfad kann Sie an einen anderen Ort bringen, ist aber keine super praktische Möglichkeit, eine plattformübergreifende Entwicklung durchzuführen, da sie nur auf dem Mac funktionieren. Siehe zum Beispiel: Using xcconfig files for your XCode Project.

Ein weiterer indirekter Weg, um die Informationen zu bekommen, ist ein Dump aller Kompilierungsbefehle von Xcode, siehe folgende Antwort: How can I get all the compile commands from Xcode?.

Soweit ich weiß, Xcode ist nicht wirklich freundlich, wenn es darum geht, mit all seinen Flags getrennt umzugehen.


Eine weitere Option ist der Wechsel von Makefiles zu CMake. CMake ist nicht perfekt, aber bisher scheint es das beste Tool zu sein: es kann Xcode-Projekte generieren und es kann Ihnen sehr dabei helfen, Ihre Bibliotheken für verschiedene Plattformen zu erstellen.

+0

Ich würde dir wirklich empfehlen, in CMake zu schauen. Höchstwahrscheinlich wird es Ihre Probleme lösen. Dies: 'Im Allgemeinen haben wir gültige Build-Konfigurationen in Xcode, und wir bearbeiten Makefiles manuell, bevor wir Code-Modifikationen vornehmen. Das klingt nicht gut :) –

+0

' xcodebuild -showBuildSettings' ist ein guter Anfang, aber es gibt noch viele wichtige Dinge, die fehlen. wie kompilierte Dateien, Bibliotheken usw. – Elist

+0

Ich habe meine Antwort mit zwei weiteren indirekten Optionen aktualisiert: mit Hilfe von xcconfig-Dateien und dem Abrufen von Kompilierungsbefehlen, aber noch einmal: Ich empfehle Ihnen, in CMake zu schauen. Es ist der absolute Standard für die plattformübergreifende Entwicklung in diesen Tagen. –

Verwandte Themen