[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