diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -1,3 +1,7 @@
syntax:glob
cmake-build
-
+Aquaria.app
+CMakeFiles
+CMakeCache.txt
+Makefile
+*.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,8 @@
SET(SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/Aquaria)
SET(LUADIR ${CMAKE_CURRENT_SOURCE_DIR}/Aquaria/lua-5.1.4)
SET(LUASRCDIR ${LUADIR}/src)
+SET(SCRIPTDIR ${CMAKE_CURRENT_SOURCE_DIR}/game_scripts)
+SET(MACOSXDIR ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX)
# Find SDL or use the included library if applicable
OPTION(AQUARIA_INTERNAL_SDL "Always use included SDL library" FALSE)
@@ -40,7 +42,9 @@
set(SDLDIR "${BBGEDIR}/SDL12")
set(SDL_INCLUDE_DIR "${SDLDIR}/include")
message(STATUS "Using internal copy of SDL")
- set(SDL_LIBRARY "${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib;${SDLDIR}/lib/macosx/libSDLmain.a")
+ set(SDLMAIN_LIBRARY ${SDLDIR}/lib/macosx/libSDLmain.a)
+ set(SDLREST_LIBRARY ${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib)
+ set(SDL_LIBRARY ${SDLMAIN_LIBRARY} ${SDLREST_LIBRARY})
elseif(WIN32)
if(MSVC)
set(SDLDIR "${BBGEDIR}/SDL12")
@@ -463,9 +467,41 @@
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework Cocoa")
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework OpenGL")
SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework OpenAL")
- SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "${SDL_LIBRARY}")
- SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "${OPENAL_LIBRARY}")
+ SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${SDL_LIBRARY})
+ SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${OPENAL_LIBRARY})
+ SET_TARGET_PROPERTIES(
+ aquaria
+ PROPERTIES OUTPUT_NAME Aquaria
+ MACOSX_BUNDLE TRUE
+ MACOSX_BUNDLE_INFO_PLIST "${MACOSXDIR}/Info.plist"
+ )
TARGET_LINK_LIBRARIES(aquaria ${OPTIONAL_LIBS})
+
+ # Set up bundle paths
+ GET_TARGET_PROPERTY(OUTPUT_EXECUTABLE aquaria LOCATION)
+ GET_FILENAME_COMPONENT(EXECUTABLE_PATH "${OUTPUT_EXECUTABLE}" PATH)
+ GET_FILENAME_COMPONENT(BUNDLE_ROOT "${EXECUTABLE_PATH}/../.." ABSOLUTE)
+
+ # Copy SDL library to bundle
+ GET_FILENAME_COMPONENT(FRAMEWORKS_PATH "${BUNDLE_ROOT}/Contents/Frameworks" ABSOLUTE)
+ GET_FILENAME_COMPONENT(SDL_LIBRARY_NAME "${SDLREST_LIBRARY}" NAME)
+ SET(OLD_SDL_REF "@executable_path/${SDL_LIBRARY_NAME}")
+ SET(NEW_SDL_REF "@executable_path/../Frameworks/${SDL_LIBRARY_NAME}")
+ ADD_CUSTOM_COMMAND(
+ TARGET aquaria POST_BUILD
+ COMMAND mkdir ${FRAMEWORKS_PATH}
+ COMMAND cp ${SDLREST_LIBRARY} ${FRAMEWORKS_PATH}
+ COMMAND install_name_tool -change ${OLD_SDL_REF} ${NEW_SDL_REF} ${OUTPUT_EXECUTABLE}
+ VERBATIM
+ )
+
+ # Copy resources to bundle
+ ADD_CUSTOM_COMMAND(
+ TARGET aquaria POST_BUILD
+ COMMAND cp -nR ${SCRIPTDIR}/_mods ${BUNDLE_ROOT}
+ COMMAND cp -nR ${SCRIPTDIR}/scripts ${BUNDLE_ROOT}
+ VERBATIM
+ )
ELSE(MACOSX)
TARGET_LINK_LIBRARIES(aquaria ${SDL_LIBRARY} ${OPENAL_LIBRARY})
ENDIF(MACOSX)
diff --git a/MacOSX/Info.plist b/MacOSX/Info.plist
new file mode 100644
--- /dev/null
+++ b/MacOSX/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ Aquaria
+ CFBundleIdentifier
+ com.bit-blot.aquaria
+ CFBundleIconFile
+ aquaria.icns
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ Aqra
+ CFBundleShortVersionString
+ 1.1.3
+ CSResourcesFileMapped
+
+ CFBundleName
+ Aquaria
+
+
diff --git a/MacOSX/copy_resources b/MacOSX/copy_resources
new file mode 100755
--- /dev/null
+++ b/MacOSX/copy_resources
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]; then
+ echo "Copies resources from one Aquaria bundle to another."
+ echo "Usage: $0 "
+else
+ # Copy files and directories individually. We do not want to copy scripts,
+ # mods, or SDL library to new bundle; that is done by the build process.
+ cp -nR $1/Contents/Resources $2/Contents
+ cp -nR $1/ambrosia $2
+ cp -nR $1/config $2
+ cp -nR $1/data $2
+ cp -nR $1/default-1.xml $2
+ cp -nR $1/docs $2
+ cp -nR $1/gfx $2
+ cp -nR $1/maptemplates $2
+ cp -nR $1/mus $2
+ cp -nR $1/README-macosx.txt $2
+ cp -nR $1/sfx $2
+ cp -nR $1/usersettings.xml $2
+ cp -nR $1/vox $2
+fi