[CMake] CMake 2.8.0 built on OS X crashes on Startup.

Mike Jackson mike.jackson at bluequartz.net
Sat Dec 5 16:59:40 EST 2009


Sorry No Patch but here is what needs to be inserted into
$CMAKE_SOURCE/Source/QtDialog/CMakeLists.txt.

I'll put some context around it for David or Bill to more easily find the place:

  IF(APPLE)
    SET(CMAKE_POSTFLIGHT_SCRIPT
      "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh")
    SET(CMAKE_POSTUPGRADE_SCRIPT
      "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh")
    configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postflight.sh.in"
      "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh")
    configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postupgrade.sh.in"
      "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh")
    INSTALL(CODE "execute_process(COMMAND ln -s
\"../MacOS/${CMAKE_BUNDLE_NAME}\" cmake-gui
                  WORKING_DIRECTORY
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)")
    INSTALL(CODE "set(input_file
       \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}\")")
    INSTALL(SCRIPT
"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake")

    IF (QT_MAC_USE_COCOA)
        INSTALL(CODE "execute_process(COMMAND /usr/bin/touch
\"../Resources/qt.conf\"
                         WORKING_DIRECTORY
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)")

        INSTALL(CODE "execute_process(COMMAND cp -R
\"${QT_LIBRARY_DIR}/QtGui.framework/Resources/qt_menu.nib\"
\"../Resources/\"
         WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)")
    ENDIF(QT_MAC_USE_COCOA)

  ENDIF(APPLE)

Hopefully that will get committed into CVS HEAD  asap as this probably
is getting pretty important with Snow Leopard defaulting to 64 bit
compiles, which forces Qt to be 64 bit, which forces Cocoa to be used,
which forces this patch..

Thanks
_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net

On Sat, Dec 5, 2009 at 11:12 AM, Clinton Stimpson <clinton at elemtech.com> wrote:
>
>> It would be nice to have a function allowing one to override/extend the
>> default choice (which AFAIK is determined by asking otool about
>> link-dependencies). Perhaps something like this:
>>
>> set_external_framework_properties(
>>  ${QT_QTGUI_LIBRARY} PROPERTIES
>>  REQUIRE Resources/qt_menu.nib DESTINATION <APP_BUNDLE>/Resources
>>  REQUIRE Versions/Current/Headers DESTINATION <FRAMEWORK>
>>  )
>>
>> which sets a few directory properties which then are used by
>> fixup_bundle_item from the BundleUtilities for customizing the copied
>> framework. The <APP_BUNDLE> and <FRAMEWORK> strings could resolve to the
>> application-bundle being fixed up and the framework bundle directory,
>> respectively.
>
> I'd prefer a default behavior that would work most of the time.
> I realize people can stuff whatever they want into a Framework, but some
> things are standard, and Resources is one of the standard ones, so I think
> that one should be fixed without having to make any changes to a user's
> CMakeLists.txt file.
>
> Also, some frameworks that BundleUtilities would copy aren't necessarily
> known by cmake during link time, nor specified in any CMakeLists.txt file.
>
> Clint
>
>


More information about the CMake mailing list