diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index 57cceff62..f47df0c46 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -29,6 +29,20 @@ ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) ##install part +#extracting the current version... +EXECUTE_PROCESS( + COMMAND /usr/bin/sed + -n -e "s/.*glestVersionString= \"v\\\(.*\\\)\";.*/\\1/p" + game_util.cpp + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/source/glest_game/facilities" + OUTPUT_VARIABLE MEGAGLEST_VERSION ) + +#for some reason the MEGAGLEST_VERSION can containts return like thus remove it +STRING(REGEX REPLACE "\n" "" MEGAGLEST_VERSION "${MEGAGLEST_VERSION}") + +set(CPACK_PACKAGE_FILE_NAME MegaGlest-${MEGAGLEST_VERSION}) + +CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") include (InstallRequiredSystemLibraries) @@ -37,132 +51,27 @@ set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/code_license.txt") set (CPACK_GENERATOR Bundle) set (CPACK_BUNDLE_NAME "MegaGlest") -set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/Debug/glest.bin") +set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/Release/glest.bin") set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist") +set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") +#set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist.template") INSTALL(FILES ${LUA_LIBRARIES} DESTINATION ../Frameworks - ) +) + +#the SDL_LIBRARY is seen as a framework thus we need to remove the suffix... +STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}") + INSTALL(DIRECTORY ${OGG_LIBRARY} ${XERCESC_LIBRARY} ${VORBIS_LIBRARY} - ${SDL_LIBRARY} + ${SDL_LIBRARY_DIR} + ${PNG_LIBRARY} DESTINATION ../Frameworks ) include (CPack) -# Set defaults for Universal Binaries. We want 32-bit Intel/PPC on 10.4 -# and 32/64-bit Intel/PPC on >= 10.5. Anything <= 10.3 doesn't support. -# These are just defaults/recommendations, but how we want to build -# out of the box. But the user needs to be able to change these options. -# So we must only set the values the first time CMake is run, or we -# will overwrite any changes the user sets. -# FORCE is used because the options are not reflected in the UI otherwise. -# Seems like a good place to add version specific compiler flags too. -IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - IF(EXISTS /Developer/SDKs/MacOSX10.6.sdk) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - - ELSEIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk) - # 64-bit compiles are not supported with Carbon. We should enable - # 64-bit compilation by default once osgviewer has been - # rewritten with Cocoa. - #SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - ELSE() - # No Universal Binary support - # Should break down further to set the -mmacosx-version-min, - # but the SDK detection is too unreliable here. - ENDIF() -ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - - - -##install part - - - -include (InstallRequiredSystemLibraries) - -set (CPACK_RESOURCE_FILE_LICENSE - "${CMAKE_CURRENT_SOURCE_DIR}/docs/code_license.txt") -set (CPACK_GENERATOR Bundle) -set (CPACK_BUNDLE_NAME "MegaGlest") -set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/Debug/glest.bin") -set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist") -INSTALL(FILES - ${LUA_LIBRARIES} - DESTINATION ../Frameworks - ) -INSTALL(DIRECTORY - ${OGG_LIBRARY} - ${XERCESC_LIBRARY} - ${VORBIS_LIBRARY} - ${SDL_LIBRARY} - DESTINATION ../Frameworks - ) -include (CPack) -# Set defaults for Universal Binaries. We want 32-bit Intel/PPC on 10.4 -# and 32/64-bit Intel/PPC on >= 10.5. Anything <= 10.3 doesn't support. -# These are just defaults/recommendations, but how we want to build -# out of the box. But the user needs to be able to change these options. -# So we must only set the values the first time CMake is run, or we -# will overwrite any changes the user sets. -# FORCE is used because the options are not reflected in the UI otherwise. -# Seems like a good place to add version specific compiler flags too. -IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - IF(EXISTS /Developer/SDKs/MacOSX10.6.sdk) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - - ELSEIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk) - # 64-bit compiles are not supported with Carbon. We should enable - # 64-bit compilation by default once osgviewer has been - # rewritten with Cocoa. - #SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - ELSE() - # No Universal Binary support - # Should break down further to set the -mmacosx-version-min, - # but the SDK detection is too unreliable here. - ENDIF() -ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - - - -##install part - - - -include (InstallRequiredSystemLibraries) - -set (CPACK_RESOURCE_FILE_LICENSE - "${CMAKE_CURRENT_SOURCE_DIR}/docs/code_license.txt") -set (CPACK_GENERATOR Bundle) -set (CPACK_BUNDLE_NAME "MegaGlest") -set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/Debug/glest.bin") -set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist") -INSTALL(FILES - ${LUA_LIBRARIES} - DESTINATION ../Frameworks - ) -INSTALL(DIRECTORY - ${OGG_LIBRARY} - ${XERCESC_LIBRARY} - ${VORBIS_LIBRARY} - ${SDL_LIBRARY} - DESTINATION ../Frameworks - ) - -include (CPack) diff --git a/mk/macosx/Info.plist b/mk/macosx/Info.plist index 975f8feae..2de7a43d6 100644 --- a/mk/macosx/Info.plist +++ b/mk/macosx/Info.plist @@ -7,11 +7,11 @@ CFBundleExecutable MegaGlest CFBundleGetInfoString - 3.2.2r1, © 2001-2009 The Glest Team All Rights Reserved. + ${MEGAGLEST_VERSION}, © 2001-2010 The Glest Team All Rights Reserved. CFBundleIconFile MegaGlest CFBundleIdentifier - jp.ne.ivory.ciderhouse.MegaGlest + geovah.MegaGlest CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -19,75 +19,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 3.2.2 + ${MEGAGLEST_VERSION} CFBundleSignature ???? CFBundleVersion - 3.2 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - MegaGlest - CFBundleGetInfoString - 3.2.2r1, © 2001-2009 The Glest Team All Rights Reserved. - CFBundleIconFile - MegaGlest - CFBundleIdentifier - jp.ne.ivory.ciderhouse.MegaGlest - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - MegaGlest - CFBundlePackageType - APPL - CFBundleShortVersionString - 3.2.2 - CFBundleSignature - ???? - CFBundleVersion - 3.2 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - MegaGlest - CFBundleGetInfoString - 3.2.2r1, © 2001-2009 The Glest Team All Rights Reserved. - CFBundleIconFile - MegaGlest - CFBundleIdentifier - jp.ne.ivory.ciderhouse.MegaGlest - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - MegaGlest - CFBundlePackageType - APPL - CFBundleShortVersionString - 3.2.2 - CFBundleSignature - ???? - CFBundleVersion - 3.2 + ${MEGAGLEST_VERSION} NSMainNibFile MainMenu NSPrincipalClass diff --git a/source/glest_game/facilities/game_util.cpp b/source/glest_game/facilities/game_util.cpp index c6c456905..935c7ba2f 100644 --- a/source/glest_game/facilities/game_util.cpp +++ b/source/glest_game/facilities/game_util.cpp @@ -39,6 +39,8 @@ string getPlatformNameString() { platform = "Windows"; #elif defined(__FreeBSD__) platform = "FreeBSD"; +#elif defined(__APPLE__) + platform = "MacOSX"; #elif defined(__GNUC__) platform = "GNU"; #else diff --git a/source/shared_lib/sources/platform/common/platform_common.cpp b/source/shared_lib/sources/platform/common/platform_common.cpp index 4eb5f1cca..57c558cf5 100644 --- a/source/shared_lib/sources/platform/common/platform_common.cpp +++ b/source/shared_lib/sources/platform/common/platform_common.cpp @@ -235,41 +235,46 @@ void findAll(const string &path, vector &results, bool cutExtension, boo glob_t globbuf; int res = glob(mypath.c_str(), 0, 0, &globbuf); - if(res < 0) { - std::stringstream msg; - msg << "Couldn't scan directory '" << mypath << "': " << strerror(errno); - throw runtime_error(msg.str()); - } - - for(int i = 0; i < globbuf.gl_pathc; ++i) { - const char* p = globbuf.gl_pathv[i]; - const char* begin = p; - for( ; *p != 0; ++p) { - // strip the path component - if(*p == '/') - begin = p+1; - } - if(!(strcmp(".", begin)==0 || strcmp("..", begin)==0 || strcmp(".svn", begin)==0)) { - results.push_back(begin); - } - else { - SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] SKIPPED SPECIAL FILENAME [%s]\n",__FILE__,__FUNCTION__,__LINE__,begin); + if(res < 0) + { + if(errorOnNotFound) { + std::stringstream msg; + msg << "Couldn't scan directory '" << mypath << "': " << strerror(errno); + throw runtime_error(msg.str()); } } + else + { + for(int i = 0; i < globbuf.gl_pathc; ++i) { + const char* p = globbuf.gl_pathv[i]; + const char* begin = p; + for( ; *p != 0; ++p) { + // strip the path component + if(*p == '/') + begin = p+1; + } + if(!(strcmp(".", begin)==0 || strcmp("..", begin)==0 || strcmp(".svn", begin)==0)) { + results.push_back(begin); + } + else { + SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] SKIPPED SPECIAL FILENAME [%s]\n",__FILE__,__FUNCTION__,__LINE__,begin); + } + } - globfree(&globbuf); + globfree(&globbuf); - if(results.size() == 0 && errorOnNotFound == true) { - throw runtime_error("No files found in: " + mypath); - } + if(results.size() == 0 && errorOnNotFound == true) { + throw runtime_error("No files found in: " + mypath); + } - if(cutExtension) { - for (size_t i=0; i