A few tweaks and tooling to make the mac app bundle building easier

- cmake tweak to find GETTEXT_LIBRARY on Darwin/APPLE

- added voxelands client and server man pages

- cmake tweak to have OSX_ARCHITECTURE string on app bundle

- set minimum required OS X version to 10.6 in Info.plist

- script to change GIT_VERSION in Info.plist

- script to create icns from voxelands.svg file (in case if it was updated)

- execute scripts before building the mac app bundle

- changed the description to use just the first paragraph of the about
page
This commit is contained in:
Maverick JS 2014-09-25 18:16:02 +02:00 committed by darkrose
parent 537aabfb5a
commit c936cc6a3a
8 changed files with 178 additions and 4 deletions

View File

@ -106,7 +106,7 @@ elseif(APPLE)
# TODO
# see http://cmake.org/Wiki/CMake:CPackPackageGenerators#Bundle_.28OSX_only.29
#
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-osx")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-osx-${CMAKE_OSX_ARCHITECTURES}")
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_SOURCE_DIR}/misc/mac/voxelands.icns)
set(CPACK_BUNDLE_NAME ${PROJECT_NAME})
set(CPACK_BUNDLE_ICON ${CPACK_PACKAGE_ICON})

View File

@ -52,6 +52,9 @@ IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
IF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
SET(GETTEXT_LIBRARY "intl")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(GETTEXT_LIBRARY "${CUSTOM_GETTEXT_PATH}/lib/libintl.dylib")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(GETTEXT_FOUND TRUE)
ENDIF(WIN32)
ENDIF()

65
doc/voxelands-server.6 Normal file
View File

@ -0,0 +1,65 @@
.\" Voxelands man page
.TH "voxelandsserver" "6" "1408.00" "Ye Myat Kaung 'Maverick' <mavjs@mavjs.org>" "Games"
.SH NAME
voxelandsserver \- The Fun-Focused Free Software Voxel World Game
.SH SYNOPSIS
.B voxelandsserver
[options]
.SH DESCRIPTION
.B Voxelands
is a sandbox construction game based on Minetest, which was Inspired by earlier "voxel world" games such as Infiniminer. Gameplay puts players in a fully destructible 3D game world where they can place and dig numerous types of blocks, items and creatures using a variety of tools. Inside the game world players can build structures, artworks and anything else their creativity can think of on multiplayer servers and singleplayer worlds across multiple game modes.
.SH OPTIONS
.TP
\-\--address <value>
Address to connect to
.TP
\-\--config <value>
Load configuration from specified file
.TP
\-\--disable-unittests
Disable unittests
.TP
\-\--enable-unittests
Enable unittests
.TP
\-\--help
Show allowed options
.TP
\-\--info-on-stderr
Print more information on standard error
.TP
\-\--map-dir <value>
Load map from specified directory
.TP
\-\--port <value>
Set network port (UDP) to use
.TP
\-\--random-input
Enable random user input, for testing
.TP
\-\--server
Run server directly
.TP
\-\--speedtests
Run speed tests
.SH BUGS
Please report all bugs at <http://forum.voxelands.com/>
.SH AUTHORS
.PP
Lisa 'darkrose' Milne <lisa@ltmnet.com>
and contributors: sdzen, MichaelEh?, Pentium44, Jordach, Menche, MavJS, tiemay.
.PP
This man page was written by
Ye Myat Kaung 'Maverick' <mavjs@mavjs.org> for the Voxelands community.
.SH WWW
http://voxelands.com
.SH "SEE ALSO"
.BR voxelands(6)

65
doc/voxelands.6 Normal file
View File

