tools/CreateMacBundle.cmake.in
author unc0rr
Fri, 03 Feb 2017 23:04:50 +0300
changeset 12124 ffc7bb9fde01
parent 11611 b53c3134d55a
child 12386 e4f8bf43224d
permissions -rw-r--r--
Adopt some patches from OpenBSD port
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11611
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
     1
# check for a well known-framework
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
     2
execute_process(COMMAND stat ${frameworks_dir}/QtCore.framework RESULT_VARIABLE doBundle OUTPUT_QUIET ERROR_QUIET)
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
     3
# prepare Frameworks directory
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
     4
execute_process(COMMAND mkdir -p ${frameworks_dir})
7816
a25e943dd4b0 finally videorec on osx
koda
parents: 7112
diff changeset
     5
# macdeployqt will convert safely any absolute path library for 'hedgewars'
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 7817
diff changeset
     6
execute_process(COMMAND ${macdeployqt_executable} ${CMAKE_BINARY_DIR}/Hedgewars.app OUTPUT_QUIET ERROR_QUIET)
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
     7
11611
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
     8
if(doBundle EQUAL 1)
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
     9
    if(NOT ${NOVIDEOREC})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    10
        # but macdeployqt will not work for 'hwengine'
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    11
        # luckily most the dylibs are already updated before
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    12
        execute_process(COMMAND install_name_tool -change ${LIBAVCODEC_LIBRARY} @executable_path/../Frameworks/libavcodec.dylib ${engine_full_path})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    13
        execute_process(COMMAND install_name_tool -change ${LIBAVFORMAT_LIBRARY} @executable_path/../Frameworks/libavformat.dylib ${engine_full_path})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    14
        execute_process(COMMAND install_name_tool -change ${LIBAVUTIL_LIBRARY} @executable_path/../Frameworks/libavutil.dylib ${engine_full_path})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    15
    endif()
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7816
diff changeset
    16
11611
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    17
    if(NOT ${NOPNG})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    18
        # same here, for libpng and hwengine, let's assume the version pulled
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    19
        # by macdeployqt matches (yes, libpng is pulled in by macdeployqt even
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    20
        # when NOVIDEOREC is ON)
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    21
        execute_process(COMMAND install_name_tool -change ${PNG_LIBRARY} @executable_path/../Frameworks/${PNG_LIBNAME} ${engine_full_path})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    22
        execute_process(COMMAND install_name_tool -change ${ZLIB_LIBRARY} @executable_path/../Frameworks/${ZLIB_LIBNAME} ${engine_full_path})
b53c3134d55a Fix bundle already present check
koda
parents: 11609
diff changeset
    23
    endif()
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4335
diff changeset
    24
9849
35e1314327ec copy the png library
koda
parents: 9345
diff changeset
    25
    execute_process(COMMAND cp ${PNG_LIBRARY} ${frameworks_dir})
35e1314327ec copy the png library
koda
parents: 9345
diff changeset
    26
11609
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    27
    execute_process(COMMAND cp -pPR ${sdl_library_only}  ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    28
    execute_process(COMMAND cp -pPR ${SDL2IMAGE_LIBRARY} ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    29
    execute_process(COMMAND cp -pPR ${SDL2NET_LIBRARY}   ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    30
    execute_process(COMMAND cp -pPR ${SDL2TTF_LIBRARY}   ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    31
    execute_process(COMMAND cp -pPR ${SDL2MIXER_LIBRARY} ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    32
    execute_process(COMMAND cp -pPR ${OGG_LIBRARY}       ${frameworks_dir})
b77870abb3c4 Update osx bundle creation with SDL2 library names
koda
parents: 9851
diff changeset
    33
    execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY}    ${frameworks_dir})
2401
2a694ea2a437 fixes & co.
koda
parents: 2261
diff changeset
    34
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4335
diff changeset
    35
    if(${SPARKLE_FOUND})
9851
b1e4f0dddfb5 skip writing the full destination name
koda
parents: 9849
diff changeset
    36
        execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${frameworks_dir})
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4335
diff changeset
    37
    endif()
9345
bb9bf1efd0d2 use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents: 9050
diff changeset
    38
    message(STATUS "Frameworks and libraries successfully copied...")
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4335
diff changeset
    39
else()
9345
bb9bf1efd0d2 use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents: 9050
diff changeset
    40
    message(STATUS "Frameworks already present, skipping...")
2401
2a694ea2a437 fixes & co.
koda
parents: 2261
diff changeset
    41
endif()