From 6bb2528c6e5cce4fa4577ad6c26606fa4a72573d Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Sat, 14 Jun 2025 12:58:45 -0400 Subject: [PATCH] Create bundle for macOS --- CMakeLists.txt | 30 ++++++++++++++- ISLE/apple/AppIcon.icns | Bin 0 -> 60473 bytes ISLE/apple/Info.plist | 80 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 ISLE/apple/AppIcon.icns create mode 100644 ISLE/apple/Info.plist diff --git a/CMakeLists.txt b/CMakeLists.txt index 55007410..d5038253 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -463,7 +463,7 @@ if (NOT ISLE_MINIWIN) endif() if (ISLE_BUILD_APP) - add_executable(isle WIN32 + add_executable(isle WIN32 MACOSX_BUNDLE ISLE/res/isle.rc ISLE/isleapp.cpp ) @@ -627,6 +627,7 @@ endif() install(TARGETS isle ${install_extra_targets} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + BUNDLE DESTINATION "." ) if(EMSCRIPTEN) install(FILES "$/isle.js" "$/isle.wasm" @@ -638,6 +639,33 @@ set(CPACK_PACKAGE_DIRECTORY "dist") set(CPACK_PACKAGE_FILE_NAME "isle-${PROJECT_VERSION}-${ISLE_PACKAGE_NAME}-${CMAKE_SYSTEM_PROCESSOR}") if(MSVC) set(CPACK_GENERATOR ZIP) +elseif(APPLE) + set(MACOSX_BUNDLE_GUI_IDENTIFIER com.github.isledecomp.isle-portable) + set(MACOSX_BUNDLE_COPYRIGHT LGPLv3) + set(MACOSX_BUNDLE_BUNDLE_NAME isle) + set(MACOSX_BUNDLE_DISPLAY_NAME LEGO Island) + set(MACOSX_BUNDLE_INFO_STRING ${PROJECT_VERSION}) + set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) + set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}) + set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION}") + + # TODO: darwin < 9 + set(MACOSX_BUNDLE_REQUIRED_PLATFORM Carbon) + set(_icon_file AppIcon) + + target_sources(isle PRIVATE "ISLE/apple/${_icon_file}.icns") + set_source_files_properties("./ISLE/apple/${_icon_file}.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + set_target_properties(isle PROPERTIES MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns") + set_target_properties(isle PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ISLE/apple/Info.plist") + + install(TARGETS isle DESTINATION ./) + install(CODE " + include(BundleUtilities) + fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app \"\" \"\") + " + COMPONENT Runtime) + + set(CPACK_GENERATOR DragNDrop) else() set(CPACK_GENERATOR TGZ) endif() diff --git a/ISLE/apple/AppIcon.icns b/ISLE/apple/AppIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..61aa735eb7310cff8089b0f0c1d1451c829bcd16 GIT binary patch literal 60473 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 LEJpr}{_gt^%~|(j literal 0 HcmV?d00001 diff --git a/ISLE/apple/Info.plist b/ISLE/apple/Info.plist new file mode 100644 index 00000000..641faa16 --- /dev/null +++ b/ISLE/apple/Info.plist @@ -0,0 +1,80 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + ${MACOSX_BUNDLE_INFO_STRING} + CFBundleIconFile + ${MACOSX_BUNDLE_ICON_FILE} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + ${MACOSX_BUNDLE_LONG_VERSION_STRING} + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundleDisplayName + ${MACOSX_BUNDLE_DISPLAY_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + UILaunchStoryboardName + LaunchScreen + NSHighResolutionCapable + + CSResourcesFileMapped + + LSRequires${MACOSX_BUNDLE_REQUIRED_PLATFORM} + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + SDL_FILESYSTEM_BASE_DIR_TYPE + resource + NSSupportsAutomaticGraphicsSwitching + + UIApplicationSupportsIndirectInputEvents + + LSSupportsOpeningDocumentsInPlace + + UIFileSharingEnabled + + CADisableMinimumFrameDurationOnPhone + + UIDeviceFamily + + 1 + 2 + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + CFBundleAllowMixedLocalizations + + + \ No newline at end of file