(macOS) Several updates to the .dmg package generator setup.

This commit is contained in:
Leon Styhre 2020-08-21 21:58:12 +02:00
parent ffcb578fe7
commit 6fa4333499
6 changed files with 81 additions and 13 deletions

1
.gitignore vendored
View file

@ -5,6 +5,7 @@
# Compiled Dynamic libraries # Compiled Dynamic libraries
*.so *.so
*.dylib
# Windows Dynamic-link libraries # Windows Dynamic-link libraries
*.[dD][lL][lL] *.[dD][lL][lL]

View file

@ -247,10 +247,16 @@ elseif(WIN32)
"nanosvg") "nanosvg")
endif() endif()
# Temporary solution until the VLC find module has been updated to work properly on macOS.
if (APPLE) if (APPLE)
# See es-app/CMakeLists.txt for an explation for why an extra 'Resources' directory
# has been added to the install prefix.
set(CMAKE_INSTALL_PREFIX "/Applications/EmulationStation-DE.app/Contents/Resources")
# Temporary solution until the VLC find module has been updated to work properly on macOS.
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} set(COMMON_LIBRARIES ${COMMON_LIBRARIES}
"/Applications/VLC.app/Contents/MacOS/lib/libvlc.dylib") "/Applications/VLC.app/Contents/MacOS/lib/libvlc.dylib")
set(CMAKE_INSTALL_RPATH @executable_path)
# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
endif() endif()
# Add libCEC libraries. # Add libCEC libraries.

View file

@ -129,16 +129,40 @@ if(WIN32)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION .)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources DESTINATION .)
elseif(APPLE) elseif(APPLE)
# For completely unknown reasons, when generating a Bundle using cpack, an extra 'Resources'
# directory is added to the target path. Simply adding the two dots as a prefix fixes the
# problem, but doing so would break 'make install' which was actually behaving correctly.
# So an extra 'Resources' directory was added to the CMAKE_INSTALL_PREFIX variable as well
# to compensate for this. It's a bad solution to the problem and there must surely be a
# better way to fix this.
install(TARGETS EmulationStation RUNTIME install(TARGETS EmulationStation RUNTIME
DESTINATION EmulationStation.app/Contents/MacOS) DESTINATION ../MacOS)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE.icns
DESTINATION ../Resources)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE_Info.plist
DESTINATION .. RENAME Info.plist)
install(FILES ${CMAKE_SOURCE_DIR}/libcurl.4.dylib
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/libfreeimage.dylib
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/libfreetype.6.dylib
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/libSDL2-2.0.0.dylib
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/libvlc.dylib
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/libvlccore.dylib
DESTINATION ../MacOS)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/plugins
DESTINATION ../MacOS)
install(FILES ${CMAKE_SOURCE_DIR}/LICENSE install(FILES ${CMAKE_SOURCE_DIR}/LICENSE
DESTINATION EmulationStation.app/Contents/Resources) DESTINATION ../Resources)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources # install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources
DESTINATION EmulationStation.app/Contents/Resources) # DESTINATION ../Resources)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes # install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes
DESTINATION EmulationStation.app/Contents/Resources) # DESTINATION ../Resources)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/licenses install(DIRECTORY ${CMAKE_SOURCE_DIR}/licenses
DESTINATION EmulationStation.app/Contents/Resources) DESTINATION ../Resources)
else() else()
install(TARGETS emulationstation RUNTIME install(TARGETS emulationstation RUNTIME
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
@ -173,14 +197,17 @@ set(CPACK_PACKAGE_VERSION "1.0.0-beta")
# Settings per operating system and generator type. # Settings per operating system and generator type.
if(APPLE) if(APPLE)
set(CPACK_GENERATOR "DragNDrop") set(CPACK_GENERATOR "Bundle")
set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}") set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}")
set(CPACK_DMG_VOLUME_NAME "EmulationStation-DE ${CPACK_PACKAGE_VERSION}") set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE.icns")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation.icns") set(CPACK_DMG_VOLUME_NAME "EmulationStation Desktop Edition ${CPACK_PACKAGE_VERSION}")
set(CPACK_DMG_DS_STORE "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation_DS_Store") set(CPACK_DMG_DS_STORE "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE_DS_Store")
set(CPACK_BUNDLE_NAME "EmulationStation-DE")
set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE.icns")
set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation-DE_Info.plist")
elseif(WIN32) elseif(WIN32)
set(CPACK_GENERATOR "NSIS") set(CPACK_GENERATOR "NSIS")
set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}-win64") set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "EmulationStation") set(CPACK_PACKAGE_INSTALL_DIRECTORY "EmulationStation")
set(CPACK_PACKAGE_EXECUTABLES "EmulationStation" "EmulationStation") set(CPACK_PACKAGE_EXECUTABLES "EmulationStation" "EmulationStation")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>EmulationStation-DE</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>EmulationStation Desktop Edition</string>
<key>CFBundleExecutable</key>
<string>EmulationStation</string>
<key>CFBundleGetInfoString</key>
<string>EmulationStation Desktop Edition 1.0.0</string>
<key>CFBundleIconFile</key>
<string>EmulationStation-DE.icns</string>
<key>CFBundleName</key>
<string>EmulationStation Desktop Edition</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleVersion</key>
<string>1.0.0-beta</string>
<key>NSHighResolutionCapable</key>
<string>true</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSMainNibFile</key>
<string>EmulationStation</string>
<key>NSHumanReadableCopyright</key>
<string>Original work Copyright (c) 2014 Alec Lofquist
Modified work Copyright (c) 2020 Leon Styhre
Licensed under the MIT license</string>
</dict>
</plist>