mirror of https://github.com/AxioDL/metaforce.git
ci: More macOS bundle fixes
This commit is contained in:
parent
30802a447f
commit
f0936a7fb0
|
@ -175,7 +175,7 @@ jobs:
|
|||
build/install/debug.tar.*
|
||||
|
||||
build-ios:
|
||||
name: Build iOS
|
||||
name: Build iOS (AppleClang arm64)
|
||||
runs-on: macos-11
|
||||
|
||||
steps:
|
||||
|
@ -195,10 +195,21 @@ jobs:
|
|||
run: cmake --preset ios-default
|
||||
|
||||
- name: Build
|
||||
run: cmake --build --preset ios-default
|
||||
run: cmake --build --preset ios-default --target install
|
||||
|
||||
- name: Generate IPA
|
||||
run: ci/build-ipa.sh
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-ios-appleclang-arm64
|
||||
path: |
|
||||
build/install/Metaforce.ipa
|
||||
build/install/debug.tar.*
|
||||
|
||||
build-tvos:
|
||||
name: Build tvOS
|
||||
name: Build tvOS (AppleClang arm64)
|
||||
runs-on: macos-11
|
||||
|
||||
steps:
|
||||
|
@ -218,7 +229,18 @@ jobs:
|
|||
run: cmake --preset tvos-default
|
||||
|
||||
- name: Build
|
||||
run: cmake --build --preset tvos-default
|
||||
run: cmake --build --preset tvos-default --target install
|
||||
|
||||
- name: Generate IPA
|
||||
run: ci/build-ipa.sh
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-tvos-appleclang-arm64
|
||||
path: |
|
||||
build/install/Metaforce.ipa
|
||||
build/install/debug.tar.*
|
||||
|
||||
build-windows:
|
||||
name: Build Windows (${{matrix.name}} x86_64)
|
||||
|
@ -302,7 +324,7 @@ jobs:
|
|||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-clang-x86_64
|
||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-${{matrix.preset}}-x86_64
|
||||
path: |
|
||||
${{env.BUILD_DIR}}/install/*.exe
|
||||
${{env.BUILD_DIR}}/install/debug.7z
|
||||
|
|
|
@ -372,6 +372,29 @@ add_subdirectory(gbalink EXCLUDE_FROM_ALL)
|
|||
configure_file(${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_BINARY_DIR}/version.h)
|
||||
|
||||
# Packaging logic
|
||||
function(get_target_output_name target result_var)
|
||||
get_target_property(output_name ${target} OUTPUT_NAME)
|
||||
if (output_name STREQUAL "output_name-NOTFOUND")
|
||||
set(${result_var} "${target}" PARENT_SCOPE)
|
||||
else ()
|
||||
set(${result_var} "${output_name}" PARENT_SCOPE)
|
||||
endif ()
|
||||
endfunction()
|
||||
function(get_target_prefix target result_var)
|
||||
set(${result_var} "" PARENT_SCOPE)
|
||||
if (APPLE)
|
||||
# Have to recreate some bundle logic here, since CMake can't tell us
|
||||
get_target_property(is_bundle ${target} MACOSX_BUNDLE)
|
||||
if (is_bundle)
|
||||
get_target_output_name(${target} output_name)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
set(${result_var} "${output_name}.app/Contents/MacOS/" PARENT_SCOPE)
|
||||
else ()
|
||||
set(${result_var} "${output_name}.app/" PARENT_SCOPE)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
endfunction()
|
||||
list(APPEND BINARY_TARGETS metaforce)
|
||||
set(EXTRA_TARGETS "")
|
||||
if (TARGET crashpad_handler)
|
||||
|
@ -380,20 +403,26 @@ endif ()
|
|||
set(BIN_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
install(TARGETS ${BINARY_TARGETS} ${EXTRA_TARGETS} DESTINATION ${BIN_PREFIX})
|
||||
if (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
||||
foreach (target IN LISTS BINARY_TARGETS)
|
||||
set(DEBUG_FILES_LIST "")
|
||||
foreach (target IN LISTS BINARY_TARGETS EXTRA_TARGETS)
|
||||
get_target_output_name(${target} output_name)
|
||||
if (WIN32)
|
||||
install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${BIN_PREFIX} OPTIONAL)
|
||||
elseif (APPLE)
|
||||
get_target_prefix(${target} target_prefix)
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND rm -fr \"$<TARGET_FILE_NAME:${target}>.dSYM\")")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND dsymutil \"$<TARGET_FILE:${target}>\")")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND strip -S \"$<TARGET_FILE:${target}>\")")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND mv \"$<TARGET_FILE:${target}>.dSYM\" .)")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND dsymutil \"${target_prefix}$<TARGET_FILE_NAME:${target}>\")")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND strip -S \"${target_prefix}$<TARGET_FILE_NAME:${target}>\")")
|
||||
if (NOT target_prefix STREQUAL "")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND mv \"${target_prefix}$<TARGET_FILE_NAME:${target}>.dSYM\" .)")
|
||||
endif ()
|
||||
elseif (UNIX)
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --only-keep-debug ${target} ${target}.dbg)")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --strip-debug --add-gnu-debuglink=${target}.dbg ${target})")
|
||||
get_target_prefix(${target} target_prefix)
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --only-keep-debug \"${target_prefix}$<TARGET_FILE_NAME:${target}>\" \"${target_prefix}$<TARGET_FILE_NAME:${target}>.dbg\")")
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --strip-debug --add-gnu-debuglink=$<TARGET_FILE_NAME:${target}>.dbg \"${target_prefix}$<TARGET_FILE_NAME:${target}>\")")
|
||||
endif ()
|
||||
list(APPEND DEBUG_FILES_LIST "${output_name}")
|
||||
endforeach ()
|
||||
set(DEBUG_FILES_LIST ${BINARY_TARGETS})
|
||||
if (WIN32)
|
||||
list(TRANSFORM DEBUG_FILES_LIST APPEND ".pdb")
|
||||
list(JOIN DEBUG_FILES_LIST " " DEBUG_FILES)
|
||||
|
@ -408,3 +437,13 @@ if (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
|||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND tar -I \"xz -9 -T0\" -cvf \"${CMAKE_INSTALL_PREFIX}/debug.tar.xz\" ${DEBUG_FILES})")
|
||||
endif ()
|
||||
endif ()
|
||||
foreach (target IN LISTS BINARY_TARGETS)
|
||||
get_target_prefix(${target} target_prefix)
|
||||
foreach (extra_target IN LISTS EXTRA_TARGETS)
|
||||
get_target_prefix(${extra_target} extra_prefix)
|
||||
if (NOT "${target_prefix}" STREQUAL "${extra_prefix}")
|
||||
# Copy extra target to target prefix
|
||||
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND cp \"${extra_prefix}$<TARGET_FILE_NAME:${extra_target}>\" \"${target_prefix}$<TARGET_FILE_NAME:${extra_target}>\")")
|
||||
endif ()
|
||||
endforeach ()
|
||||
endforeach ()
|
||||
|
|
|
@ -244,7 +244,6 @@ if (APPLE)
|
|||
elseif (IOS)
|
||||
set(RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/platforms/ios)
|
||||
set(INFO_PLIST ${RESOURCE_DIR}/Info.plist.in)
|
||||
message("Using INFO_PLIST ${INFO_PLIST}")
|
||||
file(GLOB_RECURSE RESOURCE_FILES "${RESOURCE_DIR}/Base.lproj/*")
|
||||
list(APPEND RESOURCE_FILES
|
||||
${RESOURCE_DIR}/Assets.car
|
||||
|
@ -255,7 +254,7 @@ if (APPLE)
|
|||
set(INFO_PLIST ${RESOURCE_DIR}/Info.plist.in)
|
||||
set(RESOURCE_FILES ${RESOURCE_DIR}/mainicon.icns)
|
||||
endif ()
|
||||
target_sources(metaforce PRIVATE ${INFO_PLIST} ${RESOURCE_FILES})
|
||||
target_sources(metaforce PRIVATE ${RESOURCE_FILES})
|
||||
# Add to resources, preserving directory structure
|
||||
foreach (FILE ${RESOURCE_FILES})
|
||||
file(RELATIVE_PATH NEW_FILE "${RESOURCE_DIR}" ${FILE})
|
||||
|
@ -268,9 +267,10 @@ if (APPLE)
|
|||
MACOSX_BUNDLE TRUE
|
||||
MACOSX_BUNDLE_INFO_PLIST ${INFO_PLIST}
|
||||
MACOSX_BUNDLE_BUNDLE_NAME Metaforce
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER dev.test.metaforce
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER com.axiodl.Metaforce
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION "${METAFORCE_VERSION_STRING}"
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "${METAFORCE_SHORT_VERSION_STRING}"
|
||||
OUTPUT_NAME Metaforce
|
||||
)
|
||||
endif ()
|
||||
if (WINDOWS_STORE)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash -ex
|
||||
cd build/install
|
||||
for i in metaforce crashpad_handler; do
|
||||
codesign --timestamp --options runtime -s "$CODESIGN_IDENT" metaforce.app/Contents/MacOS/$i
|
||||
for i in Metaforce crashpad_handler; do
|
||||
codesign --timestamp --options runtime -s "$CODESIGN_IDENT" Metaforce.app/Contents/MacOS/$i
|
||||
done
|
||||
create-dmg metaforce.app --identity="$CODESIGN_IDENT" .
|
||||
create-dmg Metaforce.app --identity="$CODESIGN_IDENT" .
|
||||
xcrun altool -t osx -f *.dmg --primary-bundle-id com.axiodl.Metaforce \
|
||||
--notarize-app -u "$ASC_USERNAME" -p "$ASC_PASSWORD" --team-id "$ASC_TEAM_ID"
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash -ex
|
||||
cd build/install
|
||||
rm -fr Payload
|
||||
mkdir Payload
|
||||
cp -r Metaforce.app Payload
|
||||
zip -r Metaforce.zip Payload
|
||||
mv Metaforce.zip Metaforce.ipa
|
Loading…
Reference in New Issue