diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index f15e405..f7f54fb 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -202,28 +202,34 @@ jobs: uses: actions/cache@v3 with: path: build - key: macos-cmake-v3 + key: macos-cmake-v4 - name: Configure run: | cmake \ -B build \ - -D CMAKE_BUILD_TYPE=RelWithDebInfo \ + -G Xcode \ + -D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY='' \ # EOL - name: Build run: | cmake \ --build build \ + --config RelWithDebInfo \ -j $(sysctl -n hw.physicalcpu) \ - --target package \ # EOL + - name: Pack + run: | + cd build + cpack -C RelWithDebInfo + - name: Upload uses: actions/upload-artifact@v3 with: name: fallout-ce-macos.dmg - path: build/fallout-ce.dmg + path: build/Fallout Community Edition.dmg retention-days: 7 windows: diff --git a/CMakeLists.txt b/CMakeLists.txt index 10a81c5..f45b796 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -305,16 +305,30 @@ if(APPLE) XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.alexbatalov.fallout-ce" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" ) + + set(MACOSX_BUNDLE_BUNDLE_NAME "${EXECUTABLE_NAME}") + set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout") else() - set_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/macos/Info.plist") - target_sources(${EXECUTABLE_NAME} PUBLIC "os/macos/fallout-ce.icns") - set_source_files_properties("os/macos/fallout-ce.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + set(RESOURCES + "os/macos/fallout-ce.icns" + ) + + target_sources(${EXECUTABLE_NAME} PUBLIC ${RESOURCES}) + set_source_files_properties(${RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + + set_target_properties(${EXECUTABLE_NAME} PROPERTIES + OUTPUT_NAME "Fallout Community Edition" + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/macos/Info.plist" + XCODE_ATTRIBUTE_EXECUTABLE_NAME "${EXECUTABLE_NAME}" + XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.alexbatalov.fallout-ce" + ) + set(MACOSX_BUNDLE_ICON_FILE "fallout-ce.icns") + set(MACOSX_BUNDLE_BUNDLE_NAME "Fallout: Community Edition") + set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout") endif() set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.alexbatalov.fallout-ce") - set(MACOSX_BUNDLE_BUNDLE_NAME "${EXECUTABLE_NAME}") - set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0.0") set(MACOSX_BUNDLE_BUNDLE_VERSION "1.0.0") endif() @@ -342,22 +356,17 @@ if(APPLE) set(CPACK_ARCHIVE_FILE_EXTENSION "ipa") else() install(TARGETS ${EXECUTABLE_NAME} DESTINATION .) - install(CODE " - include(BundleUtilities) - fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app \"\" \"\") - " - COMPONENT Runtime) if (CPACK_BUNDLE_APPLE_CERT_APP) install(CODE " - execute_process(COMMAND codesign --deep --force --options runtime --sign \"${CPACK_BUNDLE_APPLE_CERT_APP}\" ${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app) + execute_process(COMMAND codesign --deep --force --options runtime --sign \"${CPACK_BUNDLE_APPLE_CERT_APP}\" ${CMAKE_BINARY_DIR}/Fallout Community Edition.app) " COMPONENT Runtime) endif() set(CPACK_GENERATOR "DragNDrop") set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK ON) - set(CPACK_PACKAGE_FILE_NAME "fallout-ce") + set(CPACK_PACKAGE_FILE_NAME "Fallout Community Edition") endif() include(CPack) diff --git a/os/macos/Info.plist b/os/macos/Info.plist index 5d5b555..38b9b8d 100644 --- a/os/macos/Info.plist +++ b/os/macos/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - English + en CFBundleDisplayName ${MACOSX_BUNDLE_DISPLAY_NAME} CFBundleExecutable @@ -28,6 +28,8 @@ ${MACOSX_BUNDLE_COPYRIGHT} NSHighResolutionCapable True + LSApplicationCategoryType + public.app-category.role-playing-games LSMinimumSystemVersion 10.11 SDL_FILESYSTEM_BASE_DIR_TYPE