[Tux4kids-commits] r469 - in tuxmath/trunk: . data doc macosx src
tholy-guest at alioth.debian.org
tholy-guest at alioth.debian.org
Thu Apr 24 14:52:30 UTC 2008
Author: tholy-guest
Date: 2008-04-24 14:52:29 +0000 (Thu, 24 Apr 2008)
New Revision: 469
Added:
tuxmath/trunk/macosx/CMakeLists.txt
Modified:
tuxmath/trunk/CMakeLists.txt
tuxmath/trunk/data/CMakeLists.txt
tuxmath/trunk/doc/CMakeLists.txt
tuxmath/trunk/doc/INSTALL.txt
tuxmath/trunk/src/CMakeLists.txt
Log:
A full CMake build under MacOSX, with internationalization disabled.
This hasn't been tested, because I only have command-line access and
can't run graphical programs.
Modified: tuxmath/trunk/CMakeLists.txt
===================================================================
--- tuxmath/trunk/CMakeLists.txt 2008-04-24 12:03:11 UTC (rev 468)
+++ tuxmath/trunk/CMakeLists.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -39,13 +39,13 @@
## Set up OS-specific path & build information
if (APPLE)
- set(TUXMATH_MACOSX_BUNDLE_NAME ${PROJECT_NAME})
+ set(TUXMATH_MACOSX_BUNDLE_NAME tuxmath)
set(TUXMATH_DATA_PREFIX ${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Resources)
set(LOCALE_DIR ${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Resources/locale)
# OS X SDL Framework does not have a pre-built libSDLmain, so we
# instead include SDLmain.m as a source file
- set (TUXMATH_EXTRA_INCLUDE ${tuxmath_SOURCE_DIR}/macosx)
- set (TUXMATH_EXTRA_SRC ${tuxmath_SOURCE_DIR}/macosx/SDLMain.m)
+ set (TUXMATH_EXTRA_INCLUDE ${TuxMath_SOURCE_DIR}/macosx)
+ set (TUXMATH_EXTRA_SRC ${TuxMath_SOURCE_DIR}/macosx/SDLMain.m)
elseif (UNIX)
# A non-apple Unix (Linux, Solaris, etc.)
# This is where one would test for installed/relocatable, if that
@@ -53,28 +53,30 @@
set (TUXMATH_DATA_PREFIX ${CMAKE_INSTALL_PREFIX}/share/tuxmath)
set (LOCALE_DIR ${CMAKE_INSTALL_PREFIX}/share/locale)
endif (APPLE)
+message("TDP ${TUXMATH_DATA_PREFIX}")
+
## Decide on whether we're going to build with internationalization
# We can't build with internationalization unless the build computer
# supports msgfmt
find_package(MSGFMT)
-if (NOT DEFINED TUXMATH_NLS OR NOT MSGFMT_FOUND)
- # You can disable NLS with -DTUXMATH_NLS=false
- set(TUXMATH_NLS ${MSGFMT_FOUND})
-endif (NOT DEFINED TUXMATH_NLS OR NOT MSGFMT_FOUND)
-if (NOT TUXMATH_NLS)
+if (NOT DEFINED ENABLE_NLS OR NOT MSGFMT_FOUND)
+ # You can disable NLS with -DENABLE_NLS=false
+ set(ENABLE_NLS ${MSGFMT_FOUND})
+endif (NOT DEFINED ENABLE_NLS OR NOT MSGFMT_FOUND)
+if (NOT ENABLE_NLS)
message("Internationalization disabled")
-endif (NOT TUXMATH_NLS)
+endif (NOT ENABLE_NLS)
# Even if the build computer supports gettext/msgfmt, we may not be
# able to guarantee that the computers on which it is installed provides
# runtime support for gettext. So we may have to build gettext.
-if (TUXMATH_NLS)
+if (ENABLE_NLS)
if (APPLE)
set(TUXMATH_BUILD_INTL true)
endif (APPLE)
-else (TUXMATH_NLS)
+else (ENABLE_NLS)
set(TUXMATH_BUILD_INTL false) # No point in building intl if no NLS
-endif (TUXMATH_NLS)
+endif (ENABLE_NLS)
## Run configure checks
@@ -87,9 +89,9 @@
add_subdirectory(src)
add_subdirectory(data)
add_subdirectory(doc)
-if (TUXMATH_NLS)
+if (ENABLE_NLS)
add_subdirectory(po)
-endif (TUXMATH_NLS)
+endif (ENABLE_NLS)
if (TUXMATH_BUILD_INTL)
set(INTL_BINARY_DIR ${CMAKE_BINARY_DIR}/intl)
set(INTL_SOURCE_DIR ${CMAKE_SOURCE_DIR}/intl)
@@ -98,15 +100,10 @@
add_subdirectory(intl)
endif (TUXMATH_BUILD_INTL)
-## Copy any needed libraries to the installation target
+message("TMBD ${TuxMath_BINARY_DIR}")
+message("TMBN ${TUXMATH_MACOSX_BUNDLE_NAME}")
+
if (APPLE)
- macro (copyFramework headerDir destDir)
- string(REPLACE "/Headers" "" FRAMEWORK_SOURCE_DIR ${headerDir})
- install(DIRECTORY ${FRAMEWORK_SOURCE_DIR} DESTINATION ${destDir})
- endmacro(copyFramework)
- set(FRAMEWORK_DEST_DIR ${tuxmath_BINARY_DIR}/src/${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Frameworks)
- copyFramework(${SDL_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
- copyFramework(${SDLMIXER_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
- copyFramework(${SDLIMAGE_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
- copyFramework(${SDLTTF_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ add_subdirectory(macosx)
endif (APPLE)
+
Modified: tuxmath/trunk/data/CMakeLists.txt
===================================================================
--- tuxmath/trunk/data/CMakeLists.txt 2008-04-24 12:03:11 UTC (rev 468)
+++ tuxmath/trunk/data/CMakeLists.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -5,13 +5,13 @@
if (APPLE)
# The MACOSX_PACKAGE_LOCATION source file property doesn't seem to
# work, so just do this by an explicit install command.
- set (DESTDIR "${tuxmath_BINARY_DIR}/src/${DATA_PREFIX}")
+ set (DESTDIR "${TuxMath_BINARY_DIR}/src/${TUXMATH_DATA_PREFIX}")
# Install the icon file in the proper location
install (FILES images/icons/tuxmath.icns
DESTINATION ${DESTDIR})
else (APPLE)
# This sets it relative to the install location (usually /usr/local/)
- set (DESTDIR "share/tuxmath")
+ set (DESTDIR "${TUXMATH_DATA_PREFIX}")
endif (APPLE)
install (DIRECTORY .
DESTINATION ${DESTDIR}
Modified: tuxmath/trunk/doc/CMakeLists.txt
===================================================================
--- tuxmath/trunk/doc/CMakeLists.txt 2008-04-24 12:03:11 UTC (rev 468)
+++ tuxmath/trunk/doc/CMakeLists.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -4,7 +4,7 @@
if (APPLE)
# The MACOSX_PACKAGE_LOCATION source file property doesn't seem to
# work, so just do this by an explicit install command.
- set (DESTDIR "${tuxmath_BINARY_DIR}/src/${DATA_PREFIX}/doc")
+ set (DESTDIR "${TuxMath_BINARY_DIR}/src/${TUXMATH_DATA_PREFIX}/doc")
else (APPLE)
# This sets it relative to the install location (usually /usr/local/)
set (DESTDIR "doc/tuxmath")
Modified: tuxmath/trunk/doc/INSTALL.txt
===================================================================
--- tuxmath/trunk/doc/INSTALL.txt 2008-04-24 12:03:11 UTC (rev 468)
+++ tuxmath/trunk/doc/INSTALL.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -350,4 +350,20 @@
Then you can do a
make install
-if you want to install. A "make dmg" command will appear shortly (I hope).
+if you want to install.
+
+UPDATE: the above approach works on Linux, but not currently on MacOSX
+because the config looks for the SDL files, and can't find them when
+installed as Framekworks. :-(.
+
+So, for now the only approach is to disable internationalization on
+MacOSX. This means that automake isn't needed. Just do this:
+
+mkdir build-cmake
+cd build-cmake
+/opt/local/bin/cmake ../trunk -DENABLE_NLS=false
+make
+make install
+
+TuxMath.dmg and TuxMathAdmin.dmg should appear in this build directory.
+
Added: tuxmath/trunk/macosx/CMakeLists.txt
===================================================================
--- tuxmath/trunk/macosx/CMakeLists.txt (rev 0)
+++ tuxmath/trunk/macosx/CMakeLists.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -0,0 +1,18 @@
+## Platform-specific installation material
+if (APPLE)
+ # Copy any needed libraries to the installation target
+ macro (copyFramework headerDir destDir)
+ string(REPLACE "/Headers" "" FRAMEWORK_SOURCE_DIR ${headerDir})
+ install(DIRECTORY ${FRAMEWORK_SOURCE_DIR} DESTINATION ${destDir})
+ endmacro(copyFramework)
+ set(FRAMEWORK_DEST_DIR ${TuxMath_BINARY_DIR}/src/${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Frameworks)
+ copyFramework(${SDL_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLMIXER_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLIMAGE_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLTTF_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+
+ # Make the disk image
+ install(CODE "execute_process(COMMAND hdiutil create -ov -srcfolder ${CMAKE_BINARY_DIR}/src/tuxmath.app -volname TuxMath -imagekey zlib-level=6 ${CMAKE_BINARY_DIR}/TuxMath.dmg)")
+ install(CODE "execute_process(COMMAND hdiutil create -ov -srcfolder ${CMAKE_BINARY_DIR}/src/tuxmathadmin.app -volname TuxMathAdmin -imagekey zlib-level=6 ${CMAKE_BINARY_DIR}/TuxMathAdmin.dmg)")
+endif (APPLE)
+
Modified: tuxmath/trunk/src/CMakeLists.txt
===================================================================
--- tuxmath/trunk/src/CMakeLists.txt 2008-04-24 12:03:11 UTC (rev 468)
+++ tuxmath/trunk/src/CMakeLists.txt 2008-04-24 14:52:29 UTC (rev 469)
@@ -19,9 +19,11 @@
setup.c
titlescreen.c
tuxmath.c
- ${EXTRA_SRC}
+ ${TUXMATH_EXTRA_SRC}
)
+message("${SOURCES_TUXMATH}")
+
# tuxmathadmin
set(SOURCES_TUXMATHADMIN
tuxmathadmin.c
@@ -51,11 +53,14 @@
endif (NOT APPLE)
## Include files
-#configure_file(${TuxMath_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
-# For the moment, this doesn't work: you have to run automake's
-# "configure" and then copy config.h into the build directory
-check_include_file(config.h HAVE_CONFIG_H REQUIRED)
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${SDL_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR} ${EXTRA_INCLUDES})
+if (NOT ENABLE_NLS)
+ # If you want internationalization, this doesn't work: you have to
+ # run automake's "configure" and then copy config.h into the build
+ # directory
+ configure_file(${TuxMath_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+endif (NOT ENABLE_NLS)
+#check_include_file(config.h HAVE_CONFIG_H REQUIRED)
+include_directories(${CMAKE_CURRENT_BINARY_DIR} ${SDL_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR} ${TUXMATH_EXTRA_INCLUDES})
## OSX
# Build universal binaries on OSX
More information about the Tux4kids-commits
mailing list