@ -0,0 +1,65 @@
.\" Voxelands man page
.TH "voxelands" "6" "1408.00" "Ye Myat Kaung 'Maverick' <mavjs@mavjs.org>" "Games"
.SH NAME
voxelands \- The Fun-Focused Free Software Voxel World Game
.SH SYNOPSIS
.B voxelands
[options]
.SH DESCRIPTION
.B Voxelands
is a sandbox construction game based on Minetest, which was Inspired by earlier "voxel world" games such as Infiniminer. Gameplay puts players in a fully destructible 3D game world where they can place and dig numerous types of blocks, items and creatures using a variety of tools. Inside the game world players can build structures, artworks and anything else their creativity can think of on multiplayer servers and singleplayer worlds across multiple game modes.
.SH OPTIONS
.TP
\-\--address <value>
Address to connect to
.TP
\-\--config <value>
Load configuration from specified file
.TP
\-\--disable-unittests
Disable unittests
.TP
\-\--enable-unittests
Enable unittests
.TP
\-\--help
Show allowed options
.TP
\-\--info-on-stderr
Print more information on standard error
.TP
\-\--map-dir <value>
Load map from specified directory
.TP
\-\--port <value>
Set network port (UDP) to use
.TP
\-\--random-input
Enable random user input, for testing
.TP
\-\--server
Run server directly
.TP
\-\--speedtests
Run speed tests
.SH BUGS
Please report all bugs at <http://forum.voxelands.com/>
.SH AUTHORS
.PP
Lisa 'darkrose' Milne <lisa@ltmnet.com>
and contributors: sdzen, MichaelEh?, Pentium44, Jordach, Menche, MavJS, tiemay.
.PP
This man page was written by
Ye Myat Kaung 'Maverick' <mavjs@mavjs.org> for the Voxelands community.
.SH WWW
http://voxelands.com
.SH "SEE ALSO"
.BR voxelandsserver(6)

View File

@ -16,8 +16,6 @@
<string>voxelands</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>GIT_VERSION</string>
<key>CFBundleSignature</key>
<string>x86_64</string>
<key>CFBundleVersion</key>
@ -25,7 +23,7 @@
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<string>10.6.0</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>

27
misc/mac/makeicns.sh Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env sh
set -x
tmp="`pwd`"
proj_dir=`dirname "$tmp"`
mac_dir="$proj_dir/misc/mac"
iconset_dir="$mac_dir/voxelands.iconset"
orig_img="$mac_dir/voxelands-1024x1024.png"
sizes=(16 32 64 128 256 512)
sips=$(which sips)
iconutil=$(which iconutil)
inkscape="/Applications/Inkscape.app/Contents/Resources/bin/inkscape"
if [ ! -f "$mac_dir"/voxelands-1024x1024.png ]; then
"$inkscape" --export-png "$orig_img" -w 1024 -h 1024 "$proj_dir"/voxelands.svg
fi
mkdir "$iconset_dir"
"$sips" -z "${sizes[0]}" "${sizes[0]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[0]}"x"${sizes[0]}".png
"$sips" -z "${sizes[1]}" "${sizes[1]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[0]}"x"${sizes[0]}"@2x.png
"$sips" -z "${sizes[1]}" "${sizes[1]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[1]}"x"${sizes[1]}".png
"$sips" -z "${sizes[2]}" "${sizes[2]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[1]}"x"${sizes[1]}"@2x.png
"$sips" -z "${sizes[3]}" "${sizes[3]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[3]}"x"${sizes[3]}".png
"$sips" -z "${sizes[4]}" "${sizes[4]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[3]}"x"${sizes[3]}"@2x.png
"$sips" -z "${sizes[4]}" "${sizes[4]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[4]}"x"${sizes[4]}".png
"$sips" -z "${sizes[5]}" "${sizes[5]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[4]}"x"${sizes[4]}"@2x.png
"$sips" -z "${sizes[5]}" "${sizes[5]}" "$orig_img" --out "$iconset_dir"/icon_"${sizes[5]}"x"${sizes[5]}".png
cp "$orig_img" "$iconset_dir"/icon_"${sizes[5]}"x"${sizes[5]}"@2x.png
"$iconutil" -c icns "$iconset_dir"

8
misc/mac/makeplist.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env sh
tmp="`pwd`"
proj_dir=`dirname "$tmp"`
mac_dir="$proj_dir/misc/mac"
plist="$mac_dir/Info.plist"
sed=$(which sed)
$sed -i -e "s/GIT_VERSION/$1/" "$plist"

View File

@ -426,6 +426,14 @@ if(BUILD_CLIENT)
${CMAKE_SOURCE_DIR}/misc/mac/${xib}.xib
COMMENT "Compiling ${CMAKE_SOURCE_DIR}/${xib}.xib")
endforeach()
# Make icns from svg, just in case it was updated
add_custom_command (TARGET ${PROJECT_NAME} PRE_BUILD
COMMAND ${CMAKE_SOURCE_DIR}/misc/mac/makeicns.sh
COMMENT "making ${PROJECT_NAME}.icns file from ${PROJECT_NAME}.svg")
# Change to proper version and mac osx deployment version
add_custom_command (TARGET ${PROJECT_NAME} PRE_BUILD
COMMAND ${CMAKE_SOURCE_DIR}/misc/mac/makeplist.sh ${VERSION_STRING}
COMMENT "Change Info.plist according to provided CMAKE variables")
endif(APPLE)
endif(BUILD_CLIENT)