I do not see any where in your code commands to actually copy the nib file from the qtgui framework into your app bundle. I know thatbthe way I set up my installation code I explicitly put a command to copy the nib file. I believe there is a qt example on the cmake wiki that shows how to do that.
----- Mike Jackson www.bluequartz.net Principal Software Engineer mike.jack...@bluequartz.net BlueQuartz Software Dayton, Ohio On Apr 15, 2010, at 17:06, kent williams <nkwmailingli...@gmail.com> wrote: > I'll include my CMakeLists.txt at the end of this message, but the > long and the short of it is this: My ApplicationBundle crashes when I > try and open it with this classic error message: > > Qt internal error: qt_menu.nib could not be loaded. The .nib file > should be placed in QtGui.framework/Versions/Current/Resources/ or in > the resources directory of your application bundle. > > This is supposed to be fixed, as documented in this bug: > > http://public.kitware.com/Bug/view.php?id=10000 > > I checked out the latest GIT CMake and verified that the file in > question is the same in 2.8.1 and current GIT trunk. > > So is there some magical extra step I need to get my bundle properly > fixed up? > > project( BRAINSTracerQT ) > cmake_minimum_required(VERSION 2.8) > cmake_policy(VERSION 2.8) > > find_package( VTK REQUIRED ) > include(${VTK_USE_FILE}) > > find_package( ITK REQUIRED ) > include(${ITK_USE_FILE}) > > find_package( Qt4 REQUIRED ) > if(QT_USE_FILE) > include(${QT_USE_FILE}) > set(QT_USE_QTXML 1) > else(QT_USE_FILE) > set( QT_LIBRARIES ${QT_QT_LIBRARY}) > endif(QT_USE_FILE) > > find_package(ModuledescriptionParser REQUIRED) > include(${ModuleDescriptionParser_USE_FILE}) > > find_package(TCL REQUIRED) > > find_package( VTK REQUIRED ) > include(${VTK_USE_FILE}) > > find_package( ITK REQUIRED ) > include(${ITK_USE_FILE}) > include_directories( > ${BRAINSTracerQT_SOURCE_DIR} > ${BRAINSTracerQT_BINARY_DIR} > ) > > configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ExecutablePath.h.in > ${CMAKE_BINARY_DIR}/ExecutablePath.h IMMEDIATE @ONLY) > > add_subdirectory(vtkRenderingAddOn) > include_directories(${BRAINSTracerQT_SOURCE_DIR}/vtkRenderingAddOn) > > set(BRAINSTracerQT_SRCS > main.cxx > BTMainWindow.cxx > vtkKWImage.cxx > vtkKWImage2D.cxx > QVtkImageViewer.cxx > vtkMultiWidgetBase.cxx > vtkMultiContourWidget.cxx > vtkBTPointSetWidget.cxx > vtkBTPointWidget.cxx > PolyDataUtils.cxx > BTContour.cxx > BTPolygon.cxx > DiscreteParticleFilter.cxx > PolygonFill.cxx > LoadMaskImage.cxx > qtcolorpicker.cxx > QVtkPropertyDialog.cxx > QModuleParameterWidget.cxx > QImageParameterWidget.cxx > QFileBrowserParameterWidget.cxx > ) > > set(BRAINSTracerQT_HDRS > BTMainWindow.h > QVtkImageViewer.h > qtcolorpicker.h > QVtkPropertyDialog.h > QModuleParameterWidget.h > QImageParameterWidget.h > QFileBrowserParameterWidget.h > ) > > set(BRAINSTracerQT_RCCS > BRAINSTracerQT.qrc) > > set(BRAINSTracerQT_UIS > qvtkpropertydialog.ui) > > QT4_WRAP_CPP( MOCSrcs ${BRAINSTracerQT_HDRS} ) > > QT4_ADD_RESOURCES(RCC_SRCS ${BRAINSTracerQT_RCCS}) > > QT4_WRAP_UI(UIHeaders ${BRAINSTracerQT_UIS} ) > > set_source_files_properties(${BRAINSTracerQT_SRCS} > PROPERTIES OBJECT_DEPENDS ${UIHeaders}) > > add_definitions(-DQT_GUI_LIBS -DQT_CORE_LIB -DQT3_SUPPORT) > > #set_source_files_properties(${BRAINSTracerQT_SRCS} PROPERTIES > # OBJECT_DEPENDS "${UIHeaders}") > > add_executable( BRAINSTracerQT > MACOSX_BUNDLE > WIN32 > ${BRAINSTracerQT_SRCS} > ${MOCSrcs} > ${RCC_SRCS} > ) > target_link_libraries( BRAINSTracerQT > QVTK > ${QT_LIBRARIES} > ${ITK_LIBRARIES} > vtkRenderingAddOn > vtkRendering > vtkFiltering > vtkVolumeRendering > ${TCL_LIBRARY} > ModuleDescriptionParser > ) > > GET_TARget_property(TARGET_EXEC_DIR BRAINSTracerQT > RUNTIME_OUTPUT_DIRECTORY) > set(TARGET_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") > > set(DEFAULT_MODULE_SEARCH_PATH > "${TARGET_EXEC_DIR}/Modules") > > #-- > --- > --- > --- > --------------------------------------------------------------------- > # Now the installation stuff below > #-- > --- > --- > --- > --------------------------------------------------------------------- > SET(plugin_dest_dir bin) > SET(qtconf_dest_dir bin) > SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/BRAINSTracerQT") > IF(APPLE) > SET(plugin_dest_dir BRAINSTracerQT.app/Contents/MacOS) > SET(qtconf_dest_dir BRAINSTracerQT.app/Contents/Resources) > SET(APPS "\${CMAKE_INSTALL_PREFIX}/BRAINSTracerQT.app") > ENDIF(APPLE) > IF(WIN32) > SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/BRAINSTracerQT.exe") > ENDIF(WIN32) > > #-- > --- > --- > --- > --------------------------------------------------------------------- > # Install the BRAINSTracerQT application, on Apple, the bundle is at > the root of the > # install tree, and on other platforms it'll go into the bin > directory. > INSTALL(TARGETS BRAINSTracerQT > BUNDLE DESTINATION . COMPONENT Runtime > RUNTIME DESTINATION bin COMPONENT Runtime > ) > > #-- > --- > --- > --- > --------------------------------------------------------------------- > # Install needed Qt plugins by copying directories from the qt > installation > # One can cull what gets copied by using 'REGEX "..." EXCLUDE' > INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION > ${plugin_dest_dir}/plugins COMPONENT Runtime) > > #-- > --- > --- > --- > --------------------------------------------------------------------- > # install a qt.conf file > # this inserts some cmake code into the install script to write the > file > INSTALL(CODE " > file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf > \" \"\") > " COMPONENT Runtime) > > > #-- > --- > --- > --- > --------------------------------------------------------------------- > # Use BundleUtilities to get all other dependencies for the > application to work. > # It takes a bundle or executable along with possible plugins and > inspects it > # for dependencies. If they are not system dependencies, they are > copied. > > # directories to look for dependencies > SET(DIRS > ${QT_LIBRARY_DIRS} > ${ITK_DIR} > ${VTK_DIR} > ${CMAKE_INSTALL_PREFIX}/lib > ${ModuledescriptionParser_DIR} > ${BRAINSTracerQT_BINARY_DIR}/lib > ) > MESSAGE(status QT_LIBRARY_DIRS ${QT_LIBRARY_DIRS} ${QT_PLUGINS_DIR}) > # Now the work of copying dependencies into the bundle/package > # The quotes are escaped and variables to use at install time have > their $ escaped > # An alternative is the do a configure_file() on a script and use > install(SCRIPT ...). > # Note that the image plugins depend on QtSvg and QtXml, and it got > those copied > # over. > INSTALL(CODE " > file(GLOB_RECURSE QTPLUGINS > \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*$ > {CMAKE_SHARED_LIBRARY_SUFFIX}\") > include(BundleUtilities) > fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\") > " COMPONENT Runtime) > > > # To Create a package, one can run "cpack -G DragNDrop > CPackConfig.cmake" on Mac OS X > # where CPackConfig.cmake is created by including CPack > # And then there's ways to customize this as well > set(CPACK_BINARY_DRAGNDROP ON) > include(CPack) > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake