Una alternativa más, en el caso de que esté trabajando con la tienda de aplicaciones, necesita "Derechos" y, como tal, necesita vincularse con un Apple-Framework.
Para que los derechos funcionen (por ejemplo, GameCenter), debe tener un "Enlace binario con bibliotecas" -buildstep y luego enlazar con "GameKit.framework". CMake "inyecta" las bibliotecas en un "nivel bajo" en la línea de comandos, por lo tanto, Xcode realmente no lo sabe y, como tal, no habilitará GameKit en la pantalla Capacidades.
Una forma de usar CMake y tener un "Enlace con binarios" -buildstep es generar el xcodeproj con CMake, y luego usar 'sed' para 'buscar y reemplazar' y agregar el GameKit de la forma en que a XCode le gusta ...
El script se ve así (para 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
guarda esto en "gamecenter.sed" y luego "aplícalo" así (¡cambia tu xcodeproj!)
sed -i.pbxprojbak -f gamecenter.sed myproject.xcodeproj/project.pbxproj
Es posible que tenga que cambiar los comandos de script para satisfacer sus necesidades.
Advertencia: es probable que se rompa con diferentes versiones de Xcode, ya que el formato del proyecto podría cambiar, el número único (codificado) podría no ser realmente único, y en general las soluciones de otras personas son mejores, por lo que a menos que necesite apoyar la tienda de aplicaciones + Derechos (y compilaciones automatizadas), no hagas esto.
Este es un error de CMake, consulte http://cmake.org/Bug/view.php?id=14185 y http://gitlab.kitware.com/cmake/cmake/issues/14185
link_directories
desaconseja su uso, incluso en su propia documentación. Creo que sería mejor aquí resolver lafind_library
llamada fallida en la pregunta original, o usar la solución de @ Andre.