1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Support generation of working Xcode project for signature purposes on MacOS (#15303)

This commit is contained in:
sfence 2024-11-10 19:06:52 +01:00 committed by GitHub
parent ec7738934b
commit e55ba9c390
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 309 additions and 30 deletions

24
util/ci/build_xcode.sh Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash -e
cmake .. \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
-DFREETYPE_LIBRARY=/opt/homebrew/lib/libfreetype.a \
-DGETTEXT_INCLUDE_DIR=/path/to/include/dir \
-DGETTEXT_LIBRARY=/opt/homebrew/lib/libintl.a \
-DLUA_LIBRARY=/opt/homebrew/lib/libluajit-5.1.a \
-DOGG_LIBRARY=/opt/homebrew/lib/libogg.a \
-DVORBIS_LIBRARY=/opt/homebrew/lib/libvorbis.a \
-DVORBISFILE_LIBRARY=/opt/homebrew/lib/libvorbisfile.a \
-DZSTD_LIBRARY=/opt/homebrew/lib/libzstd.a \
-DGMP_LIBRARY=/opt/homebrew/lib/libgmp.a \
-DENABLE_SYSTEM_JSONCPP=OFF \
-DENABLE_LEVELDB=OFF \
-DENABLE_POSTGRESQL=OFF \
-DENABLE_REDIS=OFF \
-DJPEG_LIBRARY=/opt/homebrew/lib/libjpeg.a \
-DPNG_LIBRARY=/opt/homebrew/lib/libpng.a \
-DCMAKE_EXE_LINKER_FLAGS=-lbz2\
-GXcode
xcodebuild -project luanti.xcodeproj -scheme luanti -configuration Release build
xcodebuild -project luanti.xcodeproj -scheme luanti -archivePath ./luanti.xcarchive archive

View file

@ -0,0 +1,3 @@
#!/bin/bash
env > $1

View file

@ -0,0 +1,63 @@
# This is only one working solution I found to be working for normal and Archive builds under Xcode 15.4
# I expect higger sensitivity to Xcode version.
if(DEFINED ENV{INSTALL_ROOT} AND EXISTS "$ENV{INSTALL_ROOT}")
set(RESOURCES_DIR "$ENV{INSTALL_ROOT}/Applications/$ENV{PRODUCT_NAME}.app/Contents/Resources")
else()
set(RESOURCES_DIR "$ENV{TARGET_BUILD_DIR}/$ENV{UNLOCALIZED_RESOURCES_FOLDER_PATH}")
endif()
# Write debug information to a file
#file(WRITE "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "INSTALL_ROOT: $ENV{INSTALL_ROOT}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "RESOURCES_DIR: ${RESOURCES_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "TARGET_BUILD_DIR: $ENV{TARGET_BUILD_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "BUILT_PRODUCTS_DIR: $ENV{BUILT_PRODUCTS_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "SOURCE_ROOT: $ENV{SOURCE_ROOT}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "PRODUCT_NAME: $ENV{PRODUCT_NAME}\n")
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/builtin"
"${RESOURCES_DIR}/builtin"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/client/shaders"
"${RESOURCES_DIR}/client/shaders"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/fonts"
"${RESOURCES_DIR}/fonts"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{PROJECT_FILE_PATH}/../locale"
"${RESOURCES_DIR}/locale"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory
"${RESOURCES_DIR}/$ENV{PRODUCT_NAME}"
)
set(RESOURCE_LUANTI_FILES
"$ENV{SOURCE_ROOT}/README.md"
"$ENV{SOURCE_ROOT}/doc/client_lua_api.md"
"$ENV{SOURCE_ROOT}/doc/lua_api.md"
"$ENV{SOURCE_ROOT}/doc/menu_lua_api.md"
"$ENV{SOURCE_ROOT}/minetest.conf.example"
"$ENV{SOURCE_ROOT}/doc/texture_packs.md"
"$ENV{SOURCE_ROOT}/doc/world_format.md"
)
foreach (file ${RESOURCE_LUANTI_FILES})
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy
"${file}"
"${RESOURCES_DIR}/$ENV{PRODUCT_NAME}/"
)
endforeach()
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/textures/base/pack"
"${RESOURCES_DIR}/textures/base/pack"
)