Не могу связать платформы MacOS с CMake
Я пытаюсь создать подпроект с помощью cmake (этоnot проект xcode или даже приложение для iphone, результатом является кросс-платформенный консольный исполняемый файл, который включает в себя некоторые унаследованные от абстрактных классов C ++, написанные на Objective-C ++)
Я использую это руководство для связи платформ Mac OS:http://www.vtk.org/Wiki/CMake:HowToUseExistingOSXFrameworks
и этот макрос:
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)
Это важная часть в 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)
........
И вот что я имею, когда пытаюсь построить:
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.
Он фактически находит все эти фреймворки, но не может ссылаться, что приводит к множеству ошибок компоновщика. Я почти уверен, что это причина, потому что я сделал testproj, используя XCode, и у него были те же ошибки, пока я не связал все необходимые фреймворки.
Когда я просто использую
FIND_LIBRARY(COREMEDIA_LIB CoreMedia)
...
затемCOREMEDIA_LIB
установлен вNOTFOUND
- что происходит? : /
Я много гуглил, но ничего :( Чувствовал себя в значительной степени потерянным там.