tools/CreateMacBundle.cmake.in
author Mitchell Kember <mk12360@gmail.com>
Thu, 29 Nov 2012 19:44:18 -0500
changeset 8144 f3ba33d5d2b1
parent 7817 6cc558a69b58
child 8316 89232b2fa1d6
permissions -rw-r--r--
Google Code-in: Hide "video record" keybind option Removes the recording keybinding option using preprocessor conditions when it is unavailable. This includes when Hedgewars is being built either with the recording feature explicitly disabled or when FFMPEG/LibAV were not found. https://google-melange.appspot.com/gci/task/view/google/gci2012/7948213

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

execute_process(COMMAND ls ${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}/${bundle_name} 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 ${FFMPEG_LIBAVCODEC} @executable_path/../Frameworks/libavcodec.dylib ${CMAKE_BINARY_DIR}/${bundle_name}/Contents/MacOS/hwengine)
    execute_process(COMMAND install_name_tool -change ${FFMPEG_LIBAVFORMAT} @executable_path/../Frameworks/libavformat.dylib ${CMAKE_BINARY_DIR}/${bundle_name}/Contents/MacOS/hwengine)
    execute_process(COMMAND install_name_tool -change ${FFMPEG_LIBAVUTIL} @executable_path/../Frameworks/libavutil.dylib ${CMAKE_BINARY_DIR}/${bundle_name}/Contents/MacOS/hwengine)
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} ${CMAKE_BINARY_DIR}/${bundle_name}/Contents/MacOS/hwengine)
endif()

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

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