Nie można połączyć frameworków MacOS z CMake
Próbuję zbudować podprojekt za pomocą cmake (to jestnie projekt xcode lub nawet aplikacja na iPhone'a, rezultatem jest wieloplatformowy plik wykonywalny konsoli, który # zawiera kilka dziedziczonych po klasach abstrakcyjnych C ++, napisanych w Object-C ++)
Korzystam z tego przewodnika, aby połączyć struktury mac os:http://www.vtk.org/Wiki/CMake:HowToUseExistingOSXFrameworks
i to makro:
macro(ADD_FRAMEWORK fwname appname)
find_library(FRAMEWORK_${fwname}
NAMES ${fwname}
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
PATH_SUFFIXES Frameworks
NO_DEFAULT_PATH)
if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
MESSAGE(ERROR ": Framework ${fwname} not found")
else()
TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}})
MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
endif()
endmacro(ADD_FRAMEWORK)
To jest ważna część w CMakeLists.txt
project(myprojectname)
........
add_executable(mytarget src/mytarget.cpp)
add_framework(CoreMedia mytarget)
add_framework(CoreVideo mytarget)
add_framework(AVFoundation mytarget)
add_framework(Foundation mytarget)
........
I to właśnie mam, gdy próbuję zbudować:
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/CoreMedia.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/CoreVideo.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/AVFoundation.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework". Targets may link only to libraries. CMake is dropping the item.
W rzeczywistości znajduje wszystkie te struktury, ale nie może połączyć, co powoduje wiele błędów linkera. Jestem pewien, że to jest powód, dla którego stworzyłem testproj za pomocą XCode i ma te same błędy, dopóki nie połączyłem wszystkich potrzebnych frameworków.
Kiedy po prostu używam
FIND_LIBRARY(COREMEDIA_LIB CoreMedia)
...
następnieCOREMEDIA_LIB
jest ustawione naNOTFOUND
- co się dzieje? : /
Wiele googlałem, ale nic :( Czułam się tam dość zagubiona.