diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 31b47e55..f19f587e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,9 +79,6 @@ jobs: run: | cmake --build build - - name: Prepare artifact - run: mv bin/Cemu_release bin/Cemu - - name: Upload artifact uses: actions/upload-artifact@v6 with: @@ -183,9 +180,6 @@ jobs: cd build cmake --build . --config ${{ env.BUILD_MODE }} - - name: Prepare artifact - run: Rename-Item bin/Cemu_release.exe Cemu.exe - - name: Build NSIS Installer shell: cmd run: | @@ -230,7 +224,7 @@ jobs: - name: "Install system dependencies" run: | brew update - brew install ninja nasm automake libtool + brew install nasm automake libtool - name: "Install molten-vk" run: | @@ -279,10 +273,7 @@ jobs: - name: Prepare artifact run: | mkdir bin/Cemu_app - mv bin/Cemu_release.app bin/Cemu_app/Cemu.app - mv bin/Cemu_app/Cemu.app/Contents/MacOS/Cemu_release bin/Cemu_app/Cemu.app/Contents/MacOS/Cemu - sed -i '' 's/Cemu_release/Cemu/g' bin/Cemu_app/Cemu.app/Contents/Info.plist - chmod a+x bin/Cemu_app/Cemu.app/Contents/MacOS/{Cemu,update.sh} + mv bin/Cemu.app bin/Cemu_app/Cemu.app ln -s /Applications bin/Cemu_app/Applications hdiutil create ./bin/tmp.dmg -ov -volname "Cemu" -fs HFS+ -srcfolder "./bin/Cemu_app" hdiutil convert ./bin/tmp.dmg -format UDZO -o bin/Cemu.dmg diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e73d5f1f..99b63359 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -79,22 +79,29 @@ if(WIN32) ) endif() +string(TIMESTAMP CURRENT_YEAR "%Y" UTC) + set_property(TARGET CemuBin PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") set_property(TARGET CemuBin PROPERTY WIN32_EXECUTABLE $>) -set(OUTPUT_NAME "Cemu_$>") +if(CMAKE_BUILD_TYPE STREQUAL "release") + set(OUTPUT_NAME "Cemu") +else() + set(OUTPUT_NAME "Cemu_$>") +endif() if (MACOS_BUNDLE) set_property(TARGET CemuBin PROPERTY MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/resource/MacOSXBundleInfo.plist.in") + set(ENTITLEMENTS_FILE "${CMAKE_SOURCE_DIR}/src/resource/cemu.macos.entitlements") set(RESOURCE_FILES "${CMAKE_SOURCE_DIR}/src/resource/cemu.icns") target_sources(CemuBin PRIVATE "${RESOURCE_FILES}") set(MACOSX_BUNDLE_ICON_FILE "cemu.icns") set(MACOSX_BUNDLE_GUI_IDENTIFIER "info.cemu.Cemu") - set(MACOSX_BUNDLE_BUNDLE_NAME "Cemu") + set(MACOSX_BUNDLE_BUNDLE_NAME "${OUTPUT_NAME}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${EMULATOR_VERSION_MAJOR}.${EMULATOR_VERSION_MINOR}.${EMULATOR_VERSION_PATCH}") set(MACOSX_BUNDLE_BUNDLE_VERSION "${EMULATOR_VERSION_MAJOR}.${EMULATOR_VERSION_MINOR}.${EMULATOR_VERSION_PATCH}") - set(MACOSX_BUNDLE_COPYRIGHT "Copyright © 2024 Cemu Project") + set(MACOSX_BUNDLE_COPYRIGHT "Copyright © ${CURRENT_YEAR} Cemu Project") set(MACOSX_BUNDLE_CATEGORY "public.app-category.games") set(MACOSX_MINIMUM_SYSTEM_VERSION "13.4") @@ -130,7 +137,9 @@ if (MACOS_BUNDLE) COMMAND ${CMAKE_COMMAND} ARGS -E copy "${LIBUSB_PATH}" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libusb-1.0.0.dylib" COMMAND ${CMAKE_COMMAND} ARGS -E copy "${CMAKE_SOURCE_DIR}/src/resource/update.sh" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/update.sh" COMMAND bash -c "install_name_tool -add_rpath @executable_path/../Frameworks ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}" - COMMAND bash -c "install_name_tool -change ${LIBUSB_PATH} @executable_path/../Frameworks/libusb-1.0.0.dylib ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}") + COMMAND install_name_tool -change @rpath/libusb-1.0.0.dylib @executable_path/../Frameworks/libusb-1.0.0.dylib ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME} + COMMAND chmod a+x ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/update.sh + COMMAND codesign --entitlements ${ENTITLEMENTS_FILE} --force --deep --preserve-metadata=entitlements,requirements,flags,runtime --sign - --timestamp --options runtime ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}) else() if(APPLE) find_library(MOLTENVK_LIBRARY diff --git a/src/resource/cemu.macos.entitlements b/src/resource/cemu.macos.entitlements new file mode 100644 index 00000000..0017e1a9 --- /dev/null +++ b/src/resource/cemu.macos.entitlements @@ -0,0 +1,13 @@ + + + + com.apple.security.cs.disable-library-validation + + com.apple.security.get-task-allow + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + +