Eine weitere Alternative, falls Sie mit dem Appstore arbeiten, benötigen "Berechtigungen" und müssen daher mit einem Apple-Framework verknüpft werden.
Damit Berechtigungen funktionieren (z. B. GameCenter), müssen Sie einen "Link Binary with Libraries" -Bildstep haben und dann mit "GameKit.framework" verknüpfen. CMake "injiziert" die Bibliotheken auf einer "niedrigen Ebene" in die Befehlszeile, daher weiß Xcode nicht wirklich davon, und als solches wird GameKit im Bildschirm "Funktionen" nicht aktiviert.
Eine Möglichkeit, CMake zu verwenden und einen "Link with Binaries" -Bildstep zu erstellen, besteht darin, das xcodeproj mit CMake zu generieren und dann mit 'sed' zu suchen und zu ersetzen und das GameKit so hinzuzufügen, wie es XCode gefällt ...
Das Skript sieht folgendermaßen aus (für Xcode 6.3.1).
s#\/\* Begin PBXBuildFile section \*\/#\/\* Begin PBXBuildFile section \*\/\
26B12AA11C10544700A9A2BA \/\* GameKit.framework in Frameworks \*\/ = {isa = PBXBuildFile; fileRef = 26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/; };#g
s#\/\* Begin PBXFileReference section \*\/#\/\* Begin PBXFileReference section \*\/\
26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System\/Library\/Frameworks\/GameKit.framework; sourceTree = SDKROOT; };#g
s#\/\* End PBXFileReference section \*\/#\/\* End PBXFileReference section \*\/\
\
\/\* Begin PBXFrameworksBuildPhase section \*\/\
26B12A9F1C10543B00A9A2BA \/\* Frameworks \*\/ = {\
isa = PBXFrameworksBuildPhase;\
buildActionMask = 2147483647;\
files = (\
26B12AA11C10544700A9A2BA \/\* GameKit.framework in Frameworks xxx\*\/,\
);\
runOnlyForDeploymentPostprocessing = 0;\
};\
\/\* End PBXFrameworksBuildPhase section \*\/\
#g
s#\/\* CMake PostBuild Rules \*\/,#\/\* CMake PostBuild Rules \*\/,\
26B12A9F1C10543B00A9A2BA \/\* Frameworks xxx\*\/,#g
s#\/\* Products \*\/,#\/\* Products \*\/,\
26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/,#g
speichere dies in "gamecenter.sed" und "wende" es dann so an (es ändert dein xcodeproj!)
sed -i.pbxprojbak -f gamecenter.sed myproject.xcodeproj/project.pbxproj
Möglicherweise müssen Sie die Skriptbefehle ändern, um sie Ihren Anforderungen anzupassen.
Warnung: Es ist wahrscheinlich, dass es mit einer anderen Xcode-Version bricht, da sich das Projektformat ändern kann, die (fest codierte) eindeutige Nummer möglicherweise nicht wirklich eindeutig ist - und im Allgemeinen sind die Lösungen anderer Personen besser -, es sei denn, Sie müssen den Appstore + unterstützen Berechtigungen (und automatisierte Builds) tun dies nicht.
Dies ist ein CMake-Fehler, siehe http://cmake.org/Bug/view.php?id=14185 und http://gitlab.kitware.com/cmake/cmake/issues/14185
link_directories
wird auch in der eigenen Dokumentation abgeraten. Ich denke, es wäre hier besser, den fehlgeschlagenenfind_library
Anruf in der ursprünglichen Frage zu beheben oder die Lösung von @ Andre zu verwenden.