tools/CreateMacBundle.cmake.in
author nemo
Fri, 07 Jun 2013 14:44:34 -0400
changeset 9148 78c699d8fdfd
parent 9050 e9d54cd577e7
child 9345 bb9bf1efd0d2
permissions -rw-r--r--
move 0.01 to the end to avoid increase damage fail on small values like fire. thanks to hedgewars wiki for noting this for fire damage.

message(STATUS "Performing standalone bundle creation...")

execute_process(COMMAND stat ${frameworks_dir} RESULT_VARIABLE doBundle OUTPUT_QUIET ERROR_QUIET)
execute_process(COMMAND mkdir -p ${frameworks_dir})
# macdeployqt will convert safely any absolute path library for 'hedgewars'
execute_process(COMMAND ${macdeployqt_executable} ${CMAKE_BINARY_DIR}/Hedgewars.app OUTPUT_QUIET ERROR_QUIET)

if(NOT ${NOVIDEOREC})
    # but macdeployqt will not work for 'hwengine'; luckily the dylibs were already updated before
    execute_process(COMMAND install_name_tool -change ${LIBAVCODEC_LIBRARY} @executable_path/../Frameworks/libavcodec.dylib ${engine_full_path})
    execute_process(COMMAND install_name_tool -change ${LIBAVFORMAT_LIBRARY} @executable_path/../Frameworks/libavformat.dylib ${engine_full_path})
    execute_process(COMMAND install_name_tool -change ${LIBAVUTIL_LIBRARY} @executable_path/../Frameworks/libavutil.dylib ${engine_full_path})
endif()

if(NOT ${NOPNG})
    #same here, for libpng and hwengine, let's assume the version pulled by macdeployqt is the same
    #(yes libpng is pulled by macdeployqt even when NOVIDEOREC is active)
    execute_process(COMMAND install_name_tool -change ${PNG_LIBRARY} @executable_path/../Frameworks/${PNG_LIBNAME} ${engine_full_path})
    execute_process(COMMAND install_name_tool -change ${ZLIB_LIBRARY} @executable_path/../Frameworks/${ZLIB_LIBNAME} ${engine_full_path})
endif()

if(doBundle EQUAL 1)
    execute_process(COMMAND cp -pPR ${sdl_library_only} ${frameworks_dir}/SDL.framework)
    execute_process(COMMAND cp -pPR ${SDLIMAGE_LIBRARY} ${frameworks_dir}/SDL_image.framework)
    execute_process(COMMAND cp -pPR ${SDLNET_LIBRARY}   ${frameworks_dir}/SDL_net.framework)
    execute_process(COMMAND cp -pPR ${SDLTTF_LIBRARY}   ${frameworks_dir}/SDL_ttf.framework)
    execute_process(COMMAND cp -pPR ${SDLMIXER_LIBRARY} ${frameworks_dir}/SDL_mixer.framework)
    execute_process(COMMAND cp -pPR ${OGG_LIBRARY}      ${frameworks_dir}/Ogg.framework)
    execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY}   ${frameworks_dir}/Vorbis.framework)

    if(${SPARKLE_FOUND})
        execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${frameworks_dir}/Sparkle.framework)
    endif()
    message(STATUS "Bundle frameworks added")
else()
    message(STATUS "Bundle frameworks already present; skipping...")
endif()