Я нацеливаюсь на iOS (устройство и симулятор) и настраиваю CMake для добавления различных ресурсов, необходимых в комплекте. Файл "xib" доставляет мне некоторые проблемы. Если я не предприму никаких дальнейших действий, запуск симулятора iPhone / iPad завершится с ошибкой:
Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'Could not load NIB in bundle:
'NSBundle </Users/danieldekkers/Library/Application Support/iPhone Simulator/4.3.2/Applications/1C29638B-7593-4311-8F94-C8051AF90AD7/Discs.app>
(loaded)' with name 'MainWindow''
Отсутствует файл NIB в комплекте.
Пример (http://www.vtk.org/Wiki/CMake:OSX_InterfaceBuilderFiles) показывает, что для OSX вы должны скомпилировать xib-файлы в nib-файлы и добавить их в комплект в качестве шага после сборки.
Так что я думаю, что нечто подобное сохраняется и для iOS.
Но мой вопрос ... где я могу добавить скомпилированные файлы пера?
Теперь я делаю это в CMakeLists.txt:
# We need to compile the interface builder *.xib files to *.nib files to add to the bundle
# Make sure we can find the 'ibtool' program. If we can NOT find it we skip generation of this project
FIND_PROGRAM( IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin" )
if ( ${IBTOOL} STREQUAL "IBTOOL-NOTFOUND" )
MESSAGE( SEND_ERROR "ibtool can not be found" )
ENDIF()
# Compile the .xib files using the 'ibtool' program with the destination being the app package
FOREACH( xib ${RSRC_IOS_XIB_FILES} )
ADD_CUSTOM_COMMAND( TARGET ${RT_APP_NAME} POST_BUILD
COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text
--compile
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RT_APP_NAME}.app/Contents/Resources/${xib}.nib
${RT_APP_ROOT}/rsrc/apple/ios/${xib}.xib
COMMENT "Compiling ${RT_APP_ROOT}/rsrc/apple/ios/${xib}.xib")
ENDFOREACH()
Но я действительно не доверяю «месту назначения» этапа компиляции, особенно для симулятора.
Кто-нибудь получил эту работу или посмотреть, что я делаю не так?