From 0298beeb06c920d155c72099fd5aea1b96e8dee7 Mon Sep 17 00:00:00 2001 From: "jonas@jkvinge.net" Date: Thu, 13 May 2021 01:37:05 +0200 Subject: [PATCH] Fix macOS build --- .github/workflows/ccpp.yml | 8 ++++++++ cmake/Dmg.cmake | 27 ++++++++++++++++++++++----- dist/CMakeLists.txt | 20 ++++++++++---------- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 9a9543ea0..99e0ca1bd 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -1400,6 +1400,10 @@ jobs: make -j8 sudo make install + - name: Remove problematic files + shell: bash + run: sudo rm -rf /usr/local/opt/qt6/share/qt/plugins/virtualkeyboard /usr/local/opt/qt6/share/qt/plugins/platforminputcontexts + - name: Create Build Environment shell: bash run: cmake -E make_directory build @@ -1426,6 +1430,10 @@ jobs: working-directory: build shell: bash run: make install + - name: Copy sparkle + working-directory: build + shell: bash + run: make copy_sparkle - name: Create DMG working-directory: build shell: bash diff --git a/cmake/Dmg.cmake b/cmake/Dmg.cmake index 9aba2da45..4d513651d 100644 --- a/cmake/Dmg.cmake +++ b/cmake/Dmg.cmake @@ -13,12 +13,29 @@ else() message(WARNING "Missing create-dmg executable.") endif() -if(MACDEPLOYQT_EXECUTABLE AND CREATEDMG_EXECUTABLE) - add_custom_target(dmg - COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/ - COMMAND cp -r /usr/local/opt/sparkle/Sparkle.framework ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/ +# Workaround for Sparkle +add_custom_target(copy_sparkle + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/ + COMMAND cp -r /usr/local/opt/sparkle/Sparkle.framework ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/ + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS strawberry strawberry-tagreader +) + +if(MACDEPLOYQT_EXECUTABLE) + add_custom_target(deploy + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/{Frameworks,Resources} + COMMAND cp ${CMAKE_SOURCE_DIR}/dist/macos/Info.plist ${CMAKE_BINARY_DIR}/strawberry.app/Contents/ + COMMAND cp ${CMAKE_SOURCE_DIR}/dist/macos/strawberry.icns ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources/ + COMMAND cp /usr/local/lib/libbrotlicommon.1.dylib ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/ COMMAND ${MACDEPLOYQT_EXECUTABLE} strawberry.app -verbose=3 -executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/strawberry-tagreader - COMMAND ${CREATEDMG_EXECUTABLE} --volname strawberry --background "${CMAKE_SOURCE_DIR}/dist/macos/dmg_background.png" --app-drop-link 450 218 --icon strawberry.app 150 218 --window-size 600 450 strawberry-${STRAWBERRY_VERSION_PACKAGE}-${CMAKE_HOST_SYSTEM_PROCESSOR}.dmg strawberry.app WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS strawberry strawberry-tagreader ) + if(CREATEDMG_EXECUTABLE) + add_custom_target(dmg + COMMAND ${CREATEDMG_EXECUTABLE} --volname strawberry --background "${CMAKE_SOURCE_DIR}/dist/macos/dmg_background.png" --app-drop-link 450 218 --icon strawberry.app 150 218 --window-size 600 450 strawberry-${STRAWBERRY_VERSION_PACKAGE}-${CMAKE_HOST_SYSTEM_PROCESSOR}.dmg strawberry.app + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS deploy macdeployqt + ) + endif() endif() diff --git a/dist/CMakeLists.txt b/dist/CMakeLists.txt index 754aa4f07..ef788ca63 100644 --- a/dist/CMakeLists.txt +++ b/dist/CMakeLists.txt @@ -7,24 +7,24 @@ if(DEB_CODENAME AND DEB_DATE) endif(DEB_CODENAME AND DEB_DATE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/unix/PKGBUILD.in ${CMAKE_CURRENT_SOURCE_DIR}/unix/PKGBUILD @ONLY) -if (APPLE) +if(APPLE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in ${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist) -endif (APPLE) +endif(APPLE) -if (WIN32) +if(WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi.in ${CMAKE_CURRENT_SOURCE_DIR}/windows/strawberry.nsi @ONLY) -endif (WIN32) +endif(WIN32) -if (UNIX AND NOT APPLE) +if(UNIX AND NOT APPLE) install(FILES ../data/icons/48x48/strawberry.png DESTINATION share/icons/hicolor/48x48/apps/) install(FILES ../data/icons/64x64/strawberry.png DESTINATION share/icons/hicolor/64x64/apps/) install(FILES ../data/icons/128x128/strawberry.png DESTINATION share/icons/hicolor/128x128/apps/) install(FILES unix/org.strawberrymusicplayer.strawberry.desktop DESTINATION share/applications) install(FILES unix/org.strawberrymusicplayer.strawberry.appdata.xml DESTINATION share/metainfo) install(FILES unix/strawberry.1 unix/strawberry-tagreader.1 DESTINATION share/man/man1) -endif (UNIX AND NOT APPLE) +endif(UNIX AND NOT APPLE) -if (APPLE) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../dist/macos/Info.plist" DESTINATION "${CMAKE_BINARY_DIR}/strawberry.app/Contents") - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../dist/macos/strawberry.icns" DESTINATION "${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources") -endif (APPLE) +if(APPLE) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist" DESTINATION "${CMAKE_BINARY_DIR}/strawberry.app/Contents") + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/macos/strawberry.icns" DESTINATION "${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources") +endif()