Clean up and tweak build system 2402/head
authorShadowNinja <shadowninja@minetest.net>
Fri, 27 Feb 2015 23:05:29 +0000 (18:05 -0500)
committerShadowNinja <shadowninja@minetest.net>
Fri, 27 Mar 2015 19:00:48 +0000 (15:00 -0400)
  * Combine client and server man pages.
  * Update unit test options and available databases in man page.
  * Add `--worldname` to man page.
  * Fix a bunch of places where `"Minetest"` was used directly instead of `PROJECT_NAME`.
  * Disable server build by default on all operating systems.
  * Make `ENABLE_FREETYPE` not fail if FreeType isn't found.
  * Enable LevelDB, Redis, and FreeType detection by default.
  * Remove the `VERSION_PATCH_ORIG` hack.
  * Add option to search for and use system JSONCPP.
  * Remove broken LuaJIT version detection.
  * Rename `DISABLE_LUAJIT` to `ENABLE_LUAJIT`.
  * Rename `minetest_*` variables in `version.{h,cpp}` to `g_*`.
  * Clean up style of CMake files.

50 files changed:
.travis.yml
CMakeLists.txt
README.txt
build/android/Makefile
cmake/Modules/FindCURL.cmake
cmake/Modules/FindGettextLib.cmake
cmake/Modules/FindIrrlicht.cmake
cmake/Modules/FindJson.cmake
cmake/Modules/FindLua.cmake [new file with mode: 0644]
cmake/Modules/FindOpenGLES2.cmake
cmake/Modules/GenerateVersion.cmake
cmake/Modules/misc.cmake [deleted file]
doc/minetest.6
doc/minetestserver.6
misc/winresource.rc
src/CMakeLists.txt
src/cguittfont/CMakeLists.txt
src/client.cpp
src/client/CMakeLists.txt
src/client/clientlauncher.cpp
src/cmake_config.h.in
src/cmake_config_githash.h.in
src/config.h
src/debug.cpp
src/defaultsettings.cpp
src/emerge.cpp
src/game.cpp
src/guiEngine.cpp
src/httpfetch.cpp
src/json/CMakeLists.txt
src/jthread/CMakeLists.txt
src/lua/CMakeLists.txt
src/lua/src/CMakeLists.txt
src/main.cpp
src/network/CMakeLists.txt
src/network/serverpackethandler.cpp
src/porting.cpp
src/script/CMakeLists.txt
src/script/common/CMakeLists.txt
src/script/cpp_api/CMakeLists.txt
src/script/lua_api/CMakeLists.txt
src/script/lua_api/l_mainmenu.cpp
src/server.cpp
src/serverlist.cpp
src/util/CMakeLists.txt
src/version.cpp
src/version.h
util/travis/before_install.sh
util/travis/script.sh
util/travis/toolchain_mingw.cmake.in

index 4bce211f7af5ddcd455edeb1f2be6e686b7ba89a..d17af5463cb96c5325a58180f63ba30db44eb07e 100644 (file)
@@ -3,9 +3,9 @@ compiler:
   - gcc
   - clang
 env:
   - gcc
   - clang
 env:
-  - WINDOWS=32
-  - WINDOWS=64
-  - WINDOWS=no
+  - PLATFORM=Win32
+  - PLATFORM=Win64
+  - PLATFORM=Linux
 before_install: ./util/travis/before_install.sh
 script: ./util/travis/script.sh
 notifications:
 before_install: ./util/travis/before_install.sh
 script: ./util/travis/script.sh
 notifications:
@@ -13,7 +13,7 @@ notifications:
 matrix:
   fast_finish: true
   exclude:
 matrix:
   fast_finish: true
   exclude:
-    - env: WINDOWS=32
+    - env: PLATFORM=Win32
       compiler: clang
       compiler: clang
-    - env: WINDOWS=64
+    - env: PLATFORM=Win64
       compiler: clang
       compiler: clang
index 5d799f9cac065c4d00432c9c25c2d54cfb4f5e59..2561d1917ba22b13100985af7af1e0bd0503eec2 100644 (file)
@@ -1,69 +1,62 @@
 cmake_minimum_required(VERSION 2.6)
 cmake_minimum_required(VERSION 2.6)
+
 if(${CMAKE_VERSION} STREQUAL "2.8.2")
 if(${CMAKE_VERSION} STREQUAL "2.8.2")
-  # bug http://vtk.org/Bug/view.php?id=11020
-  message( WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!")
-endif(${CMAKE_VERSION} STREQUAL "2.8.2")
+       # Bug http://vtk.org/Bug/view.php?id=11020
+       message(WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!")
+endif()
 
 # This can be read from ${PROJECT_NAME} after project() is called
 
 # This can be read from ${PROJECT_NAME} after project() is called
-project(minetest)
+project(Minetest)
+string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 
 
-set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
 
 
-# Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
+# Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing
 set(VERSION_MAJOR 0)
 set(VERSION_MINOR 4)
 set(VERSION_PATCH 12)
 set(VERSION_MAJOR 0)
 set(VERSION_MINOR 4)
 set(VERSION_PATCH 12)
-set(VERSION_PATCH_ORIG ${VERSION_PATCH})
+set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
 
 
+set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 if(VERSION_EXTRA)
 if(VERSION_EXTRA)
-       set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA})
+       set(VERSION_STRING ${VERSION_STRING}-${VERSION_EXTRA})
 else()
        # Comment the following line during release
 else()
        # Comment the following line during release
-       set(VERSION_PATCH ${VERSION_PATCH}-dev)
+       set(VERSION_STRING "${VERSION_STRING}-dev")
 endif()
 endif()
-set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 
 
-MESSAGE(STATUS "*** Will build version ${VERSION_STRING} ***")
+message(STATUS "*** Will build version ${VERSION_STRING} ***")
 
 
-# Configuration options
 
 
+# Configuration options
+set(DEFAULT_RUN_IN_PLACE FALSE)
 if(WIN32)
 if(WIN32)
-       set(RUN_IN_PLACE 1 CACHE BOOL "Run directly in source directory structure")
-else()
-       set(RUN_IN_PLACE 0 CACHE BOOL "Run directly in source directory structure")
+       set(DEFAULT_RUN_IN_PLACE TRUE)
 endif()
 endif()
+set(RUN_IN_PLACE ${DEFAULT_RUN_IN_PLACE} CACHE BOOL
+       "Run directly in source directory structure")
 
 
-# RUN_IN_PLACE is exported as a #define value, ensure it's 1/0 instead of ON/OFF
-if(RUN_IN_PLACE)
-       set(RUN_IN_PLACE 1)
-else()
-       set(RUN_IN_PLACE 0)
-endif()
 
 
-set(BUILD_CLIENT 1 CACHE BOOL "Build client")
-if(WIN32 OR APPLE)
-       set(BUILD_SERVER 0 CACHE BOOL "Build server")
-else()
-       set(BUILD_SERVER 1 CACHE BOOL "Build server")
-endif()
+set(BUILD_CLIENT TRUE CACHE BOOL "Build client")
+set(BUILD_SERVER FALSE CACHE BOOL "Build server")
 
 
-set(WARN_ALL 1 CACHE BOOL "Enable -Wall for Release build")
+
+set(WARN_ALL TRUE CACHE BOOL "Enable -Wall for Release build")
 
 if(NOT CMAKE_BUILD_TYPE)
        # Default to release
        set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE)
 endif()
 
 
 if(NOT CMAKE_BUILD_TYPE)
        # Default to release
        set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE)
 endif()
 
+
 # Included stuff
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
 # Included stuff
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
-include(${CMAKE_SOURCE_DIR}/cmake/Modules/misc.cmake)
+
 
 # This is done here so that relative search paths are more reasnable
 find_package(Irrlicht)
 
 
 # This is done here so that relative search paths are more reasnable
 find_package(Irrlicht)
 
-#
+
 # Installation
 # Installation
-#
 
 if(WIN32)
        set(SHAREDIR ".")
 
 if(WIN32)
        set(SHAREDIR ".")
@@ -72,11 +65,11 @@ if(WIN32)
        set(EXAMPLE_CONF_DIR ".")
        set(LOCALEDIR "locale")
 elseif(APPLE)
        set(EXAMPLE_CONF_DIR ".")
        set(LOCALEDIR "locale")
 elseif(APPLE)
-       set(BUNDLE_NAME ${PROJECT_NAME}.app)
+       set(BUNDLE_NAME ${PROJECT_NAME_LOWER}.app)
        set(BUNDLE_PATH "${BUNDLE_NAME}")
        set(BINDIR ${BUNDLE_NAME}/Contents/MacOS)
        set(SHAREDIR ${BUNDLE_NAME}/Contents/Resources)
        set(BUNDLE_PATH "${BUNDLE_NAME}")
        set(BINDIR ${BUNDLE_NAME}/Contents/MacOS)
        set(SHAREDIR ${BUNDLE_NAME}/Contents/Resources)
-       set(DOCDIR "${SHAREDIR}/${PROJECT_NAME}")
+       set(DOCDIR "${SHAREDIR}/${PROJECT_NAME_LOWER}")
        set(EXAMPLE_CONF_DIR ${DOCDIR})
        set(LOCALEDIR "${SHAREDIR}/locale")
 elseif(UNIX) # Linux, BSD etc
        set(EXAMPLE_CONF_DIR ${DOCDIR})
        set(LOCALEDIR "${SHAREDIR}/locale")
 elseif(UNIX) # Linux, BSD etc
@@ -91,15 +84,15 @@ elseif(UNIX) # Linux, BSD etc
                set(ICONDIR "unix/icons")
                set(LOCALEDIR "locale")
        else()
                set(ICONDIR "unix/icons")
                set(LOCALEDIR "locale")
        else()
-               set(SHAREDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}")
+               set(SHAREDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME_LOWER}")
                set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
                set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
-               set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}")
+               set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME_LOWER}")
                set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
                set(EXAMPLE_CONF_DIR ${DOCDIR})
                set(XDG_APPS_DIR "${CMAKE_INSTALL_PREFIX}/share/applications")
                set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/appdata")
                set(ICONDIR "${CMAKE_INSTALL_PREFIX}/share/icons")
                set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
                set(EXAMPLE_CONF_DIR ${DOCDIR})
                set(XDG_APPS_DIR "${CMAKE_INSTALL_PREFIX}/share/applications")
                set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/appdata")
                set(ICONDIR "${CMAKE_INSTALL_PREFIX}/share/icons")
-               set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/locale")
+               set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME_LOWER}/locale")
        endif()
 endif()
 
        endif()
 endif()
 
@@ -108,42 +101,50 @@ if(NOT CUSTOM_SHAREDIR STREQUAL "")
        set(SHAREDIR "${CUSTOM_SHAREDIR}")
        message(STATUS "Using SHAREDIR=${SHAREDIR}")
 endif()
        set(SHAREDIR "${CUSTOM_SHAREDIR}")
        message(STATUS "Using SHAREDIR=${SHAREDIR}")
 endif()
+
 set(CUSTOM_BINDIR "" CACHE STRING "Directory to install binaries into")
 if(NOT CUSTOM_BINDIR STREQUAL "")
        set(BINDIR "${CUSTOM_BINDIR}")
        message(STATUS "Using BINDIR=${BINDIR}")
 endif()
 set(CUSTOM_BINDIR "" CACHE STRING "Directory to install binaries into")
 if(NOT CUSTOM_BINDIR STREQUAL "")
        set(BINDIR "${CUSTOM_BINDIR}")
        message(STATUS "Using BINDIR=${BINDIR}")
 endif()
+
 set(CUSTOM_DOCDIR "" CACHE STRING "Directory to install documentation into")
 if(NOT CUSTOM_DOCDIR STREQUAL "")
        set(DOCDIR "${CUSTOM_DOCDIR}")
        message(STATUS "Using DOCDIR=${DOCDIR}")
 endif()
 set(CUSTOM_DOCDIR "" CACHE STRING "Directory to install documentation into")
 if(NOT CUSTOM_DOCDIR STREQUAL "")
        set(DOCDIR "${CUSTOM_DOCDIR}")
        message(STATUS "Using DOCDIR=${DOCDIR}")
 endif()
+
 set(CUSTOM_MANDIR "" CACHE STRING "Directory to install manpages into")
 if(NOT CUSTOM_MANDIR STREQUAL "")
        set(MANDIR "${CUSTOM_MANDIR}")
        message(STATUS "Using MANDIR=${MANDIR}")
 endif()
 set(CUSTOM_MANDIR "" CACHE STRING "Directory to install manpages into")
 if(NOT CUSTOM_MANDIR STREQUAL "")
        set(MANDIR "${CUSTOM_MANDIR}")
        message(STATUS "Using MANDIR=${MANDIR}")
 endif()
+
 set(CUSTOM_EXAMPLE_CONF_DIR "" CACHE STRING "Directory to install example config file into")
 if(NOT CUSTOM_EXAMPLE_CONF_DIR STREQUAL "")
        set(EXAMPLE_CONF_DIR "${CUSTOM_EXAMPLE_CONF_DIR}")
        message(STATUS "Using EXAMPLE_CONF_DIR=${EXAMPLE_CONF_DIR}")
 endif()
 set(CUSTOM_EXAMPLE_CONF_DIR "" CACHE STRING "Directory to install example config file into")
 if(NOT CUSTOM_EXAMPLE_CONF_DIR STREQUAL "")
        set(EXAMPLE_CONF_DIR "${CUSTOM_EXAMPLE_CONF_DIR}")
        message(STATUS "Using EXAMPLE_CONF_DIR=${EXAMPLE_CONF_DIR}")
 endif()
+
 set(CUSTOM_XDG_APPS_DIR "" CACHE STRING "Directory to install .desktop files into")
 if(NOT CUSTOM_XDG_APPS_DIR STREQUAL "")
        set(XDG_APPS_DIR "${CUSTOM_XDG_APPS_DIR}")
        message(STATUS "Using XDG_APPS_DIR=${XDG_APPS_DIR}")
 endif()
 set(CUSTOM_XDG_APPS_DIR "" CACHE STRING "Directory to install .desktop files into")
 if(NOT CUSTOM_XDG_APPS_DIR STREQUAL "")
        set(XDG_APPS_DIR "${CUSTOM_XDG_APPS_DIR}")
        message(STATUS "Using XDG_APPS_DIR=${XDG_APPS_DIR}")
 endif()
+
 set(CUSTOM_ICONDIR "" CACHE STRING "Directory to install icons into")
 if(NOT CUSTOM_ICONDIR STREQUAL "")
        set(ICONDIR "${CUSTOM_ICONDIR}")
        message(STATUS "Using ICONDIR=${ICONDIR}")
 endif()
 set(CUSTOM_ICONDIR "" CACHE STRING "Directory to install icons into")
 if(NOT CUSTOM_ICONDIR STREQUAL "")
        set(ICONDIR "${CUSTOM_ICONDIR}")
        message(STATUS "Using ICONDIR=${ICONDIR}")
 endif()
+
 set(CUSTOM_LOCALEDIR "" CACHE STRING "Directory to install l10n files into")
 if(NOT CUSTOM_LOCALEDIR STREQUAL "")
        set(LOCALEDIR "${CUSTOM_LOCALEDIR}")
        message(STATUS "Using LOCALEDIR=${LOCALEDIR}")
 endif()
 
 set(CUSTOM_LOCALEDIR "" CACHE STRING "Directory to install l10n files into")
 if(NOT CUSTOM_LOCALEDIR STREQUAL "")
        set(LOCALEDIR "${CUSTOM_LOCALEDIR}")
        message(STATUS "Using LOCALEDIR=${LOCALEDIR}")
 endif()
 
+
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/builtin" DESTINATION "${SHAREDIR}")
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client" DESTINATION "${SHAREDIR}")
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minimal" DESTINATION "${SHAREDIR}/games")
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/builtin" DESTINATION "${SHAREDIR}")
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client" DESTINATION "${SHAREDIR}")
 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minimal" DESTINATION "${SHAREDIR}/games")
@@ -183,13 +184,13 @@ if(APPLE)
        install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
 endif()
 
        install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
 endif()
 
-#
+
 # Subdirectories
 # Be sure to add all relevant definitions above this
 # Subdirectories
 # Be sure to add all relevant definitions above this
-#
 
 add_subdirectory(src)
 
 
 add_subdirectory(src)
 
+
 # CPack
 
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An InfiniMiner/Minecraft inspired game")
 # CPack
 
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An InfiniMiner/Minecraft inspired game")
@@ -202,9 +203,9 @@ set(CPACK_PACKAGE_CONTACT "Perttu Ahola <celeron55@gmail.com>")
 if(WIN32)
        if(CMAKE_SIZEOF_VOID_P EQUAL 8)
                set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win64")
 if(WIN32)
        if(CMAKE_SIZEOF_VOID_P EQUAL 8)
                set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win64")
-       else(CMAKE_SIZEOF_VOID_P EQUAL 8)
+       else()
                set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32")
                set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32")
-       endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+       endif()
 
        set(CPACK_GENERATOR ZIP)
 elseif(APPLE)
 
        set(CPACK_GENERATOR ZIP)
 elseif(APPLE)
@@ -219,14 +220,16 @@ endif()
 
 include(CPack)
 
 
 include(CPack)
 
+
 # Add a target to generate API documentation with Doxygen
 find_package(Doxygen)
 if(DOXYGEN_FOUND)
 # Add a target to generate API documentation with Doxygen
 find_package(Doxygen)
 if(DOXYGEN_FOUND)
-       configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY)
+       configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in
+                       ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY)
        add_custom_target(doc
                ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile
                WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc
                COMMENT "Generating API documentation with Doxygen" VERBATIM
        )
        add_custom_target(doc
                ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile
                WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc
                COMMENT "Generating API documentation with Doxygen" VERBATIM
        )
-endif(DOXYGEN_FOUND)
+endif()
 
 
index d9eb9fe4b9e1dee18af75a1a512c8c223915c1df..0fadcaa2fafb606fd84f6d6ff9b66952b422fa94 100644 (file)
@@ -130,18 +130,21 @@ $ mv minetest_game-master minetest_game
 $ cd ..
 
 Build a version that runs directly from the source directory:
 $ cd ..
 
 Build a version that runs directly from the source directory:
-$ cmake . -DRUN_IN_PLACE=1
-$ make -j2
+$ cmake . -DRUN_IN_PLACE=TRUE
+$ make -j <number of processors>
 
 Run it:
 $ ./bin/minetest
 
 - Use cmake . -LH to see all CMake options and their current state
 
 Run it:
 $ ./bin/minetest
 
 - Use cmake . -LH to see all CMake options and their current state
-- If you want to install it system-wide (or are making a distribution package), you will want to use -DRUN_IN_PLACE=0
-- You can build a bare server or a bare client by specifying -DBUILD_CLIENT=0 or -DBUILD_SERVER=0
+- If you want to install it system-wide (or are making a distribution package),
+  you will want to use -DRUN_IN_PLACE=FALSE
+- You can build a bare server by specifying -DBUILD_SERVER=TRUE
+- You can disable the client build by specifying -DBUILD_CLIENT=FALSE
 - You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
   - Debug build is slower, but gives much more useful output in a debugger
 - You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
   - Debug build is slower, but gives much more useful output in a debugger
-- If you build a bare server, you don't need to have Irrlicht installed. In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
+- If you build a bare server, you don't need to have Irrlicht installed.
+  In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
 
 CMake options
 -------------
 
 CMake options
 -------------
@@ -152,16 +155,17 @@ BUILD_SERVER        - Build Minetest server
 CMAKE_BUILD_TYPE    - Type of build (Release vs. Debug)
     Release         - Release build
     Debug           - Debug build
 CMAKE_BUILD_TYPE    - Type of build (Release vs. Debug)
     Release         - Release build
     Debug           - Debug build
+    SemiDebug       - Partially optimized debug build
     RelWithDebInfo  - Release build with Debug information
     MinSizeRel      - Release build with -Os passed to compiler to make executable as small as possible
 ENABLE_CURL         - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
     RelWithDebInfo  - Release build with Debug information
     MinSizeRel      - Release build with -Os passed to compiler to make executable as small as possible
 ENABLE_CURL         - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
-ENABLE_FREETYPE     - Build with Freetype2; Allows using TTF fonts
+ENABLE_FREETYPE     - Build with FreeType2; Allows using TTF fonts
 ENABLE_GETTEXT      - Build with Gettext; Allows using translations
 ENABLE_GLES         - Search for Open GLES headers & libraries and use them
 ENABLE_GETTEXT      - Build with Gettext; Allows using translations
 ENABLE_GLES         - Search for Open GLES headers & libraries and use them
-ENABLE_LEVELDB      - Build with LevelDB; Enables use of LevelDB, which is much faster than SQLite, as map backend
-ENABLE_REDIS        - Build with libhiredis; Enables use of redis map backend
+ENABLE_LEVELDB      - Build with LevelDB; Enables use of LevelDB map backend (faster than SQLite3)
+ENABLE_REDIS        - Build with libhiredis; Enables use of Redis map backend
 ENABLE_SOUND        - Build with OpenAL, libogg & libvorbis; in-game Sounds
 ENABLE_SOUND        - Build with OpenAL, libogg & libvorbis; in-game Sounds
-DISABLE_LUAJIT      - Do not search for LuaJIT headers & library
+ENABLE_LUAJIT       - Build with LuaJIT (much faster than non-JIT Lua)
 RUN_IN_PLACE        - Create a portable install (worlds, settings etc. in current directory)
 USE_GPROF           - Enable profiling using GProf
 VERSION_EXTRA       - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
 RUN_IN_PLACE        - Create a portable install (worlds, settings etc. in current directory)
 USE_GPROF           - Enable profiling using GProf
 VERSION_EXTRA       - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
@@ -174,7 +178,7 @@ CURL_DLL                        - Only if building with cURL on Windows; path to
 CURL_INCLUDE_DIR                - Only if building with cURL; directory where curl.h is located
 CURL_LIBRARY                    - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
 EGL_INCLUDE_DIR                 - Only if building with GLES; directory that contains egl.h
 CURL_INCLUDE_DIR                - Only if building with cURL; directory where curl.h is located
 CURL_LIBRARY                    - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
 EGL_INCLUDE_DIR                 - Only if building with GLES; directory that contains egl.h
-EGL_egl_LIBRARY                 - Only if building with GLES; path to libEGL.a/libEGL.so
+EGL_LIBRARY                     - Only if building with GLES; path to libEGL.a/libEGL.so
 FREETYPE_INCLUDE_DIR_freetype2  - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
 FREETYPE_INCLUDE_DIR_ft2build   - Only if building with Freetype2; directory that contains ft2build.h
 FREETYPE_LIBRARY                - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
 FREETYPE_INCLUDE_DIR_freetype2  - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
 FREETYPE_INCLUDE_DIR_ft2build   - Only if building with Freetype2; directory that contains ft2build.h
 FREETYPE_LIBRARY                - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
@@ -190,8 +194,8 @@ IRRLICHT_LIBRARY                - path to libIrrlicht.a/libIrrlicht.so/libIrrlic
 LEVELDB_INCLUDE_DIR             - Only when building with LevelDB; directory that contains db.h
 LEVELDB_LIBRARY                 - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
 LEVELDB_DLL                     - Only when building with LevelDB on Windows; path to libleveldb.dll
 LEVELDB_INCLUDE_DIR             - Only when building with LevelDB; directory that contains db.h
 LEVELDB_LIBRARY                 - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
 LEVELDB_DLL                     - Only when building with LevelDB on Windows; path to libleveldb.dll
-REDIS_INCLUDE_DIR               - Only when building with redis support; directory that contains hiredis.h
-REDIS_LIBRARY                   - Only when building with redis support; path to libhiredis.a/libhiredis.so
+REDIS_INCLUDE_DIR               - Only when building with Redis support; directory that contains hiredis.h
+REDIS_LIBRARY                   - Only when building with Redis support; path to libhiredis.a/libhiredis.so
 LUA_INCLUDE_DIR                 - Only if you want to use LuaJIT; directory where luajit.h is located
 LUA_LIBRARY                     - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
 MINGWM10_DLL                    - Only if compiling with MinGW; path to mingwm10.dll
 LUA_INCLUDE_DIR                 - Only if you want to use LuaJIT; directory where luajit.h is located
 LUA_LIBRARY                     - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
 MINGWM10_DLL                    - Only if compiling with MinGW; path to mingwm10.dll
@@ -202,7 +206,7 @@ OPENAL_DLL                      - Only if building with sound on Windows; path t
 OPENAL_INCLUDE_DIR              - Only if building with sound; directory where al.h is located
 OPENAL_LIBRARY                  - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
 OPENGLES2_INCLUDE_DIR           - Only if building with GLES; directory that contains gl2.h
 OPENAL_INCLUDE_DIR              - Only if building with sound; directory where al.h is located
 OPENAL_LIBRARY                  - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
 OPENGLES2_INCLUDE_DIR           - Only if building with GLES; directory that contains gl2.h
-OPENGLES2_gl_LIBRARY            - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
+OPENGLES2_LIBRARY               - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
 SQLITE3_INCLUDE_DIR             - Only if you want to use SQLite from your OS; directory that contains sqlite3.h
 SQLITE3_LIBRARY                 - Only if you want to use the SQLite from your OS; path to libsqlite3.a/libsqlite3.so
 VORBISFILE_DLL                  - Only if building with sound on Windows; path to libvorbisfile-3.dll
 SQLITE3_INCLUDE_DIR             - Only if you want to use SQLite from your OS; directory that contains sqlite3.h
 SQLITE3_LIBRARY                 - Only if you want to use the SQLite from your OS; path to libsqlite3.a/libsqlite3.so
 VORBISFILE_DLL                  - Only if building with sound on Windows; path to libvorbisfile-3.dll
@@ -336,7 +340,7 @@ set irrlichtpath="C:\tmp\irrlicht-1.7.2"
 set builddir=%sourcedir%\bvc10
 mkdir %builddir%
 pushd %builddir%
 set builddir=%sourcedir%\bvc10
 mkdir %builddir%
 pushd %builddir%
-cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=1 -DCMAKE_INSTALL_PREFIX=%installpath%
+cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
 if %errorlevel% neq 0 goto fail
 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
 if %errorlevel% neq 0 goto fail
 if %errorlevel% neq 0 goto fail
 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
 if %errorlevel% neq 0 goto fail
index 43ce247126d80457f4b305e1e1af05300bb12765..05997c5a2d61ca5535f49d0900259577911f745b 100644 (file)
@@ -732,14 +732,11 @@ $(ROOT)/jni/src/android_version.h :
        echo "#define VERSION_PATCH $$(cat ${ROOT}/../../CMakeLists.txt |          \
        grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')"            \
        >> ${ROOT}/jni/src/android_version.h;                                      \
        echo "#define VERSION_PATCH $$(cat ${ROOT}/../../CMakeLists.txt |          \
        grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')"            \
        >> ${ROOT}/jni/src/android_version.h;                                      \
-       echo "#define VERSION_PATCH_ORIG $$(cat ${ROOT}/../../CMakeLists.txt |     \
-       grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')"            \
-       >> ${ROOT}/jni/src/android_version.h;                                      \
        export GITHASH=$$(git rev-parse --short=8 HEAD);                           \
        export GITTAG=$$(git describe --abbrev=0 --tags);                          \
        export GITHASH=$$(git rev-parse --short=8 HEAD);                           \
        export GITTAG=$$(git describe --abbrev=0 --tags);                          \
-       echo "#define CMAKE_VERSION_GITHASH \"$$GITTAG-$$GITHASH-Android\""        \
+       echo "#define VERSION_GITHASH \"$$GITTAG-$$GITHASH-Android\""        \
        >> ${ROOT}/jni/src/android_version.h;                                      \
        >> ${ROOT}/jni/src/android_version.h;                                      \
-       echo "#define CMAKE_VERSION_STRING STR(VERSION_MAJOR)\".\"STR(VERSION_MINOR)\
+       echo "#define VERSION_STRING STR(VERSION_MAJOR)\".\"STR(VERSION_MINOR)\
        \".\"STR(VERSION_PATCH)"                                                   \
        >> ${ROOT}/jni/src/android_version.h;
        
        \".\"STR(VERSION_PATCH)"                                                   \
        >> ${ROOT}/jni/src/android_version.h;
        
index 975b8088c3914b3626d6315d711b0c0004f26b82..2ec866ef9308de9c36c6605208ead585bf728a60 100644 (file)
@@ -1,47 +1,19 @@
-# - Find curl
-# Find the native CURL headers and libraries.
-#
-#  CURL_INCLUDE_DIR - where to find curl/curl.h, etc.
-#  CURL_LIBRARY    - List of libraries when using curl.
-#  CURL_FOUND        - True if curl found.
+mark_as_advanced(CURL_LIBRARY CURL_INCLUDE_DIR)
 
 
-if( UNIX )
-  FIND_PATH(CURL_INCLUDE_DIR NAMES curl.h
-    PATHS
-    /usr/local/include/curl
-    /usr/include/curl
-  )
+find_library(CURL_LIBRARY NAMES curl)
+find_path(CURL_INCLUDE_DIR NAMES curl/curl.h)
 
 
-  FIND_LIBRARY(CURL_LIBRARY NAMES curl
-    PATHS
-    /usr/local/lib
-    /usr/lib
-  )
-else( UNIX )
-  FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h) # Look for the header file.
-  FIND_LIBRARY(CURL_LIBRARY NAMES curl) # Look for the library.
-  FIND_FILE(CURL_DLL NAMES libcurl.dll
-                       PATHS
-                       "c:/windows/system32"
-                       DOC "Path of the cURL dll (for installation)")
-  INCLUDE(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if
-  FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) # all listed variables are TRUE
-endif( UNIX )
+set(CURL_REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR)
 
 
-if( WIN32 )
-  if( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL ) # libcurl.dll is required on Windows
-    SET(CURL_FOUND TRUE)
-  else( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL )
-    SET(CURL_FOUND FALSE)
-  endif( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL )
-else ( WIN32 )
-  if( CURL_LIBRARY AND CURL_INCLUDE_DIR )
-    SET(CURL_FOUND TRUE)
-  else( CURL_LIBRARY AND CURL_INCLUDE_DIR )
-    SET(CURL_FOUND FALSE)
-  endif( CURL_LIBRARY AND CURL_INCLUDE_DIR )
-endif ( WIN32 )
+if(WIN32)
+       find_file(CURL_DLL NAMES libcurl-4.dll
+               PATHS
+               "C:/Windows/System32"
+               DOC "Path to the cURL DLL (for installation)")
+       mark_as_advanced(CURL_DLL)
+       set(CURL_REQUIRED_VARS ${CURL_REQUIRED_VARS} CURL_DLL)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CURL DEFAULT_MSG ${CURL_REQUIRED_VARS})
 
 
-MESSAGE(STATUS "CURL_INCLUDE_DIR = ${CURL_INCLUDE_DIR}")
-MESSAGE(STATUS "CURL_LIBRARY = ${CURL_LIBRARY}")
-MESSAGE(STATUS "CURL_DLL = ${CURL_DLL}")
index 5c992f0faefe76729cf3b6d5e84ef0ec57e903d8..cb1ce7b911f74724818fc4d58518c8b40a23f0d5 100644 (file)
@@ -1,85 +1,78 @@
-# Package finder for gettext libs and include files
 
 
-SET(CUSTOM_GETTEXT_PATH "${PROJECT_SOURCE_DIR}/../../gettext"
+set(CUSTOM_GETTEXT_PATH "${PROJECT_SOURCE_DIR}/../../gettext"
        CACHE FILEPATH "path to custom gettext")
 
        CACHE FILEPATH "path to custom gettext")
 
-# by default
-SET(GETTEXT_FOUND FALSE)
-
-FIND_PATH(GETTEXT_INCLUDE_DIR
+find_path(GETTEXT_INCLUDE_DIR
        NAMES libintl.h
        PATHS "${CUSTOM_GETTEXT_PATH}/include"
        NAMES libintl.h
        PATHS "${CUSTOM_GETTEXT_PATH}/include"
-       DOC "gettext include directory")
+       DOC "GetText include directory")
 
 
-FIND_PROGRAM(GETTEXT_MSGFMT
+find_program(GETTEXT_MSGFMT
        NAMES msgfmt
        PATHS "${CUSTOM_GETTEXT_PATH}/bin"
        NAMES msgfmt
        PATHS "${CUSTOM_GETTEXT_PATH}/bin"
-       DOC "path to msgfmt")
+       DOC "Path to msgfmt")
+
+set(GETTEXT_REQUIRED_VARS GETTEXT_INCLUDE_DIR GETTEXT_MSGFMT)
 
 if(APPLE)
 
 if(APPLE)
-       FIND_LIBRARY(GETTEXT_LIBRARY
+       find_library(GETTEXT_LIBRARY
                NAMES libintl.a
                PATHS "${CUSTOM_GETTEXT_PATH}/lib"
                NAMES libintl.a
                PATHS "${CUSTOM_GETTEXT_PATH}/lib"
-               DOC "gettext *intl*.lib")
+               DOC "GetText library")
 
 
-       FIND_LIBRARY(ICONV_LIBRARY
+       find_library(ICONV_LIBRARY
                NAMES libiconv.dylib
                PATHS "/usr/lib"
                NAMES libiconv.dylib
                PATHS "/usr/lib"
-               DOC "iconv lib")
+               DOC "IConv library")
+       set(GETTEXT_REQUIRED_VARS ${GETTEXT_REQUIRED_VARS} GETTEXT_LIBRARY ICONV_LIBRARY)
 endif(APPLE)
 
 endif(APPLE)
 
-# modern Linux, as well as Mac, seem to not need require special linking
-# they do not because gettext is part of glibc
-# TODO check the requirements on other BSDs and older Linux
-IF (WIN32)
-       IF(MSVC)
-               SET(GETTEXT_LIB_NAMES
+# Modern Linux, as well as OSX, does not require special linking because
+# GetText is part of glibc.
+# TODO: check the requirements on other BSDs and older Linux
+if(WIN32)
+       if(MSVC)
+               set(GETTEXT_LIB_NAMES
                        libintl.lib intl.lib libintl3.lib intl3.lib)
                        libintl.lib intl.lib libintl3.lib intl3.lib)
-       ELSE()
-               SET(GETTEXT_LIB_NAMES
+       else()
+               set(GETTEXT_LIB_NAMES
                        libintl.dll.a intl.dll.a libintl3.dll.a intl3.dll.a)
                        libintl.dll.a intl.dll.a libintl3.dll.a intl3.dll.a)
-       ENDIF()
-       FIND_LIBRARY(GETTEXT_LIBRARY
+       endif()
+       find_library(GETTEXT_LIBRARY
                NAMES ${GETTEXT_LIB_NAMES}
                PATHS "${CUSTOM_GETTEXT_PATH}/lib"
                NAMES ${GETTEXT_LIB_NAMES}
                PATHS "${CUSTOM_GETTEXT_PATH}/lib"
-               DOC "gettext *intl*.lib")
-       FIND_FILE(GETTEXT_DLL
+               DOC "GetText library")
+       find_file(GETTEXT_DLL
                NAMES libintl.dll intl.dll libintl3.dll intl3.dll
                PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" 
                DOC "gettext *intl*.dll")
                NAMES libintl.dll intl.dll libintl3.dll intl3.dll
                PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" 
                DOC "gettext *intl*.dll")
-       FIND_FILE(GETTEXT_ICONV_DLL
+       find_file(GETTEXT_ICONV_DLL
                NAMES libiconv2.dll
                PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
                DOC "gettext *iconv*.lib")
                NAMES libiconv2.dll
                PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
                DOC "gettext *iconv*.lib")
-ENDIF(WIN32)
+       set(GETTEXT_REQUIRED_VARS ${GETTEXT_REQUIRED_VARS} GETTEXT_DLL GETTEXT_ICONV_DLL)
+endif(WIN32)
+
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GetText DEFAULT_MSG ${GETTEXT_REQUIRED_VARS})
+
+
+if(GETTEXT_FOUND)
+       # BSD variants require special linkage as they don't use glibc
+       if(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
+               set(GETTEXT_LIBRARY "intl")
+       endif()
 
 
-IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
-       IF (WIN32)
-               # in the Win32 case check also for the extra linking requirements
-               IF(GETTEXT_LIBRARY AND GETTEXT_DLL AND GETTEXT_ICONV_DLL)
-                       SET(GETTEXT_FOUND TRUE)
-               ENDIF()
-       ELSE(WIN32)
-               # *BSD variants require special linkage as they don't use glibc
-               IF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
-                       SET(GETTEXT_LIBRARY "intl")
-               ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
-               SET(GETTEXT_FOUND TRUE)
-       ENDIF(WIN32)
-ENDIF()
+       set(GETTEXT_PO_PATH ${CMAKE_SOURCE_DIR}/po)
+       set(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
+       set(GETTEXT_MO_DEST_PATH ${LOCALEDIR}/<locale>/LC_MESSAGES)
+       file(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
+       list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES minetest.pot)
+       list(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES timestamp)
+       macro(SET_MO_PATHS _buildvar _destvar _locale)
+               string(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
+               string(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH})
+       endmacro()
+endif()
 
 
-IF(GETTEXT_FOUND)
-       SET(GETTEXT_PO_PATH ${CMAKE_SOURCE_DIR}/po)
-       SET(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
-       SET(GETTEXT_MO_DEST_PATH ${LOCALEDIR}/<locale>/LC_MESSAGES)
-       FILE(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
-       LIST(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES minetest.pot)
-       LIST(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES timestamp)
-       MACRO(SET_MO_PATHS _buildvar _destvar _locale)
-               STRING(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
-               STRING(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH})
-       ENDMACRO(SET_MO_PATHS)
-ELSE()
-       SET(GETTEXT_INCLUDE_DIR "")
-       SET(GETTEXT_LIBRARY "")
-ENDIF()
index a84765d4e99ee76e13f4be5b526dbefc089a204b..8dda157223769983c4d9ed0b38d2fbce2f6698d3 100644 (file)
@@ -1,7 +1,8 @@
-#FindIrrlicht.cmake
 
 
+mark_as_advanced(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR IRRLICHT_DLL)
 set(IRRLICHT_SOURCE_DIR "" CACHE PATH "Path to irrlicht source directory (optional)")
 
 set(IRRLICHT_SOURCE_DIR "" CACHE PATH "Path to irrlicht source directory (optional)")
 
+
 # Find include directory
 
 if(NOT IRRLICHT_SOURCE_DIR STREQUAL "")
 # Find include directory
 
 if(NOT IRRLICHT_SOURCE_DIR STREQUAL "")
@@ -24,65 +25,47 @@ if(NOT IRRLICHT_SOURCE_DIR STREQUAL "")
                set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a)
        endif()
 
                set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a)
        endif()
 
-       FIND_PATH(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
+       find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
                PATHS
                ${IRRLICHT_SOURCE_DIR_INCLUDE}
                NO_DEFAULT_PATH
        )
 
                PATHS
                ${IRRLICHT_SOURCE_DIR_INCLUDE}
                NO_DEFAULT_PATH
        )
 
-       FIND_LIBRARY(IRRLICHT_LIBRARY NAMES ${IRRLICHT_LIBRARY_NAMES}
+       find_library(IRRLICHT_LIBRARY NAMES ${IRRLICHT_LIBRARY_NAMES}
                PATHS
                ${IRRLICHT_SOURCE_DIR_LIBS}
                NO_DEFAULT_PATH
        )
 
 else()
                PATHS
                ${IRRLICHT_SOURCE_DIR_LIBS}
                NO_DEFAULT_PATH
        )
 
 else()
-
-       FIND_PATH(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
+       find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
                PATHS
                /usr/local/include/irrlicht
                /usr/include/irrlicht
        )
 
                PATHS
                /usr/local/include/irrlicht
                /usr/include/irrlicht
        )
 
-       FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht
+       find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht
                PATHS
                /usr/local/lib
                /usr/lib
        )
 endif()
 
                PATHS
                /usr/local/lib
                /usr/lib
        )
 endif()
 
-MESSAGE(STATUS "IRRLICHT_SOURCE_DIR = ${IRRLICHT_SOURCE_DIR}")
-MESSAGE(STATUS "IRRLICHT_INCLUDE_DIR = ${IRRLICHT_INCLUDE_DIR}")
-MESSAGE(STATUS "IRRLICHT_LIBRARY = ${IRRLICHT_LIBRARY}")
 
 
-# On windows, find the dll for installation
+# On Windows, find the DLL for installation
 if(WIN32)
        if(MSVC)
 if(WIN32)
        if(MSVC)
-               FIND_FILE(IRRLICHT_DLL NAMES Irrlicht.dll
-                       PATHS
-                       "${IRRLICHT_SOURCE_DIR}/bin/Win32-VisualStudio"
-                       DOC "Path of the Irrlicht dll (for installation)"
-               )
+               set(IRRLICHT_COMPILER "VisualStudio")
        else()
        else()
-               FIND_FILE(IRRLICHT_DLL NAMES Irrlicht.dll
-                       PATHS
-                       "${IRRLICHT_SOURCE_DIR}/bin/Win32-gcc"
-                       DOC "Path of the Irrlicht dll (for installation)"
-               )
+               set(IRRLICHT_COMPILER "gcc")
        endif()
        endif()
-       MESSAGE(STATUS "IRRLICHT_DLL = ${IRRLICHT_DLL}")
+       find_file(IRRLICHT_DLL NAMES Irrlicht.dll
+               PATHS
+               "${IRRLICHT_SOURCE_DIR}/bin/Win32-${IRRLICHT_COMPILER}"
+               DOC "Path of the Irrlicht dll (for installation)"
+       )
 endif(WIN32)
 
 endif(WIN32)
 
-# handle the QUIETLY and REQUIRED arguments and set IRRLICHT_FOUND to TRUE if
-# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Irrlicht DEFAULT_MSG IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
-
-IF(IRRLICHT_FOUND)
-  SET(IRRLICHT_LIBRARIES ${IRRLICHT_LIBRARY})
-ELSE(IRRLICHT_FOUND)
-  SET(IRRLICHT_LIBRARIES)
-ENDIF(IRRLICHT_FOUND)
-
-MARK_AS_ADVANCED(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR IRRLICHT_DLL) 
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Irrlicht DEFAULT_MSG IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
 
 
index a9178a2251dca2a3e865537420a86dc179b7330e..8e355b93fd46bbf4f0cc78e000b2e4e4f129f249 100644 (file)
@@ -1,18 +1,27 @@
-# Look for json, use our own if not found
+# Look for JSONCPP if asked to.
+# We use a bundled version by default because some distros ship versions of
+# JSONCPP that cause segfaults and other memory errors when we link with them.
+# See https://github.com/minetest/minetest/issues/1793
 
 
-#FIND_PATH(JSON_INCLUDE_DIR json.h)
+mark_as_advanced(JSON_LIBRARY JSON_INCLUDE_DIR)
+option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JSONCPP.  May cause segfaults and other memory errors!" FALSE)
 
 
-#FIND_LIBRARY(JSON_LIBRARY NAMES jsoncpp)
+if(ENABLE_SYSTEM_JSONCPP)
+       find_library(JSON_LIBRARY NAMES jsoncpp)
+       find_path(JSON_INCLUDE_DIR json/features.h)
 
 
-#IF(JSON_LIBRARY AND JSON_INCLUDE_DIR)
-#      SET( JSON_FOUND TRUE )
-#ENDIF(JSON_LIBRARY AND JSON_INCLUDE_DIR)
+       include(FindPackageHandleStandardArgs)
+       find_package_handle_standard_args(JSONCPP DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR)
+
+       if(JSONCPP_FOUND)
+               message(STATUS "Using system JSONCPP library.")
+       endif()
+endif()
+
+if(NOT JSONCPP_FOUND)
+       message(STATUS "Using bundled JSONCPP library.")
+       set(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/json)
+       set(JSON_LIBRARY jsoncpp)
+       add_subdirectory(json)
+endif()
 
 
-#IF(JSON_FOUND)
-#      MESSAGE(STATUS "Found system jsoncpp header file in ${JSON_INCLUDE_DIR}")
-#      MESSAGE(STATUS "Found system jsoncpp library ${JSON_LIBRARY}")
-#ELSE(JSON_FOUND)
-       SET(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/json)
-       SET(JSON_LIBRARY jsoncpp)
-       MESSAGE(STATUS "Using project jsoncpp library")
-#ENDIF(JSON_FOUND)
diff --git a/cmake/Modules/FindLua.cmake b/cmake/Modules/FindLua.cmake
new file mode 100644 (file)
index 0000000..479dfcf
--- /dev/null
@@ -0,0 +1,25 @@
+
+option(ENABLE_LUAJIT "Enable LuaJIT support" TRUE)
+mark_as_advanced(LUA_LIBRARY LUA_INCLUDE_DIR)
+set(USE_LUAJIT FALSE)
+
+if(ENABLE_LUAJIT)
+       find_library(LUA_LIBRARY luajit
+                       NAMES luajit-5.1)
+       find_path(LUA_INCLUDE_DIR luajit.h
+               NAMES luajit.h
+               PATH_SUFFIXES luajit-2.0)
+       if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
+               set(USE_LUAJIT TRUE)
+       endif()
+else()
+       message (STATUS "LuaJIT detection disabled! (ENABLE_LUAJIT=0)")
+endif()
+
+if(NOT USE_LUAJIT)
+       message(STATUS "LuaJIT not found, using bundled Lua.")
+       set(LUA_LIBRARY "lua")
+       set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
+       add_subdirectory(lua)
+endif()
+
index 42d31c898f8878cca48e4447a8f7630059cc3b84..96e5789e6f23d69a9db6055e89696c9a3ca37c01 100644 (file)
 #  EGL_INCLUDE_DIR  - the EGL include directory
 #  EGL_LIBRARIES    - Link these to use EGL
 
 #  EGL_INCLUDE_DIR  - the EGL include directory
 #  EGL_LIBRARIES    - Link these to use EGL
 
-# win32, apple, android NOT TESED
-# linux tested and works
-
-IF (WIN32)
-  IF (CYGWIN)
-
-    FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h )
-
-    FIND_LIBRARY(OPENGLES2_gl_LIBRARY libGLESv2 )
-
-  ELSE (CYGWIN)
-
-    IF(BORLAND)
-      SET (OPENGLES2_gl_LIBRARY import32 CACHE STRING "OpenGL ES 2.x library for win32")
-    ELSE(BORLAND)
-      # todo
-      # SET (OPENGLES_gl_LIBRARY ${SOURCE_DIR}/Dependencies/lib/release/libGLESv2.lib CACHE STRING "OpenGL ES 2.x library for win32"
-    ENDIF(BORLAND)
-
-  ENDIF (CYGWIN)
-
-ELSE (WIN32)
-
-  IF (APPLE)
-
+# Win32, Apple, and Android are not tested!
+# Linux tested and works
+
+if(WIN32)
+       if(CYGWIN)
+               find_path(OPENGLES2_INCLUDE_DIR GLES2/gl2.h)
+               find_library(OPENGLES2_LIBRARY libGLESv2)
+       else()
+               if(BORLAND)
+                       set(OPENGLES2_LIBRARY import32 CACHE STRING "OpenGL ES 2.x library for Win32")
+               else()
+                       # TODO
+                       # set(OPENGLES_LIBRARY ${SOURCE_DIR}/Dependencies/lib/release/libGLESv2.lib CACHE STRING "OpenGL ES 2.x library for win32"
+               else()
+       endif()
+elseif(APPLE)
        create_search_paths(/Developer/Platforms)
        findpkg_framework(OpenGLES2)
        create_search_paths(/Developer/Platforms)
        findpkg_framework(OpenGLES2)
-    set(OPENGLES2_gl_LIBRARY "-framework OpenGLES")
-
-  ELSE(APPLE)
-
-    FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
-      /usr/openwin/share/include
-      /opt/graphics/OpenGL/include /usr/X11R6/include
-      /usr/include
-    )
-
-    FIND_LIBRARY(OPENGLES2_gl_LIBRARY
-      NAMES GLESv2
-      PATHS /opt/graphics/OpenGL/lib
-            /usr/openwin/lib
-            /usr/shlib /usr/X11R6/lib
-            /usr/lib
-    )
-
-    IF (NOT BUILD_ANDROID)
-               FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
-                 /usr/openwin/share/include
-                 /opt/graphics/OpenGL/include /usr/X11R6/include
-                 /usr/include
+       set(OPENGLES2_LIBRARY "-framework OpenGLES")
+else()
+       find_path(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
+               PATHS /usr/openwin/share/include
+                       /opt/graphics/OpenGL/include
+                       /usr/X11R6/include
+                       /usr/include
+       )
+
+       find_library(OPENGLES2_LIBRARY
+               NAMES GLESv2
+               PATHS /opt/graphics/OpenGL/lib
+                       /usr/openwin/lib
+                       /usr/shlib /usr/X11R6/lib
+                       /usr/lib
+       )
+
+       if(NOT BUILD_ANDROID)
+               find_path(EGL_INCLUDE_DIR EGL/egl.h
+                       PATHS /usr/openwin/share/include
+                               /opt/graphics/OpenGL/include
+                               /usr/X11R6/include
+                               /usr/include
                )
 
                )
 
-               FIND_LIBRARY(EGL_egl_LIBRARY
-                 NAMES EGL
-                 PATHS /opt/graphics/OpenGL/lib
+               find_library(EGL_LIBRARY
+                       NAMES EGL
+                       PATHS /opt/graphics/OpenGL/lib
                                /usr/openwin/lib
                                /usr/openwin/lib
-                               /usr/shlib /usr/X11R6/lib
+                               /usr/shlib
+                               /usr/X11R6/lib
                                /usr/lib
                )
 
                                /usr/lib
                )
 
-               # On Unix OpenGL most certainly always requires X11.
-               # Feel free to tighten up these conditions if you don't 
-               # think this is always true.
-               # It's not true on OSX.
-
-               IF (OPENGLES2_gl_LIBRARY)
-                 IF(NOT X11_FOUND)
-                       INCLUDE(FindX11)
-                 ENDIF(NOT X11_FOUND)
-                 IF (X11_FOUND)
-                       IF (NOT APPLE)
-                         SET (OPENGLES2_LIBRARIES ${X11_LIBRARIES})
-                       ENDIF (NOT APPLE)
-                 ENDIF (X11_FOUND)
-               ENDIF (OPENGLES2_gl_LIBRARY)
-    ENDIF ()
-
-  ENDIF(APPLE)
-ENDIF (WIN32)
-
-#SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
-
-IF (BUILD_ANDROID)
-  IF(OPENGLES2_gl_LIBRARY)
-      SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
-      SET( EGL_LIBRARIES)
-      SET( OPENGLES2_FOUND "YES" )
-  ENDIF(OPENGLES2_gl_LIBRARY)
-ELSE ()
-
-  SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
-
-  IF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
-    SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
-    SET( EGL_LIBRARIES ${EGL_egl_LIBRARY} ${EGL_LIBRARIES})
-    SET( OPENGLES2_FOUND "YES" )
-  ENDIF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
-
-ENDIF ()
-
-MARK_AS_ADVANCED(
-  OPENGLES2_INCLUDE_DIR
-  OPENGLES2_gl_LIBRARY
-  EGL_INCLUDE_DIR
-  EGL_egl_LIBRARY
+               # On Unix OpenGL usually requires X11.
+               # It doesn't require X11 on OSX.
+
+               if(OPENGLES2_LIBRARY)
+                       if(NOT X11_FOUND)
+                               include(FindX11)
+                       endif()
+                       if(X11_FOUND)
+                               set(OPENGLES2_LIBRARIES ${X11_LIBRARIES})
+                       endif()
+               endif()
+       endif()
+endif()
+
+set(OPENGLES2_LIBRARIES ${OPENGLES2_LIBRARIES} ${OPENGLES2_LIBRARY})
+
+if(BUILD_ANDROID)
+       if(OPENGLES2_LIBRARY)
+               set(EGL_LIBRARIES)
+               set(OPENGLES2_FOUND TRUE)
+       endif()
+else()
+       if(OPENGLES2_LIBRARY AND EGL_LIBRARY)
+               set(OPENGLES2_LIBRARIES ${OPENGLES2_LIBRARY} ${OPENGLES2_LIBRARIES})
+               set(EGL_LIBRARIES ${EGL_LIBRARY} ${EGL_LIBRARIES})
+               set(OPENGLES2_FOUND TRUE)
+       endif()
+endif()
+
+mark_as_advanced(
+       OPENGLES2_INCLUDE_DIR
+       OPENGLES2_LIBRARY
+       EGL_INCLUDE_DIR
+       EGL_LIBRARY
 )
 
 )
 
-IF(OPENGLES2_FOUND)
-    MESSAGE(STATUS "Found system opengles2 library ${OPENGLES2_LIBRARIES}")
-ELSE ()
-    SET(OPENGLES2_LIBRARIES "")
-ENDIF ()
+if(OPENGLES2_FOUND)
+       message(STATUS "Found system OpenGL ES 2 library: ${OPENGLES2_LIBRARIES}")
+else()
+       set(OPENGLES2_LIBRARIES "")
+endif()
+
index 4a7f183dadc64729696fd8624dd9cd9de9c5b92f..76a0a90c68b1b8f2a0315f5f15c6ff4b15592e03 100644 (file)
@@ -2,14 +2,14 @@
 
 if(VERSION_EXTRA)
        set(VERSION_GITHASH "${VERSION_STRING}")
 
 if(VERSION_EXTRA)
        set(VERSION_GITHASH "${VERSION_STRING}")
-else(VERSION_EXTRA)
+else()
        execute_process(COMMAND git describe --always --tag --dirty
                WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
                OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
                ERROR_QUIET)
 
        if(VERSION_GITHASH)
        execute_process(COMMAND git describe --always --tag --dirty
                WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
                OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
                ERROR_QUIET)
 
        if(VERSION_GITHASH)
-               message(STATUS "*** Detected git version ${VERSION_GITHASH} ***")
+               message(STATUS "*** Detected Git version ${VERSION_GITHASH} ***")
        else()
                set(VERSION_GITHASH "${VERSION_STRING}")
        endif()
        else()
                set(VERSION_GITHASH "${VERSION_STRING}")
        endif()
@@ -18,3 +18,4 @@ endif()
 configure_file(
        ${GENERATE_VERSION_SOURCE_DIR}/cmake_config_githash.h.in
        ${GENERATE_VERSION_BINARY_DIR}/cmake_config_githash.h)
 configure_file(
        ${GENERATE_VERSION_SOURCE_DIR}/cmake_config_githash.h.in
        ${GENERATE_VERSION_BINARY_DIR}/cmake_config_githash.h)
+
diff --git a/cmake/Modules/misc.cmake b/cmake/Modules/misc.cmake
deleted file mode 100644 (file)
index 0bd2e3f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Random macros
-#
-
-# Not used ATM
-
-MACRO (GETDATETIME RESULT)
-    IF (WIN32)
-               EXECUTE_PROCESS(COMMAND "cmd" /C echo %date% %time% OUTPUT_VARIABLE ${RESULT})
-               string(REGEX REPLACE "\n" "" ${RESULT} "${${RESULT}}")
-    ELSEIF(UNIX)
-        EXECUTE_PROCESS(COMMAND "date" "+%Y-%m-%d_%H:%M:%S" OUTPUT_VARIABLE ${RESULT})
-               string(REGEX REPLACE "\n" "" ${RESULT} "${${RESULT}}")
-    ELSE (WIN32)
-        MESSAGE(SEND_ERROR "date not implemented")
-        SET(${RESULT} "Unknown")
-    ENDIF (WIN32)
-
-       string(REGEX REPLACE " " "_" ${RESULT} "${${RESULT}}")
-ENDMACRO (GETDATETIME)
-
index cd818e1d8c86fd3cb0602dc5bec3381d7d48f370..036cea6c93aea61a793525ea27037be6677deee9 100644 (file)
@@ -1,12 +1,18 @@
-.\" Minetest man page
 .TH minetest 6 "10 September 2013" "" ""
 
 .SH NAME
 .TH minetest 6 "10 September 2013" "" ""
 
 .SH NAME
-minetest \- Multiplayer infinite-world block sandbox
+minetest, minetestserver \- Multiplayer infinite-world block sandbox
 
 .SH SYNOPSIS
 .B minetest
 
 .SH SYNOPSIS
 .B minetest
-[ OPTION ... ]
+[\fB--server SERVER OPTIONS\fR | \fBCLIENT OPTIONS\fR]
+[\fBCOMMON OPTIONS\fR]
+[\fBWORLD PATH\fR]
+
+.B minetestserver
+[\fBSERVER OPTIONS\fR]
+[\fBCOMMON OPTIONS\fR]
+[\fBWORLD PATH\fR]
 
 .SH DESCRIPTION
 .B Minetest
 
 .SH DESCRIPTION
 .B Minetest
@@ -14,79 +20,79 @@ is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started Oct
 .PP
 The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
 
 .PP
 The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
 
-.SH OPTIONS
+.SH COMMON OPTIONS
 .TP
 .TP
-\-\-address <value>
-Address to connect to
+.B \-\-help
+Print allowed options and exit
 .TP
 .TP
-\-\-config <value>
+.B \-\-version
+Print version information and exit
+.TP
+.B \-\-config <value>
 Load configuration from specified file
 .TP
 Load configuration from specified file
 .TP
-\-\-disable\-unittests
-Disable unit tests
+.B \-\-logfile <value>
+Set logfile path (debug.txt)
 .TP
 .TP
-\-\-enable\-unittests
-Enable unit tests
+.B \-\-info
+Print more information to console
 .TP
 .TP
-\-\-gameid <value>
-Set gameid
+.B \-\-verbose
+Print even more information to console
 .TP
 .TP
-\-\-go
-Disable main menu
+.B \-\-trace
+Print enormous amounts of information to console
 .TP
 .TP
-\-\-help
-Show allowed options
+.B \-\-gameid <value>
+Set gameid
 .TP
 .TP
-\-\-version
-Show version information
+.B \-\-worldname <value>
+Set world path by name
 .TP
 .TP
-\-\-logfile <value>
-Set logfile path (debug.txt)
+.B \-\-world <value> | list
+Set world path or list worlds
 .TP
 .TP
-\-\-map\-dir <value>
+.B \-\-map\-dir <value>
 Same as \-\-world (deprecated)
 .TP
 Same as \-\-world (deprecated)
 .TP
-\-\-name <value>
-Set player name
-.TP
-\-\-password <value>
-Set password
-.TP
-\-\-port <value>
+.B \-\-port <value>
 Set network port (UDP) to use
 .TP
 Set network port (UDP) to use
 .TP
-\-\-random\-input
-Enable random user input, for testing
-.TP
-\-\-server
-Run dedicated server
+.B \-\-run\-unittests
+Run unit tests and exit
+
+.SH CLIENT OPTIONS
 .TP
 .TP
-\-\-speedtests
-Run speed tests
+.B \-\-address <value>
+Address to connect to
 .TP
 .TP
-\-\-videomodes
-List available video modes
+.B \-\-go
+Disable main menu
 .TP
 .TP
-\-\-info
-Print more information to console
+.B \-\-name <value>
+Set player name
 .TP
 .TP
-\-\-verbose
-Print even more information to console
+.B \-\-password <value>
+Set password
 .TP
 .TP
-\-\-trace
-Print enormous amounts of information to console
+.B \-\-random\-input
+Enable random user input, for testing (client only)
 .TP
 .TP
-\-\-world <value>
-Set world path
+.B \-\-videomodes
+List available video modes (client only)
 .TP
 .TP
-\-\-migrate <value>
-Migrate from current map backend to another. Possible values are sqlite3
-and leveldb. Only works when using \-\-server.
+.B \-\-speedtests
+Run speed tests
 
 
-.SH ENVIRONMENT VARIABLES
+.SH SERVER OPTIONS
+.TP
+.B \-\-migrate <value>
+Migrate from current map backend to another. Possible values are sqlite3,
+leveldb, redis, and dummy.
 
 
+.SH ENVIRONMENT
 .TP
 .TP
-MINETEST_SUBGAME_PATH
+.B MINETEST_SUBGAME_PATH
 Colon delimited list of directories to search for subgames.
 
 .SH BUGS
 Colon delimited list of directories to search for subgames.
 
 .SH BUGS
@@ -103,5 +109,3 @@ Juhani Numminen <juhaninumminen0@gmail.com>.
 .SH WWW
 http://www.minetest.net/
 
 .SH WWW
 http://www.minetest.net/
 
-.SH "SEE ALSO"
-.BR minetestserver(6)
index 1d4a5f838b37efc2acc6cadb8f6ea13ccb432ad9..db5330d3c3ae7523fa408cc5c656d67f8e82763a 100644 (file)
@@ -1,77 +1,2 @@
-.\" Minetestserver man page
-.TH minetestserver 6 "10 September 2013" "" ""
+.so man6/minetest.6
 
 
-.SH NAME
-minetestserver \- Minetest server
-
-.SH SYNOPSIS
-.B minetestserver
-[ OPTION ... ]
-
-.SH DESCRIPTION
-.B Minetest
-is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started October 2010), with a goal of taking the survival multiplayer gameplay to a slightly different direction.
-.PP
-The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
-
-.SH OPTIONS
-.TP
-\-\-config <value>
-Load configuration from specified file
-.TP
-\-\-disable\-unittests
-Disable unit tests
-.TP
-\-\-enable\-unittests
-Enable unit tests
-.TP
-\-\-gameid <value>
-Set gameid
-.TP
-\-\-help
-Show allowed options
-.TP
-\-\-version
-Show version information
-.TP
-\-\-logfile <value>
-Set logfile path (debug.txt)
-.TP
-\-\-map\-dir <value>
-Same as \-\-world (deprecated)
-.TP
-\-\-port <value>
-Set network port (UDP) to use
-.TP
-\-\-info
-Print more information to console
-.TP
-\-\-verbose
-Print even more information to console
-.TP
-\-\-trace
-Print enormous amounts of information to console
-.TP
-\-\-world <value>
-Set world path
-.TP
-\-\-migrate <value>
-Migrate from current map backend to another. Possible values are sqlite3
-and leveldb.
-
-.SH BUGS
-Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
-
-.SH AUTHOR
-.PP
-Perttu Ahola <celeron55@gmail.com>
-and contributors.
-.PP
-This man page was originally written by
-Juhani Numminen <juhaninumminen0@gmail.com>.
-
-.SH WWW
-http://www.minetest.net/
-
-.SH "SEE ALSO"
-.BR minetest(6)
index ecb314c12b6ce1e1ecc28d46d4a870a99eda753b..5f214391a7a95ff00a3f44fb6956716ed7aee16a 100644 (file)
@@ -5,10 +5,10 @@
 #include "config.h"\r
 #undef USE_CMAKE_CONFIG_H\r
 \r
 #include "config.h"\r
 #undef USE_CMAKE_CONFIG_H\r
 \r
-#if RUN_IN_PLACE == 1\r
-       #define BUILDMODE "RUN_IN_PLACE=1\0"\r
+#if RUN_IN_PLACE\r
+       #define BUILDMODE "RUN_IN_PLACE=1"\r
 #else\r
 #else\r
-       #define BUILDMODE "RUN_IN_PLACE=0\0"\r
+       #define BUILDMODE "RUN_IN_PLACE=0"\r
 #endif\r
 \r
 LANGUAGE 0, SUBLANG_NEUTRAL\r
 #endif\r
 \r
 LANGUAGE 0, SUBLANG_NEUTRAL\r
@@ -20,8 +20,8 @@ LANGUAGE 0, SUBLANG_NEUTRAL
 //\r
 \r
 1 VERSIONINFO\r
 //\r
 \r
 1 VERSIONINFO\r
- FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH_ORIG,0\r
- PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH_ORIG,0\r
+ FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0\r
+ PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifndef NDEBUG\r
  FILEFLAGS 0x1L\r
  FILEFLAGSMASK 0x3fL\r
 #ifndef NDEBUG\r
  FILEFLAGS 0x1L\r
@@ -36,16 +36,16 @@ BEGIN
     BEGIN\r
         BLOCK "040904b0"\r
     BEGIN\r
     BEGIN\r
         BLOCK "040904b0"\r
     BEGIN\r
-        VALUE "Comments", "\0"\r
-        VALUE "CompanyName", "Minetest Community\0"\r
-        VALUE "FileDescription", "Minetest engine core main application\0"\r
+        VALUE "Comments", ""\r
+        VALUE "CompanyName", PROJECT_NAME " community"\r
+        VALUE "FileDescription", PROJECT_NAME " engine main executable"\r
         VALUE "FileVersion", VERSION_STRING\r
         VALUE "FileVersion", VERSION_STRING\r
-        VALUE "InternalName", "Minetest engine\0"\r
-        VALUE "LegalCopyright", "(c) 2014 celeron55\0"\r
-        VALUE "LegalTrademarks", """Minetest"" is property of Minetest community, don't use the name for your application without permission!\0"\r
-        VALUE "OriginalFilename", "minetest.exe\0"\r
-        VALUE "PrivateBuild", VERSION_EXTRA_STRING\r
-        VALUE "ProductName", "Minetest\0"\r
+        VALUE "InternalName", PROJECT_NAME\r
+        VALUE "LegalCopyright", "(c) 2014 celeron55"\r
+        VALUE "LegalTrademarks", """Minetest"" is the property of the Minetest community, don't use it without permission!"\r
+        VALUE "OriginalFilename", "minetest.exe"\r
+        VALUE "PrivateBuild", VERSION_EXTRA\r
+        VALUE "ProductName", PROJECT_NAME\r
         VALUE "ProductVersion", PRODUCT_VERSION_STRING\r
         VALUE "SpecialBuild", BUILDMODE\r
     END\r
         VALUE "ProductVersion", PRODUCT_VERSION_STRING\r
         VALUE "SpecialBuild", BUILDMODE\r
     END\r
@@ -55,3 +55,4 @@ BEGIN
     VALUE "Translation", 0x409, 1200\r
 END\r
 END\r
     VALUE "Translation", 0x409, 1200\r
 END\r
 END\r
+\r
index 2ce1086813ea7307b72e4e97150d90d1e2a890c4..b33bea87b49f5f909b08a7eb51e75030f9221b47 100644 (file)
@@ -1,7 +1,8 @@
-project(minetest)
-cmake_minimum_required( VERSION 2.6 )
+cmake_minimum_required(VERSION 2.6)
+
+project(Minetest)
+string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 
 
-INCLUDE(CheckCSourceRuns)
 INCLUDE(CheckIncludeFiles)
 
 # Add custom SemiDebug build mode
 INCLUDE(CheckIncludeFiles)
 
 # Add custom SemiDebug build mode
@@ -22,83 +23,69 @@ set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
        FORCE
 )
 
        FORCE
 )
 
+
 # Set some random things default to not being visible in the GUI
 mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
 
 # Set some random things default to not being visible in the GUI
 mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
 
-option(ENABLE_CURL "Enable cURL support for fetching media" 1)
 
 
-if (NOT ENABLE_CURL)
-       mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
-endif(NOT ENABLE_CURL)
+option(ENABLE_CURL "Enable cURL support for fetching media" TRUE)
+set(USE_CURL FALSE)
 
 
-if( ENABLE_CURL )
+if(ENABLE_CURL)
        find_package(CURL)
        find_package(CURL)
-endif( ENABLE_CURL )
-set(USE_CURL 0)
-if (CURL_FOUND AND ENABLE_CURL)
-       message(STATUS "cURL support enabled")
-       set(USE_CURL 1)
-endif(CURL_FOUND AND ENABLE_CURL)
+       if (CURL_FOUND)
+               message(STATUS "cURL support enabled.")
+               set(USE_CURL TRUE)
+       endif()
+else()
+       mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
+endif()
 
 
-# user-visible option to enable/disable gettext usage
-OPTION(ENABLE_GETTEXT "Use GetText for internationalization" 0)
 
 
-# this is only set to 1 if gettext is enabled _and_ available
-set(USE_GETTEXT 0)
+option(ENABLE_GETTEXT "Use GetText for internationalization" FALSE)
+set(USE_GETTEXT FALSE)
 
 if(ENABLE_GETTEXT)
        find_package(GettextLib)
 
 if(ENABLE_GETTEXT)
        find_package(GettextLib)
+       if(GETTEXT_FOUND)
+               if(WIN32)
+                       message(STATUS "GetText library: ${GETTEXT_LIBRARY}")
+                       message(STATUS "GetText DLL: ${GETTEXT_DLL}")
+                       message(STATUS "GetText iconv DLL: ${GETTEXT_ICONV_DLL}")
+               endif()
+               set(USE_GETTEXT TRUE)
+               message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
+       endif(GETTEXT_FOUND)
 else()
 else()
-       MARK_AS_ADVANCED(GETTEXT_ICONV_DLL GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
+       mark_as_advanced(GETTEXT_ICONV_DLL GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
+       message(STATUS "GetText disabled.")
 endif()
 
 endif()
 
-if(GETTEXT_FOUND AND ENABLE_GETTEXT)
-       message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
-       message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
-       if(WIN32)
-               message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
-               message(STATUS "gettext dll: ${GETTEXT_DLL}")
-               message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
-       endif()
-       set(USE_GETTEXT 1)
-       message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
-elseif(GETTEXT_FOUND AND NOT ENABLE_GETTEXT)
-       MESSAGE(STATUS "GetText found but disabled;")
-else(GETTEXT_FOUND AND ENABLE_GETTEXT)
-       message(STATUS "GetText disabled")
-endif(GETTEXT_FOUND AND ENABLE_GETTEXT)
-
-# user visible option to enable/disable sound
-OPTION(ENABLE_SOUND "Enable sound" ON)
-
-# this is only set to 1 if sound is enabled _and_ available
-set(USE_SOUND 0)
-set(SOUND_PROBLEM 0)
-
-if(ENABLE_SOUND AND BUILD_CLIENT)
+
+option(ENABLE_SOUND "Enable sound" TRUE)
+set(USE_SOUND FALSE)
+
+if(BUILD_CLIENT AND ENABLE_SOUND)
        # Sound libraries
        find_package(OpenAL)
        find_package(Vorbis)
        if(NOT OPENAL_FOUND)
                message(STATUS "Sound enabled, but OpenAL not found!")
        # Sound libraries
        find_package(OpenAL)
        find_package(Vorbis)
        if(NOT OPENAL_FOUND)
                message(STATUS "Sound enabled, but OpenAL not found!")
-               set(SOUND_PROBLEM 1)
-               MARK_AS_ADVANCED(CLEAR OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
+               mark_as_advanced(CLEAR OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
        endif()
        if(NOT VORBIS_FOUND)
                message(STATUS "Sound enabled, but Vorbis libraries not found!")
        endif()
        if(NOT VORBIS_FOUND)
                message(STATUS "Sound enabled, but Vorbis libraries not found!")
-               set(SOUND_PROBLEM 1)
-               MARK_AS_ADVANCED(CLEAR OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY)
+               mark_as_advanced(CLEAR OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY)
        endif()
        if(OPENAL_FOUND AND VORBIS_FOUND)
        endif()
        if(OPENAL_FOUND AND VORBIS_FOUND)
-               set(USE_SOUND 1)
-               message(STATUS "Sound enabled")
+               set(USE_SOUND TRUE)
+               message(STATUS "Sound enabled.")
+       else()
+               message(FATAL_ERROR "Sound enabled, but cannot be used.\n"
+                       "To continue, either fill in the required paths or disable sound. (-DENABLE_SOUND=0)")
        endif()
        endif()
-endif(ENABLE_SOUND AND BUILD_CLIENT)
-
-if(SOUND_PROBLEM)
-       message(FATAL_ERROR "Sound enabled, but cannot be used.\n"
-               "To continue, either fill in the required paths or disable sound. (-DENABLE_SOUND=0)")
 endif()
 endif()
+
 if(USE_SOUND)
        set(sound_SRCS sound_openal.cpp)
        set(SOUND_INCLUDE_DIRS
 if(USE_SOUND)
        set(sound_SRCS sound_openal.cpp)
        set(SOUND_INCLUDE_DIRS
@@ -112,18 +99,87 @@ if(USE_SOUND)
                )
 endif()
 
                )
 endif()
 
-option(ENABLE_FREETYPE "Enable freetype2 (truetype fonts and basic unicode support)" OFF)
-set(USE_FREETYPE 0)
+
+option(ENABLE_GLES "Enable OpenGL ES support" FALSE)
+mark_as_advanced(ENABLE_GLES)
+if(ENABLE_GLES)
+       find_package(OpenGLES2)
+endif()
+
+
+option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode support)" TRUE)
+set(USE_FREETYPE FALSE)
+
 if(ENABLE_FREETYPE)
 if(ENABLE_FREETYPE)
-       set(USE_FREETYPE 1)
+       if(UNIX)
+               include(FindPkgConfig)
+               if(PKG_CONFIG_FOUND)
+                       pkg_check_modules(FREETYPE QUIET freetype2)
+                       if(FREETYPE_FOUND)
+                               SET(FREETYPE_PKGCONFIG_FOUND TRUE)
+                               SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES})
+                               # Because CMake is idiotic
+                               string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS})
+                               string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS})
+                       endif(FREETYPE_FOUND)
+               endif(PKG_CONFIG_FOUND)
+       endif(UNIX)
+       if(NOT FREETYPE_FOUND)
+               find_package(Freetype)
+       endif()
+       if(FREETYPE_FOUND)
+               set(USE_FREETYPE TRUE)
+               set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
+               set(CGUITTFONT_LIBRARY cguittfont)
+       endif()
 endif(ENABLE_FREETYPE)
 
 endif(ENABLE_FREETYPE)
 
+
+find_package(Lua REQUIRED)
+
+
+option(ENABLE_LEVELDB "Enable LevelDB backend" TRUE)
+set(USE_LEVELDB FALSE)
+
+if(ENABLE_LEVELDB)
+       find_library(LEVELDB_LIBRARY leveldb)
+       find_path(LEVELDB_INCLUDE_DIR db.h PATH_SUFFIXES leveldb)
+       if(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
+               set(USE_LEVELDB TRUE)
+               message(STATUS "LevelDB backend enabled.")
+               include_directories(${LEVELDB_INCLUDE_DIR})
+       else()
+               message(STATUS "LevelDB not found!")
+       endif()
+endif(ENABLE_LEVELDB)
+
+
+OPTION(ENABLE_REDIS "Enable Redis backend" TRUE)
+set(USE_REDIS FALSE)
+
+if(ENABLE_REDIS)
+       find_library(REDIS_LIBRARY hiredis)
+       find_path(REDIS_INCLUDE_DIR hiredis.h PATH_SUFFIXES hiredis)
+       if(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+               set(USE_REDIS TRUE)
+               message(STATUS "Redis backend enabled.")
+               include_directories(${REDIS_INCLUDE_DIR})
+       else(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+               message(STATUS "Redis not found!")
+       endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+endif(ENABLE_REDIS)
+
+
+find_package(SQLite3 REQUIRED)
+find_package(Json REQUIRED)
+
+
 if(NOT MSVC)
 if(NOT MSVC)
-       set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
+       set(USE_GPROF FALSE CACHE BOOL "Use -pg flag for g++")
 endif()
 
 # Use cmake_config.h
 endif()
 
 # Use cmake_config.h
-add_definitions ( -DUSE_CMAKE_CONFIG_H )
+add_definitions(-DUSE_CMAKE_CONFIG_H)
 
 if(WIN32)
        # Windows
 
 if(WIN32)
        # Windows
@@ -150,7 +206,7 @@ if(WIN32)
                                CACHE PATH "freetype include dir")
                set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib"
                                CACHE FILEPATH "Path to freetype247.lib")
                                CACHE PATH "freetype include dir")
                set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib"
                                CACHE FILEPATH "Path to freetype247.lib")
-       endif(USE_FREETYPE)
+       endif()
        if(ENABLE_SOUND)
                set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)")
                set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)")
        if(ENABLE_SOUND)
                set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)")
                set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)")
@@ -166,9 +222,9 @@ else()
                find_package(BZip2 REQUIRED)
                find_package(PNG REQUIRED)
                if(APPLE)
                find_package(BZip2 REQUIRED)
                find_package(PNG REQUIRED)
                if(APPLE)
-                       FIND_LIBRARY(CARBON_LIB Carbon)
-                       FIND_LIBRARY(COCOA_LIB Cocoa)
-                       FIND_LIBRARY(IOKIT_LIB IOKit)
+                       find_library(CARBON_LIB Carbon)
+                       find_library(COCOA_LIB Cocoa)
+                       find_library(IOKIT_LIB IOKit)
                        mark_as_advanced(
                                CARBON_LIB
                                COCOA_LIB
                        mark_as_advanced(
                                CARBON_LIB
                                COCOA_LIB
@@ -191,156 +247,14 @@ else()
        set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
 endif()
 
        set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
 endif()
 
-find_package(SQLite3 REQUIRED)
-find_package(Json REQUIRED)
-
-option(ENABLE_GLES "Enable OpenGL ES support" 0)
-mark_as_advanced(ENABLE_GLES)
-if(ENABLE_GLES)
-       find_package(OpenGLES2)
-endif(ENABLE_GLES)
-
-if(USE_FREETYPE)
-       if(UNIX)
-               include(FindPkgConfig)
-               if(PKG_CONFIG_FOUND)
-                       pkg_check_modules(FREETYPE QUIET freetype2)
-                       if(FREETYPE_FOUND)
-                               SET(FREETYPE_PKGCONFIG_FOUND TRUE)
-                               SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES})
-                               # because cmake is idiotic
-                               string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS})
-                               string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS})
-                       endif(FREETYPE_FOUND)
-               endif(PKG_CONFIG_FOUND)
-       endif(UNIX)
-       if(NOT FREETYPE_FOUND)
-               find_package(Freetype REQUIRED)
-       endif(NOT FREETYPE_FOUND)
-       set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
-       set(CGUITTFONT_LIBRARY cguittfont)
-endif(USE_FREETYPE)
-
-if (NOT DISABLE_LUAJIT)
-       find_library(LUA_LIBRARY luajit
-                       NAMES luajit-5.1)
-       find_path(LUA_INCLUDE_DIR luajit.h
-               NAMES luajit.h
-               PATH_SUFFIXES luajit-2.0)
-       message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
-       message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")
-else (NOT ${DISABLE_LUAJIT} MATCHES "1")
-       message (STATUS "LuaJIT detection disabled! (DISABLE_LUAJIT=1)")
-       set(LUA_LIBRARY "")
-       set(LUA_INCLUDE_DIR "")
-endif (NOT DISABLE_LUAJIT)
-
-set(USE_LUAJIT 0)
-if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
-       message (STATUS "LuaJIT found, checking for broken versions...")
-       if(CMAKE_CROSSCOMPILING)
-               message(WARNING "Cross-compiling enabled, assuming LuaJIT is not broken")
-               set(VALID_LUAJIT_VERSION 1)
-       else(CMAKE_CROSSCOMPILING)
-               set(BACKUP_REQUIRED_INCS CMAKE_REQUIRED_INCLUDES)
-               set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} ${LUA_INCLUDE_DIR}")
-               CHECK_C_SOURCE_RUNS("
-                       #include <luajit.h>
-                       #include <stdio.h>
-                       #include <string.h>
-
-                       #define ARRAYSIZE(a) (sizeof(a) / sizeof((a)[0]))
-
-                       static char *broken_luajit_versions[] = {
-                                       \"LuaJIT 2.0.0-beta7\",
-                                       \"LuaJIT 2.0.0-beta6\",
-                                       \"LuaJIT 2.0.0-beta5\",
-                                       \"LuaJIT 2.0.0-beta4\",
-                                       \"LuaJIT 2.0.0-beta3\",
-                                       \"LuaJIT 2.0.0-beta2\",
-                                       \"LuaJIT 2.0.0-beta1\"
-                       };
-
-                       int main(int argc, char *argv[]) {
-                               unsigned int i;
-                               for (i = 0; i < ARRAYSIZE(broken_luajit_versions); i++) {
-                                       if (strcmp(LUAJIT_VERSION, broken_luajit_versions[i]) == 0) {
-                                               return 1;
-                                       }
-                               }
-                               return 0;
-                       }
-                       "
-                       VALID_LUAJIT_VERSION)
-               set(CMAKE_REQUIRED_INCLUDES BACKUP_REQUIRED_INCS)
-       endif(CMAKE_CROSSCOMPILING)
-       if (VALID_LUAJIT_VERSION)
-               message (STATUS "LuaJIT version ok")
-               set(USE_LUAJIT 1)
-       else (VALID_LUAJIT_VERSION)
-               message (STATUS "LuaJIT versions till 2.0.0beta7 known to be broken, update to at least beta8")
-               set(USE_LUAJIT 0)
-       endif (VALID_LUAJIT_VERSION)
-endif (LUA_LIBRARY AND LUA_INCLUDE_DIR)
-
-if(NOT USE_LUAJIT)
-       message (STATUS "LuaJIT not found, using bundled Lua.")
-       set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
-       set(LUA_LIBRARY "lua")
-       add_subdirectory(lua)
-endif(NOT USE_LUAJIT)
-
-mark_as_advanced(LUA_LIBRARY)
-mark_as_advanced(LUA_INCLUDE_DIR)
-
-set(USE_LEVELDB 0)
-
-OPTION(ENABLE_LEVELDB "Enable LevelDB backend")
-
-if(ENABLE_LEVELDB)
-       find_library(LEVELDB_LIBRARY leveldb)
-       find_path(LEVELDB_INCLUDE_DIR db.h PATH_SUFFIXES leveldb)
-       message (STATUS "LevelDB library: ${LEVELDB_LIBRARY}")
-       message (STATUS "LevelDB headers: ${LEVELDB_INCLUDE_DIR}")
-       if(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
-               set(USE_LEVELDB 1)
-               message(STATUS "LevelDB backend enabled")
-               include_directories(${LEVELDB_INCLUDE_DIR})
-       else(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
-               set(USE_LEVELDB 0)
-               message(STATUS "LevelDB not found!")
-       endif(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
-endif(ENABLE_LEVELDB)
-
-set(USE_REDIS 0)
-
-OPTION(ENABLE_REDIS "Enable redis backend" 0)
-
-if(ENABLE_REDIS)
-       find_library(REDIS_LIBRARY hiredis)
-       find_path(REDIS_INCLUDE_DIR hiredis.h PATH_SUFFIXES hiredis)
-       message(STATUS "redis library: ${REDIS_LIBRARY}")
-       message(STATUS "redis headers: ${REDIS_INCLUDE_DIR}")
-       if(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
-               set(USE_REDIS 1)
-               message(STATUS "redis backend enabled")
-               include_directories(${REDIS_INCLUDE_DIR})
-       else(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
-               set(USE_REDIS 0)
-               message(STATUS "redis not found!")
-       endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
-endif(ENABLE_REDIS)
-
-CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
-if(NOT HAVE_ENDIAN_H)
-  set(HAVE_ENDIAN_H 0)
-endif(NOT HAVE_ENDIAN_H)
+check_include_files(endian.h HAVE_ENDIAN_H)
 
 configure_file(
        "${PROJECT_SOURCE_DIR}/cmake_config.h.in"
        "${PROJECT_BINARY_DIR}/cmake_config.h"
 )
 
 
 configure_file(
        "${PROJECT_SOURCE_DIR}/cmake_config.h.in"
        "${PROJECT_BINARY_DIR}/cmake_config.h"
 )
 
+
 # Add a target that always rebuilds cmake_config_githash.h
 add_custom_target(GenerateVersion
        COMMAND ${CMAKE_COMMAND}
 # Add a target that always rebuilds cmake_config_githash.h
 add_custom_target(GenerateVersion
        COMMAND ${CMAKE_COMMAND}
@@ -351,11 +265,13 @@ add_custom_target(GenerateVersion
        -P "${CMAKE_SOURCE_DIR}/cmake/Modules/GenerateVersion.cmake"
        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
 
        -P "${CMAKE_SOURCE_DIR}/cmake/Modules/GenerateVersion.cmake"
        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
 
+
 add_subdirectory(jthread)
 add_subdirectory(network)
 add_subdirectory(script)
 add_subdirectory(util)
 
 add_subdirectory(jthread)
 add_subdirectory(network)
 add_subdirectory(script)
 add_subdirectory(util)
 
+
 set (unittests_SRCS
        test.cpp
 )
 set (unittests_SRCS
        test.cpp
 )
@@ -437,9 +353,10 @@ set(common_SRCS
        ${unittests_SRCS}
 )
 
        ${unittests_SRCS}
 )
 
+
 # This gives us the icon and file version information
 if(WIN32)
 # This gives us the icon and file version information
 if(WIN32)
-       set(WINRESOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc)
+       set(WINRESOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc")
        if(MINGW)
                if(NOT CMAKE_RC_COMPILER)
                        set(CMAKE_RC_COMPILER "windres.exe")
        if(MINGW)
                if(NOT CMAKE_RC_COMPILER)
                        set(CMAKE_RC_COMPILER "windres.exe")
@@ -456,16 +373,16 @@ if(WIN32)
        endif(MINGW)
 endif()
 
        endif(MINGW)
 endif()
 
-# Client sources
 
 
+# Client sources
 if (BUILD_CLIENT)
        add_subdirectory(client)
 endif(BUILD_CLIENT)
 
 if (BUILD_CLIENT)
        add_subdirectory(client)
 endif(BUILD_CLIENT)
 
-set(minetest_SRCS
+set(client_SRCS
+       ${client_SRCS}
        ${common_SRCS}
        ${sound_SRCS}
        ${common_SRCS}
        ${sound_SRCS}
-       ${client_SRCS}
        ${client_network_SRCS}
        camera.cpp
        chat.cpp
        ${client_network_SRCS}
        camera.cpp
        chat.cpp
@@ -500,16 +417,16 @@ set(minetest_SRCS
        shader.cpp
        sky.cpp
        wieldmesh.cpp
        shader.cpp
        sky.cpp
        wieldmesh.cpp
-       ${minetest_SCRIPT_SRCS}
+       ${client_SCRIPT_SRCS}
 )
 )
-list(SORT minetest_SRCS)
+list(SORT client_SRCS)
 
 # Server sources
 
 # Server sources
-set(minetestserver_SRCS
+set(server_SRCS
        ${common_SRCS}
        main.cpp
 )
        ${common_SRCS}
        main.cpp
 )
-list(SORT minetestserver_SRCS)
+list(SORT server_SRCS)
 
 include_directories(
        ${PROJECT_BINARY_DIR}
 
 include_directories(
        ${PROJECT_BINARY_DIR}
@@ -526,26 +443,24 @@ include_directories(
        ${PROJECT_SOURCE_DIR}/script
 )
 
        ${PROJECT_SOURCE_DIR}/script
 )
 
+
 if(USE_FREETYPE)
 if(USE_FREETYPE)
-       include_directories(
-               ${FREETYPE_INCLUDE_DIRS}
-               ${CGUITTFONT_INCLUDE_DIR}
-       )
-endif(USE_FREETYPE)
+       include_directories(${FREETYPE_INCLUDE_DIRS} ${CGUITTFONT_INCLUDE_DIR})
+endif()
 
 if(USE_CURL)
 
 if(USE_CURL)
-       include_directories(
-               ${CURL_INCLUDE_DIR}
-       )
-endif(USE_CURL)
+       include_directories(${CURL_INCLUDE_DIR})
+endif()
+
 
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
 
 
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
 
+
 if(BUILD_CLIENT)
 if(BUILD_CLIENT)
-       add_executable(${PROJECT_NAME} ${minetest_SRCS})
-       add_dependencies(${PROJECT_NAME} GenerateVersion)
-       set(minetest_LIBS
-               ${PROJECT_NAME}
+       add_executable(${PROJECT_NAME_LOWER} ${client_SRCS})
+       add_dependencies(${PROJECT_NAME_LOWER} GenerateVersion)
+       set(client_LIBS
+               ${PROJECT_NAME_LOWER}
                ${ZLIB_LIBRARIES}
                ${IRRLICHT_LIBRARY}
                ${OPENGL_LIBRARIES}
                ${ZLIB_LIBRARIES}
                ${IRRLICHT_LIBRARY}
                ${OPENGL_LIBRARIES}
@@ -564,46 +479,47 @@ if(BUILD_CLIENT)
        )
        if(APPLE)
                target_link_libraries(
        )
        if(APPLE)
                target_link_libraries(
-                       ${minetest_LIBS}
+                       ${client_LIBS}
                        ${ICONV_LIBRARY}
                )
        else()
                target_link_libraries(
                        ${ICONV_LIBRARY}
                )
        else()
                target_link_libraries(
-                       ${minetest_LIBS}
+                       ${client_LIBS}
                )
        endif()
        if(USE_CURL)
                target_link_libraries(
                )
        endif()
        if(USE_CURL)
                target_link_libraries(
-                       ${PROJECT_NAME}
+                       ${PROJECT_NAME_LOWER}
                        ${CURL_LIBRARY}
                )
                        ${CURL_LIBRARY}
                )
-       endif(USE_CURL)
+       endif()
        if(USE_FREETYPE)
                if(FREETYPE_PKGCONFIG_FOUND)
        if(USE_FREETYPE)
                if(FREETYPE_PKGCONFIG_FOUND)
-                       set_target_properties(${PROJECT_NAME}
+                       set_target_properties(${PROJECT_NAME_LOWER}
                                PROPERTIES
                                COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
                        )
                                PROPERTIES
                                COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
                        )
-               endif(FREETYPE_PKGCONFIG_FOUND)
+               endif()
                target_link_libraries(
                target_link_libraries(
-                       ${PROJECT_NAME}
+                       ${PROJECT_NAME_LOWER}
                        ${FREETYPE_LIBRARY}
                        ${CGUITTFONT_LIBRARY}
                )
                        ${FREETYPE_LIBRARY}
                        ${CGUITTFONT_LIBRARY}
                )
-       endif(USE_FREETYPE)
+       endif()
        if (USE_LEVELDB)
        if (USE_LEVELDB)
-               target_link_libraries(${PROJECT_NAME} ${LEVELDB_LIBRARY})
-       endif(USE_LEVELDB)
+               target_link_libraries(${PROJECT_NAME_LOWER} ${LEVELDB_LIBRARY})
+       endif()
        if (USE_REDIS)
        if (USE_REDIS)
-               target_link_libraries(${PROJECT_NAME} ${REDIS_LIBRARY})
-       endif(USE_REDIS)
+               target_link_libraries(${PROJECT_NAME_LOWER} ${REDIS_LIBRARY})
+       endif()
 endif(BUILD_CLIENT)
 
 endif(BUILD_CLIENT)
 
+
 if(BUILD_SERVER)
 if(BUILD_SERVER)
-       add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
-       add_dependencies(${PROJECT_NAME}server GenerateVersion)
+       add_executable(${PROJECT_NAME_LOWER}server ${server_SRCS})
+       add_dependencies(${PROJECT_NAME_LOWER}server GenerateVersion)
        target_link_libraries(
        target_link_libraries(
-               ${PROJECT_NAME}server
+               ${PROJECT_NAME_LOWER}server
                ${ZLIB_LIBRARIES}
                ${SQLITE3_LIBRARY}
                ${JSON_LIBRARY}
                ${ZLIB_LIBRARIES}
                ${SQLITE3_LIBRARY}
                ${JSON_LIBRARY}
@@ -611,24 +527,24 @@ if(BUILD_SERVER)
                ${LUA_LIBRARY}
                ${PLATFORM_LIBS}
        )
                ${LUA_LIBRARY}
                ${PLATFORM_LIBS}
        )
+       set_target_properties(${PROJECT_NAME_LOWER}server PROPERTIES
+                       COMPILE_DEFINITIONS "SERVER")
        if (USE_LEVELDB)
        if (USE_LEVELDB)
-               target_link_libraries(${PROJECT_NAME}server ${LEVELDB_LIBRARY})
-       endif(USE_LEVELDB)
+               target_link_libraries(${PROJECT_NAME_LOWER}server ${LEVELDB_LIBRARY})
+       endif()
        if (USE_REDIS)
        if (USE_REDIS)
-               target_link_libraries(${PROJECT_NAME}server ${REDIS_LIBRARY})
-       endif(USE_REDIS)
+               target_link_libraries(${PROJECT_NAME_LOWER}server ${REDIS_LIBRARY})
+       endif()
        if(USE_CURL)
                target_link_libraries(
        if(USE_CURL)
                target_link_libraries(
-                       ${PROJECT_NAME}server
+                       ${PROJECT_NAME_LOWER}server
                        ${CURL_LIBRARY}
                )
                        ${CURL_LIBRARY}
                )
-       endif(USE_CURL)
+       endif()
 endif(BUILD_SERVER)
 
 
 endif(BUILD_SERVER)
 
 
-#
 # Set some optimizations and tweaks
 # Set some optimizations and tweaks
-#
 
 include(CheckCXXCompilerFlag)
 
 
 include(CheckCXXCompilerFlag)
 
@@ -649,12 +565,6 @@ if(MSVC)
        # Flags for C files (sqlite)
        # /MT = Link statically with standard library stuff
        set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT")
        # Flags for C files (sqlite)
        # /MT = Link statically with standard library stuff
        set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT")
-
-       if(BUILD_SERVER)
-               set_target_properties(${PROJECT_NAME}server PROPERTIES
-                               COMPILE_DEFINITIONS "SERVER")
-       endif(BUILD_SERVER)
-
 else()
        # Probably GCC
        if(APPLE)
 else()
        # Probably GCC
        if(APPLE)
@@ -687,20 +597,11 @@ else()
        if(USE_GPROF)
                set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
        endif()
        if(USE_GPROF)
                set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
        endif()
-
-       if(BUILD_SERVER)
-               set_target_properties(${PROJECT_NAME}server PROPERTIES
-                               COMPILE_DEFINITIONS "SERVER")
-       endif(BUILD_SERVER)
-
 endif()
 
 endif()
 
-#MESSAGE(STATUS "CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}")
-#MESSAGE(STATUS "CMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}")
 
 
-#
 # Installation
 # Installation
-#
+
 if(WIN32)
        if(USE_SOUND)
                if(OPENAL_DLL)
 if(WIN32)
        if(USE_SOUND)
                if(OPENAL_DLL)
@@ -737,7 +638,7 @@ if(WIN32)
 endif()
 
 if(BUILD_CLIENT)
 endif()
 
 if(BUILD_CLIENT)
-       install(TARGETS ${PROJECT_NAME}
+       install(TARGETS ${PROJECT_NAME_LOWER}
                RUNTIME DESTINATION ${BINDIR}
                LIBRARY DESTINATION ${BINDIR}
                ARCHIVE DESTINATION ${BINDIR}
                RUNTIME DESTINATION ${BINDIR}
                LIBRARY DESTINATION ${BINDIR}
                ARCHIVE DESTINATION ${BINDIR}
@@ -755,9 +656,9 @@ if(BUILD_CLIENT)
        if(USE_GETTEXT)
                foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
                        set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
        if(USE_GETTEXT)
                foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
                        set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
-                       set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
+                       set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME_LOWER}.mo")
                        install(FILES ${MO_BUILD_PATH} DESTINATION ${MO_DEST_PATH})
                        install(FILES ${MO_BUILD_PATH} DESTINATION ${MO_DEST_PATH})
-               endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
+               endforeach()
        endif()
 
        if(WIN32)
        endif()
 
        if(WIN32)
@@ -771,21 +672,21 @@ if(BUILD_CLIENT)
                        if(DEFINED GETTEXT_ICONV_DLL)
                                install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
                        endif()
                        if(DEFINED GETTEXT_ICONV_DLL)
                                install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
                        endif()
-               endif(USE_GETTEXT)
+               endif()
        endif()
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
        endif()
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
-       install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR})
-endif(BUILD_SERVER)
+       install(TARGETS ${PROJECT_NAME_LOWER}server DESTINATION ${BINDIR})
+endif()
 
 if (USE_GETTEXT)
        set(MO_FILES)
 
        foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
 
 if (USE_GETTEXT)
        set(MO_FILES)
 
        foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
-               set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po")
+               set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/${PROJECT_NAME_LOWER}.po")
                set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
                set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
-               set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
+               set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME_LOWER}.mo")
 
                add_custom_command(OUTPUT ${MO_BUILD_PATH}
                        COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH}
 
                add_custom_command(OUTPUT ${MO_BUILD_PATH}
                        COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH}
@@ -800,20 +701,15 @@ if (USE_GETTEXT)
                        )
 
                set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
                        )
 
                set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
-       endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
+       endforeach()
 
        add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
 
        add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
-endif(USE_GETTEXT)
+endif()
+
 
 # Subdirectories
 
 if (BUILD_CLIENT AND USE_FREETYPE)
        add_subdirectory(cguittfont)
 
 # Subdirectories
 
 if (BUILD_CLIENT AND USE_FREETYPE)
        add_subdirectory(cguittfont)
-endif (BUILD_CLIENT AND USE_FREETYPE)
-
-if (JSON_FOUND)
-else (JSON_FOUND)
-       add_subdirectory(json)
-endif (JSON_FOUND)
+endif()
 
 
-#end
index 21448ecb81661055552367aabfde6d560e89b201..7717a2f91075dd4b8db45ef8614cb02c555d1f63 100644 (file)
@@ -27,3 +27,4 @@ target_link_libraries(
        ${FREETYPE_LIBRARY}
        ${ZLIB_LIBRARIES}  # needed by freetype, repeated here for safety
        )
        ${FREETYPE_LIBRARY}
        ${ZLIB_LIBRARIES}  # needed by freetype, repeated here for safety
        )
+
index b637e03360d58969ca1b734f45ac740bb37278dd..6ee918ad02e57c477d56175c589321652cfa9fc5 100644 (file)
@@ -1126,12 +1126,12 @@ void Client::sendReady()
        DSTACK(__FUNCTION_NAME);
 
        NetworkPacket pkt(TOSERVER_CLIENT_READY,
        DSTACK(__FUNCTION_NAME);
 
        NetworkPacket pkt(TOSERVER_CLIENT_READY,
-                       1 + 1 + 1 + 1 + 2 + sizeof(char) * strlen(minetest_version_hash));
+                       1 + 1 + 1 + 1 + 2 + sizeof(char) * strlen(g_version_hash));
 
 
-       pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH_ORIG
-               << (u8) 0 << (u16) strlen(minetest_version_hash);
+       pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH
+               << (u8) 0 << (u16) strlen(g_version_hash);
 
 
-       pkt.putRawString(minetest_version_hash, (u16) strlen(minetest_version_hash));
+       pkt.putRawString(g_version_hash, (u16) strlen(g_version_hash));
        Send(&pkt);
 }
 
        Send(&pkt);
 }
 
index 288acf14cb19e7603b300000861eb1bf11728eb2..a1ec37fe39cee399c1b8bc6da41591376fbe6375 100644 (file)
@@ -3,3 +3,4 @@ set(client_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/tile.cpp
        PARENT_SCOPE
 )
        ${CMAKE_CURRENT_SOURCE_DIR}/tile.cpp
        PARENT_SCOPE
 )
+
index 7bf849624dc48584cfe439154aef3c9bf7717141..ca5e124825fbb189fe656ed15447f8720a29e148 100644 (file)
@@ -94,7 +94,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
                return false;
        }
 
                return false;
        }
 
-       porting::setXorgClassHint(video_driver->getExposedVideoData(), "Minetest");
+       porting::setXorgClassHint(video_driver->getExposedVideoData(), PROJECT_NAME);
 
        /*
                This changes the minimum allowed number of vertices in a VBO.
 
        /*
                This changes the minimum allowed number of vertices in a VBO.
@@ -170,7 +170,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
        {
                // Set the window caption
                const wchar_t *text = wgettext("Main Menu");
        {
                // Set the window caption
                const wchar_t *text = wgettext("Main Menu");
-               device->setWindowCaption((std::wstring(L"Minetest [") + text + L"]").c_str());
+               device->setWindowCaption((narrow_to_wide(PROJECT_NAME) + L" [" + text + L"]").c_str());
                delete[] text;
 
                try {   // This is used for catching disconnects
                delete[] text;
 
                try {   // This is used for catching disconnects
index e111a650d5af74a4ef1cd76e74894ff5d4fa2008..7d446d17872cb4928f6146f81e64114327b666d4 100644 (file)
@@ -3,31 +3,24 @@
 #ifndef CMAKE_CONFIG_H
 #define CMAKE_CONFIG_H
 
 #ifndef CMAKE_CONFIG_H
 #define CMAKE_CONFIG_H
 
-#define CMAKE_PROJECT_NAME "@PROJECT_NAME@"
-#define CMAKE_VERSION_STRING "@VERSION_STRING@"
-#define CMAKE_PRODUCT_VERSION_STRING "@VERSION_MAJOR@.@VERSION_MINOR@"
-#define CMAKE_RUN_IN_PLACE @RUN_IN_PLACE@
-#define CMAKE_USE_GETTEXT @USE_GETTEXT@
-#define CMAKE_USE_CURL @USE_CURL@
-#define CMAKE_USE_SOUND @USE_SOUND@
-#define CMAKE_USE_FREETYPE @USE_FREETYPE@
-#define CMAKE_STATIC_SHAREDIR "@SHAREDIR@"
-#define CMAKE_USE_LEVELDB @USE_LEVELDB@
-#define CMAKE_USE_LUAJIT @USE_LUAJIT@
-#define CMAKE_USE_REDIS @USE_REDIS@
-#define CMAKE_VERSION_MAJOR @VERSION_MAJOR@
-#define CMAKE_VERSION_MINOR @VERSION_MINOR@
-#define CMAKE_VERSION_PATCH @VERSION_PATCH@
-#define CMAKE_VERSION_PATCH_ORIG @VERSION_PATCH_ORIG@
-#define CMAKE_VERSION_EXTRA_STRING "@VERSION_EXTRA@"
-#define CMAKE_HAVE_ENDIAN_H @HAVE_ENDIAN_H@
-
-#ifdef NDEBUG
-       #define CMAKE_BUILD_TYPE "Release"
-#else
-       #define CMAKE_BUILD_TYPE "Debug"
-#endif
-#define CMAKE_BUILD_INFO "BUILD_TYPE=" CMAKE_BUILD_TYPE " RUN_IN_PLACE=@RUN_IN_PLACE@ USE_GETTEXT=@USE_GETTEXT@ USE_SOUND=@USE_SOUND@ USE_CURL=@USE_CURL@ USE_FREETYPE=@USE_FREETYPE@ USE_LUAJIT=@USE_LUAJIT@ STATIC_SHAREDIR=@SHAREDIR@"
+#define PROJECT_NAME "@PROJECT_NAME@"
+#define VERSION_MAJOR @VERSION_MAJOR@
+#define VERSION_MINOR @VERSION_MINOR@
+#define VERSION_PATCH @VERSION_PATCH@
+#define VERSION_EXTRA "@VERSION_EXTRA@"
+#define VERSION_STRING "@VERSION_STRING@"
+#define PRODUCT_VERSION_STRING "@VERSION_MAJOR@.@VERSION_MINOR@"
+#define STATIC_SHAREDIR "@SHAREDIR@"
+#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
+#cmakedefine01 RUN_IN_PLACE
+#cmakedefine01 USE_GETTEXT
+#cmakedefine01 USE_CURL
+#cmakedefine01 USE_SOUND
+#cmakedefine01 USE_FREETYPE
+#cmakedefine01 USE_LEVELDB
+#cmakedefine01 USE_LUAJIT
+#cmakedefine01 USE_REDIS
+#cmakedefine01 HAVE_ENDIAN_H
 
 #endif
 
 
 #endif
 
index 4d5fcd60f375a6c0a8b9fbf25924c955c93f0a8f..c72960c9f813b3dcc962baf91f47c47187ead0b9 100644 (file)
@@ -4,7 +4,7 @@
 #ifndef CMAKE_CONFIG_GITHASH_H
 #define CMAKE_CONFIG_GITHASH_H
 
 #ifndef CMAKE_CONFIG_GITHASH_H
 #define CMAKE_CONFIG_GITHASH_H
 
-#define CMAKE_VERSION_GITHASH "@VERSION_GITHASH@"
+#define VERSION_GITHASH "@VERSION_GITHASH@"
 
 #endif
 
 
 #endif
 
index b07aa5d22be23fc30f88b093765dee48a8f53fb5..ac7684e204410693369642cc811607bf7aebc071 100644 (file)
@@ -6,82 +6,43 @@
 #ifndef CONFIG_H
 #define CONFIG_H
 
 #ifndef CONFIG_H
 #define CONFIG_H
 
-#define PROJECT_NAME "Minetest"
-#define RUN_IN_PLACE 0
-#define STATIC_SHAREDIR ""
+#define STRINGIFY(x) #x
+#define STR(x) STRINGIFY(x)
 
 
-#define USE_GETTEXT 0
 
 
-#ifndef USE_SOUND
-       #define USE_SOUND 0
-#endif
-
-#ifndef USE_CURL
+#ifdef USE_CMAKE_CONFIG_H
+       #include "cmake_config.h"
+#else
+       #define PROJECT_NAME "Minetest"
+       #define RUN_IN_PLACE 0
        #define USE_CURL 0
        #define USE_CURL 0
-#endif
-
-#ifndef USE_FREETYPE
        #define USE_FREETYPE 0
        #define USE_FREETYPE 0
-#endif
-
-#ifndef USE_LEVELDB
+       #define USE_GETTEXT 0
        #define USE_LEVELDB 0
        #define USE_LEVELDB 0
-#endif
-
-#ifndef USE_LUAJIT
        #define USE_LUAJIT 0
        #define USE_LUAJIT 0
-#endif
-
-#ifndef USE_REDIS
        #define USE_REDIS 0
        #define USE_REDIS 0
-#endif
-
-#define HAVE_ENDIAN_H 0
-
-#ifdef USE_CMAKE_CONFIG_H
-       #include "cmake_config.h"
-       #undef PROJECT_NAME
-       #define PROJECT_NAME CMAKE_PROJECT_NAME
-       #undef RUN_IN_PLACE
-       #define RUN_IN_PLACE CMAKE_RUN_IN_PLACE
-       #undef USE_GETTEXT
-       #define USE_GETTEXT CMAKE_USE_GETTEXT
-       #undef USE_SOUND
-       #define USE_SOUND CMAKE_USE_SOUND
-       #undef USE_CURL
-       #define USE_CURL CMAKE_USE_CURL
-       #undef USE_FREETYPE
-       #define USE_FREETYPE CMAKE_USE_FREETYPE
-       #undef STATIC_SHAREDIR
-       #define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR
-       #undef USE_LEVELDB
-       #define USE_LEVELDB CMAKE_USE_LEVELDB
-       #undef USE_LUAJIT
-       #define USE_LUAJIT CMAKE_USE_LUAJIT
-       #undef USE_REDIS
-       #define USE_REDIS CMAKE_USE_REDIS
-       #undef VERSION_MAJOR
-       #define VERSION_MAJOR CMAKE_VERSION_MAJOR
-       #undef VERSION_MINOR
-       #define VERSION_MINOR CMAKE_VERSION_MINOR
-       #undef VERSION_PATCH
-       #define VERSION_PATCH CMAKE_VERSION_PATCH
-       #undef VERSION_PATCH_ORIG
-       #define VERSION_PATCH_ORIG CMAKE_VERSION_PATCH_ORIG
-       #undef VERSION_STRING
-       #define VERSION_STRING CMAKE_VERSION_STRING
-       #undef PRODUCT_VERSION_STRING
-       #define PRODUCT_VERSION_STRING CMAKE_PRODUCT_VERSION_STRING
-       #undef VERSION_EXTRA_STRING
-       #define VERSION_EXTRA_STRING CMAKE_VERSION_EXTRA_STRING
-       #undef HAVE_ENDIAN_H
-       #define HAVE_ENDIAN_H CMAKE_HAVE_ENDIAN_H
+       #define USE_SOUND 0
+       #define HAVE_ENDIAN_H 0
+       #define STATIC_SHAREDIR ""
+       #ifdef NDEBUG
+               #define BUILD_TYPE "Release"
+       #else
+               #define BUILD_TYPE "Debug"
+       #endif
 #endif
 
 #ifdef __ANDROID__
        #include "android_version.h"
 #endif
 
 #ifdef __ANDROID__
        #include "android_version.h"
-       #define VERSION_STRING CMAKE_VERSION_STRING
 #endif
 
 #endif
 
+#define BUILD_INFO "BUILD_TYPE=" BUILD_TYPE \
+               " RUN_IN_PLACE=" STR(RUN_IN_PLACE) \
+               " USE_GETTEXT=" STR(USE_GETTEXT) \
+               " USE_SOUND=" STR(USE_SOUND) \
+               " USE_CURL=" STR(USE_CURL) \
+               " USE_FREETYPE=" STR(USE_FREETYPE) \
+               " USE_LUAJIT=" STR(USE_LUAJIT) \
+               " STATIC_SHAREDIR=" STR(STATIC_SHAREDIR)
+
 #endif
 
 #endif
 
index 521891bbd42d47905b24932654e2fc80a177ef10..ecaf8c2a563bc74dab54ae13d7d1691dbb48fe93 100644 (file)
@@ -385,9 +385,8 @@ long WINAPI Win32ExceptionHandler(struct _EXCEPTION_POINTERS *pExceptInfo)
        MINIDUMP_USER_STREAM_INFORMATION mdusi;
        MINIDUMP_USER_STREAM mdus;
        bool minidump_created = false;
        MINIDUMP_USER_STREAM_INFORMATION mdusi;
        MINIDUMP_USER_STREAM mdus;
        bool minidump_created = false;
-       std::string version_str("Minetest ");
 
 
-       std::string dumpfile = porting::path_user + DIR_DELIM "minetest.dmp";
+       std::string dumpfile = porting::path_user + DIR_DELIM PROJECT_NAME ".dmp";
 
        HANDLE hFile = CreateFileA(dumpfile.c_str(), GENERIC_WRITE,
                FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
        HANDLE hFile = CreateFileA(dumpfile.c_str(), GENERIC_WRITE,
                FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
@@ -401,7 +400,8 @@ long WINAPI Win32ExceptionHandler(struct _EXCEPTION_POINTERS *pExceptInfo)
        mdei.ExceptionPointers = pExceptInfo;
        mdei.ThreadId              = GetCurrentThreadId();
 
        mdei.ExceptionPointers = pExceptInfo;
        mdei.ThreadId              = GetCurrentThreadId();
 
-       version_str += minetest_version_hash;
+       std::string version_str(PROJECT_NAME " ");
+       version_str += g_version_hash;
 
        mdus.Type       = CommentStreamA;
        mdus.BufferSize = version_str.size();
 
        mdus.Type       = CommentStreamA;
        mdus.BufferSize = version_str.size();
index 4ad0418bb022d223aefc5df744ef8a8bbe59b579..0acb4a730773d30dc387baf675f3588ade19373d 100644 (file)
@@ -319,7 +319,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("enable_particles", "false");
        settings->setDefault("video_driver", "ogles1");
        settings->setDefault("touchtarget", "true");
        settings->setDefault("enable_particles", "false");
        settings->setDefault("video_driver", "ogles1");
        settings->setDefault("touchtarget", "true");
-       settings->setDefault("TMPFolder","/sdcard/Minetest/tmp/");
+       settings->setDefault("TMPFolder","/sdcard/" PROJECT_NAME "/tmp/");
        settings->setDefault("touchscreen_threshold","20");
        settings->setDefault("smooth_lighting", "false");
        settings->setDefault("max_simultaneous_block_sends_per_client", "3");
        settings->setDefault("touchscreen_threshold","20");
        settings->setDefault("smooth_lighting", "false");
        settings->setDefault("max_simultaneous_block_sends_per_client", "3");
index 89153cdb6017be87b1edfc3fd9c106c268658f38..bf104e0356c43c0f5b81094ab5004ce1323cbe24 100644 (file)
@@ -519,20 +519,22 @@ void *EmergeThread::Thread()
        }
        catch (VersionMismatchException &e) {
                std::ostringstream err;
        }
        catch (VersionMismatchException &e) {
                std::ostringstream err;
-               err << "World data version mismatch in MapBlock "<<PP(last_tried_pos)<<std::endl;
-               err << "----"<<std::endl;
-               err << "\""<<e.what()<<"\""<<std::endl;
-               err << "See debug.txt."<<std::endl;
-               err << "World probably saved by a newer version of Minetest."<<std::endl;
+               err << "World data version mismatch in MapBlock " << PP(last_tried_pos) << std::endl
+                       << "----" << std::endl
+                       << "\"" << e.what() << "\"" << std::endl
+                       << "See debug.txt." << std::endl
+                       << "World probably saved by a newer version of " PROJECT_NAME "."
+                       << std::endl;
                m_server->setAsyncFatalError(err.str());
        }
        catch (SerializationError &e) {
                std::ostringstream err;
                m_server->setAsyncFatalError(err.str());
        }
        catch (SerializationError &e) {
                std::ostringstream err;
-               err << "Invalid data in MapBlock "<<PP(last_tried_pos)<<std::endl;
-               err << "----"<<std::endl;
-               err << "\""<<e.what()<<"\""<<std::endl;
-               err << "See debug.txt."<<std::endl;
-               err << "You can ignore this using [ignore_world_load_errors = true]."<<std::endl;
+               err << "Invalid data in MapBlock " << PP(last_tried_pos) << std::endl
+                       << "----" << std::endl
+                       << "\"" << e.what() << "\"" << std::endl
+                       << "See debug.txt." << std::endl
+                       << "You can ignore this using [ignore_world_load_errors = true]."
+                       << std::endl;
                m_server->setAsyncFatalError(err.str());
        }
 
                m_server->setAsyncFatalError(err.str());
        }
 
index df0895ae12b6c89388c9b75c544c0ba31accc72e..8a9f3e1eae90baed094759562132eede9b9db2b3 100644 (file)
@@ -1134,8 +1134,8 @@ static void show_pause_menu(GUIFormSpecMenu **cur_formspec,
        os              << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_os;"
                        << wide_to_narrow(wstrgettext("Exit to OS"))   << "]"
                        << "textarea[7.5,0.25;3.9,6.25;;" << control_text << ";]"
        os              << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_os;"
                        << wide_to_narrow(wstrgettext("Exit to OS"))   << "]"
                        << "textarea[7.5,0.25;3.9,6.25;;" << control_text << ";]"
-                       << "textarea[0.4,0.25;3.5,6;;" << "Minetest\n"
-                       << minetest_build_info << "\n"
+                       << "textarea[0.4,0.25;3.5,6;;" << PROJECT_NAME "\n"
+                       << g_build_info << "\n"
                        << "path_user = " << wrap_rows(porting::path_user, 20)
                        << "\n;]";
 
                        << "path_user = " << wrap_rows(porting::path_user, 20)
                        << "\n;]";
 
@@ -2033,9 +2033,10 @@ bool Game::createClient(const std::string &playername,
 
        /* Set window caption
         */
 
        /* Set window caption
         */
-       core::stringw str = L"Minetest [";
+       std::wstring str = narrow_to_wide(PROJECT_NAME);
+       str += L" [";
        str += driver->getName();
        str += driver->getName();
-       str += "]";
+       str += L"]";
        device->setWindowCaption(str.c_str());
 
        LocalPlayer *player = client->getEnv().getLocalPlayer();
        device->setWindowCaption(str.c_str());
 
        LocalPlayer *player = client->getEnv().getLocalPlayer();
@@ -2057,7 +2058,7 @@ bool Game::initGui(std::wstring *error_message)
 {
        // First line of debug text
        guitext = guienv->addStaticText(
 {
        // First line of debug text
        guitext = guienv->addStaticText(
-                       L"Minetest",
+                       narrow_to_wide(PROJECT_NAME).c_str(),
                        core::rect<s32>(0, 0, 0, 0),
                        false, false, guiroot);
 
                        core::rect<s32>(0, 0, 0, 0),
                        false, false, guiroot);
 
@@ -3994,7 +3995,7 @@ void Game::updateGui(float *statustext_time, const RunStats &stats,
 
                std::ostringstream os(std::ios_base::binary);
                os << std::fixed
 
                std::ostringstream os(std::ios_base::binary);
                os << std::fixed
-                  << "Minetest " << minetest_version_hash
+                  << PROJECT_NAME " " << g_version_hash
                   << " FPS = " << fps
                   << " (R: range_all=" << draw_control->range_all << ")"
                   << std::setprecision(0)
                   << " FPS = " << fps
                   << " (R: range_all=" << draw_control->range_all << ")"
                   << std::setprecision(0)
@@ -4010,7 +4011,7 @@ void Game::updateGui(float *statustext_time, const RunStats &stats,
                guitext->setVisible(true);
        } else if (flags.show_hud || flags.show_chat) {
                std::ostringstream os(std::ios_base::binary);
                guitext->setVisible(true);
        } else if (flags.show_hud || flags.show_chat) {
                std::ostringstream os(std::ios_base::binary);
-               os << "Minetest " << minetest_version_hash;
+               os << PROJECT_NAME " " << g_version_hash;
                guitext->setText(narrow_to_wide(os.str()).c_str());
                guitext->setVisible(true);
        } else {
                guitext->setText(narrow_to_wide(os.str()).c_str());
                guitext->setVisible(true);
        } else {
@@ -4245,7 +4246,7 @@ void the_game(bool *kill,
        } catch (SerializationError &e) {
                error_message = L"A serialization error occurred:\n"
                                + narrow_to_wide(e.what()) + L"\n\nThe server is probably "
        } catch (SerializationError &e) {
                error_message = L"A serialization error occurred:\n"
                                + narrow_to_wide(e.what()) + L"\n\nThe server is probably "
-                               L" running a different version of Minetest.";
+                               L" running a different version of " PROJECT_NAME ".";
                errorstream << wide_to_narrow(error_message) << std::endl;
        } catch (ServerError &e) {
                error_message = narrow_to_wide(e.what());
                errorstream << wide_to_narrow(error_message) << std::endl;
        } catch (ServerError &e) {
                error_message = narrow_to_wide(e.what());
index 30296b40c42a163c340357f9582276a6cc8c3e9a..c143e51103bcfbe6facecc96a32ba18ed195ebbe 100644 (file)
@@ -171,8 +171,8 @@ GUIEngine::GUIEngine(       irr::IrrlichtDevice* dev,
                m_sound_manager = &dummySoundManager;
 
        //create topleft header
                m_sound_manager = &dummySoundManager;
 
        //create topleft header
-       std::wstring t = narrow_to_wide(std::string("Minetest ") +
-                       minetest_version_hash);
+       std::wstring t = narrow_to_wide(std::string(PROJECT_NAME " ") +
+                       g_version_hash);
 
        core::rect<s32> rect(0, 0, g_fontengine->getTextWidth(t), g_fontengine->getTextHeight());
        rect += v2s32(4, 0);
 
        core::rect<s32> rect(0, 0, g_fontengine->getTextWidth(t), g_fontengine->getTextHeight());
        rect += v2s32(4, 0);
@@ -571,8 +571,8 @@ bool GUIEngine::downloadFile(std::string url, std::string target)
 /******************************************************************************/
 void GUIEngine::setTopleftText(std::string append)
 {
 /******************************************************************************/
 void GUIEngine::setTopleftText(std::string append)
 {
-       std::wstring toset = narrow_to_wide( std::string("Minetest ") +
-                       minetest_version_hash);
+       std::wstring toset = narrow_to_wide(std::string(PROJECT_NAME " ") +
+                       g_version_hash);
 
        if (append != "")
        {
 
        if (append != "")
        {
index 40ad92da3dad98f3b3c7fb5f1ccd9f6b078cf0e9..e17a8b1876eb825bf153aa1ce5b4dee3aa2f4ea2 100644 (file)
@@ -48,7 +48,7 @@ HTTPFetchRequest::HTTPFetchRequest()
        connect_timeout = timeout;
        multipart = false;
 
        connect_timeout = timeout;
        multipart = false;
 
-       useragent = std::string("Minetest/") + minetest_version_hash + " (" + porting::get_sysinfo() + ")";
+       useragent = std::string(PROJECT_NAME "/") + g_version_hash + " (" + porting::get_sysinfo() + ")";
 }
 
 
 }
 
 
index 5887d523aabea878ccdc43ddfa47591ac3393d62..206c6ea9cdd22260eea5f5ec03e43d1d3f24f242 100644 (file)
@@ -1,14 +1,4 @@
-if( UNIX )
-       set(json_SRCS jsoncpp.cpp)
-       set(json_platform_LIBS "")
-else( UNIX )
-       set(json_SRCS jsoncpp.cpp)
-       set(json_platform_LIBS "")
-endif( UNIX )
+add_library(jsoncpp jsoncpp.cpp)
 
 
-add_library(jsoncpp ${json_SRCS})
+target_link_libraries(jsoncpp)
 
 
-target_link_libraries(
-       jsoncpp
-       ${json_platform_LIBS}
-)
index a581a3b024b82cb9d85ae95bb439a63eb33803fd..cebb35caa69caf98d40eb7c232e398754ca6fe8a 100644 (file)
@@ -1,15 +1,14 @@
-if( UNIX )
-       set(JTHREAD_SRCS
-               ${CMAKE_CURRENT_SOURCE_DIR}/pthread/jmutex.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/pthread/jthread.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/pthread/jsemaphore.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/pthread/jevent.cpp
-               PARENT_SCOPE)
-else( UNIX )
-       set(JTHREAD_SRCS
-               ${CMAKE_CURRENT_SOURCE_DIR}/win32/jmutex.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/win32/jthread.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/win32/jsemaphore.cpp
-               ${CMAKE_CURRENT_SOURCE_DIR}/win32/jevent.cpp
-               PARENT_SCOPE)
-endif( UNIX )
+if(UNIX)
+       set(THREAD_SYS_DIR pthread)
+else()
+       set(THREAD_SYS_DIR win32)
+endif()
+
+set(SRC_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/${THREAD_SYS_DIR})
+set(JTHREAD_SRCS
+       ${SRC_PREFIX}/jmutex.cpp
+       ${SRC_PREFIX}/jthread.cpp
+       ${SRC_PREFIX}/jsemaphore.cpp
+       ${SRC_PREFIX}/jevent.cpp
+       PARENT_SCOPE)
+
index 4bfe318eede19f12316b7f27e06aed55496ba03c..119dd6302d3e9730a36c514a3af0fb7d985a8830 100644 (file)
@@ -1,10 +1,12 @@
-#
-# Lua 5.1.x
-#
 cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
 
 project(lua C)
 
 cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
 
 project(lua C)
 
+set(LUA_VERSION_MAJOR 5)
+set(LUA_VERSION_MINOR 1)
+set(LUA_VERSION_PATCH 4)
+set(LUA_VERSION "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
+
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 
 set(COMMON_CFLAGS)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 
 set(COMMON_CFLAGS)
@@ -16,9 +18,7 @@ if(APPLE)
        set(DEFAULT_DLOPEN ON)
        # use this on Mac OS X 10.3-
        option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF)
        set(DEFAULT_DLOPEN ON)
        # use this on Mac OS X 10.3-
        option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF)
-elseif(CYGWIN)
-       set(DEFAULT_POSIX TRUE)
-elseif(UNIX)
+elseif(UNIX OR CYGWIN)
        set(DEFAULT_POSIX TRUE)
 elseif(WIN32)
        set(LUA_WIN TRUE)
        set(DEFAULT_POSIX TRUE)
 elseif(WIN32)
        set(LUA_WIN TRUE)
@@ -32,50 +32,18 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
        set(DEFAULT_DLOPEN ON)
 endif()
 
        set(DEFAULT_DLOPEN ON)
 endif()
 
-if(WIN32)
-       #set(BUILD_STATIC OFF)
-       set(BUILD_STATIC ON)
-else()
-       #option(BUILD_STATIC "build static library" ON)
-       set(BUILD_STATIC ON)
-endif()
-
-if(DEFAULT_DLOPEN)
-       option(LUA_USE_DLOPEN "Enable dlopen support." ON)
-else()
-       option(LUA_USE_DLOPEN "Enable dlopen support." OFF)
-endif()
-mark_as_advanced(LUA_USE_DLOPEN)
-
-if(DEFAULT_ANSI)
-       option(LUA_ANSI "Disable non-ansi features." ON)
-else()
-       option(LUA_ANSI "Disable non-ansi features." OFF)
-endif()
-mark_as_advanced(LUA_ANSI)
-
-#
-# Lua version
-#
-set(LUA_VERSION_MAJOR 5)
-set(LUA_VERSION_MINOR 1)
-set(LUA_VERSION_PATCH 4)
-set(LUA_VERSION
-                               "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
-set(LUA_SOVERSION
-                               "${LUA_VERSION_MAJOR}")
-
-#
-# libs & cflags
-#
-set(COMMON_LDFLAGS "${COMMON_LDFLAGS}")
-
 # For "Mac OS X 10.3-"
 if(LUA_USE_MACOSX)
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
        set(LUA_USE_DLOPEN FALSE)
 endif(LUA_USE_MACOSX)
 
 # For "Mac OS X 10.3-"
 if(LUA_USE_MACOSX)
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
        set(LUA_USE_DLOPEN FALSE)
 endif(LUA_USE_MACOSX)
 
+option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN})
+mark_as_advanced(LUA_USE_DLOPEN)
+
+option(LUA_ANSI "Disable non-ANSI features." ${DEFAULT_ANSI})
+mark_as_advanced(LUA_ANSI)
+
 if(LUA_USE_DLOPEN)
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_DLOPEN")
        if(NOT APPLE)
 if(LUA_USE_DLOPEN)
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_DLOPEN")
        if(NOT APPLE)
@@ -91,14 +59,11 @@ if(LUA_ANSI)
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_ANSI")
 endif(LUA_ANSI)
 
        set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_ANSI")
 endif(LUA_ANSI)
 
-#
 # COMMON_CFLAGS has no effect without this line
 # COMMON_CFLAGS has no effect without this line
-#
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_CFLAGS}")
 
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_CFLAGS}")
 
-#
-# standard flags to use for each build type.
-#
+
+# Standard flags to use for each build type.
 if(CMAKE_COMPILER_IS_GNUCC)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -Wall -Wextra -Wshadow -W -pedantic -std=gnu99")
        set(CMAKE_C_FLAGS_RELEASE        "${CMAKE_C_FLAGS_RELEASE}     -O2")
 if(CMAKE_COMPILER_IS_GNUCC)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -Wall -Wextra -Wshadow -W -pedantic -std=gnu99")
        set(CMAKE_C_FLAGS_RELEASE        "${CMAKE_C_FLAGS_RELEASE}     -O2")
@@ -107,8 +72,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
        set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_WITHDEBINFO} -O2 -g")
 endif(CMAKE_COMPILER_IS_GNUCC)
 
        set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_WITHDEBINFO} -O2 -g")
 endif(CMAKE_COMPILER_IS_GNUCC)
 
-#
-# sub-folders
-#
-ADD_SUBDIRECTORY(src build)
+
+add_subdirectory(src build)
 
 
index 8fdc7e58b0917b08e7aff9209f262d509cefc35b..8f6cc1213d6779c2b0dbcd7c09176b30b346a214 100644 (file)
@@ -39,11 +39,9 @@ set(LUA_LIB_HEADERS
 )
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}
 )
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}
-                               ${CMAKE_CURRENT_BINARY_DIR})
+               ${CMAKE_CURRENT_BINARY_DIR})
 
 
-#
 # Lua library.
 # Lua library.
-#
 add_library(lua STATIC ${LUA_CORE_SRC})
 target_link_libraries(lua ${LIBS})
 set(LUA_STATIC_LIB lua)
 add_library(lua STATIC ${LUA_CORE_SRC})
 target_link_libraries(lua ${LIBS})
 set(LUA_STATIC_LIB lua)
@@ -51,13 +49,6 @@ set(LUA_LIBS lua)
 
 set_target_properties(${LUA_LIBS} PROPERTIES
        VERSION ${LUA_VERSION}
 
 set_target_properties(${LUA_LIBS} PROPERTIES
        VERSION ${LUA_VERSION}
-       SOVERSION ${LUA_SOVERSION}
        CLEAN_DIRECT_OUTPUT 1
 )
 
        CLEAN_DIRECT_OUTPUT 1
 )
 
-# Install library
-#install(TARGETS ${LUA_LIBS}
-#                              RUNTIME DESTINATION bin
-#                              LIBRARY DESTINATION lib
-#                              ARCHIVE DESTINATION lib)
-
index d84a09f7616e3dd2edc18d6c14ef540c8a19b7a2..3893b9a82ce57cdf04d1ca3c42b9785a27c9de62 100644 (file)
@@ -400,13 +400,11 @@ static void print_allowed_options(const OptionList &allowed_options)
 
 static void print_version()
 {
 
 static void print_version()
 {
-#ifdef SERVER
-       dstream << "minetestserver " << minetest_version_hash << std::endl;
-#else
-       dstream << "Minetest " << minetest_version_hash << std::endl;
+       dstream << PROJECT_NAME " " << g_version_hash << std::endl;
+#ifndef SERVER
        dstream << "Using Irrlicht " << IRRLICHT_SDK_VERSION << std::endl;
 #endif
        dstream << "Using Irrlicht " << IRRLICHT_SDK_VERSION << std::endl;
 #endif
-       dstream << "Build info: " << minetest_build_info << std::endl;
+       dstream << "Build info: " << g_build_info << std::endl;
 }
 
 static void list_game_ids()
 }
 
 static void list_game_ids()
@@ -543,7 +541,7 @@ static void startup_message()
        infostream << PROJECT_NAME << " " << _("with")
                   << " SER_FMT_VER_HIGHEST_READ="
                << (int)SER_FMT_VER_HIGHEST_READ << ", "
        infostream << PROJECT_NAME << " " << _("with")
                   << " SER_FMT_VER_HIGHEST_READ="
                << (int)SER_FMT_VER_HIGHEST_READ << ", "
-               << minetest_build_info << std::endl;
+               << g_build_info << std::endl;
 }
 
 static bool read_config_file(const Settings &cmd_args)
 }
 
 static bool read_config_file(const Settings &cmd_args)
index 4095ace260021fcc4c03d7e9ac8bca64d21331ce..3805c323d159fd2315a5b43b2ac91424704ff6d5 100644 (file)
@@ -12,4 +12,5 @@ if (BUILD_CLIENT)
                ${CMAKE_CURRENT_SOURCE_DIR}/clientpackethandler.cpp
                PARENT_SCOPE
        )
                ${CMAKE_CURRENT_SOURCE_DIR}/clientpackethandler.cpp
                PARENT_SCOPE
        )
-endif(BUILD_CLIENT)
+endif()
+
index 7d5a9bc71ed39421fe6cbb1c0af87afa468c3533..e01aeaa55e0d36b2058f884528a6be84fb533dae 100644 (file)
@@ -388,7 +388,7 @@ void Server::handleCommand_Init_Legacy(NetworkPacket* pkt)
                DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                L"Your client's version is not supported.\n"
                                L"Server version is ")
                DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                L"Your client's version is not supported.\n"
                                L"Server version is ")
-                               + narrow_to_wide(minetest_version_simple) + L"."
+                               + narrow_to_wide(g_version_string) + L"."
                );
                return;
        }
                );
                return;
        }
@@ -436,7 +436,7 @@ void Server::handleCommand_Init_Legacy(NetworkPacket* pkt)
                DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                L"Your client's version is not supported.\n"
                                L"Server version is ")
                DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                L"Your client's version is not supported.\n"
                                L"Server version is ")
-                               + narrow_to_wide(minetest_version_simple) + L",\n"
+                               + narrow_to_wide(g_version_string) + L",\n"
                                + L"server's PROTOCOL_VERSION is "
                                + narrow_to_wide(itos(SERVER_PROTOCOL_VERSION_MIN))
                                + L"..."
                                + L"server's PROTOCOL_VERSION is "
                                + narrow_to_wide(itos(SERVER_PROTOCOL_VERSION_MIN))
                                + L"..."
@@ -456,7 +456,7 @@ void Server::handleCommand_Init_Legacy(NetworkPacket* pkt)
                        DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                        L"Your client's version is not supported.\n"
                                        L"Server version is ")
                        DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
                                        L"Your client's version is not supported.\n"
                                        L"Server version is ")
-                                       + narrow_to_wide(minetest_version_simple) + L",\n"
+                                       + narrow_to_wide(g_version_string) + L",\n"
                                        + L"server's PROTOCOL_VERSION (strict) is "
                                        + narrow_to_wide(itos(LATEST_PROTOCOL_VERSION))
                                        + L", client's PROTOCOL_VERSION is "
                                        + L"server's PROTOCOL_VERSION (strict) is "
                                        + narrow_to_wide(itos(LATEST_PROTOCOL_VERSION))
                                        + L", client's PROTOCOL_VERSION is "
index 71044636380cd679639b711f6a39e26b8093780a..5b0de1305e41628f76f277011b79456ca7bc647e 100644 (file)
@@ -461,7 +461,7 @@ void initializePaths()
        // Use "C:\Documents and Settings\user\Application Data\<PROJECT_NAME>"
        len = GetEnvironmentVariable("APPDATA", buf, buflen);
        FATAL_ERROR_IF(len >= buflen, "Overlow");
        // Use "C:\Documents and Settings\user\Application Data\<PROJECT_NAME>"
        len = GetEnvironmentVariable("APPDATA", buf, buflen);
        FATAL_ERROR_IF(len >= buflen, "Overlow");
-       path_user = std::string(buf) + DIR_DELIM + PROJECT_NAME;
+       path_user = std::string(buf) + DIR_DELIM + lowercase(PROJECT_NAME);
 
        /*
                Linux
 
        /*
                Linux
@@ -491,7 +491,7 @@ void initializePaths()
        if(static_sharedir != "" && static_sharedir != ".")
                trylist.push_back(static_sharedir);
        trylist.push_back(
        if(static_sharedir != "" && static_sharedir != ".")
                trylist.push_back(static_sharedir);
        trylist.push_back(
-                       bindir + DIR_DELIM + ".." + DIR_DELIM + "share" + DIR_DELIM + PROJECT_NAME);
+                       bindir + DIR_DELIM + ".." + DIR_DELIM + "share" + DIR_DELIM + lowercase(PROJECT_NAME));
        trylist.push_back(bindir + DIR_DELIM + "..");
 #ifdef __ANDROID__
        trylist.push_back(path_user);
        trylist.push_back(bindir + DIR_DELIM + "..");
 #ifdef __ANDROID__
        trylist.push_back(path_user);
@@ -515,7 +515,7 @@ void initializePaths()
                break;
        }
 #ifndef __ANDROID__
                break;
        }
 #ifndef __ANDROID__
-       path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + PROJECT_NAME;
+       path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + lowercase(PROJECT_NAME);
 #endif
 
        /*
 #endif
 
        /*
@@ -532,12 +532,13 @@ void initializePaths()
                dstream << "WARNING: Could not determine bundle resource path" << std::endl;
        }
        CFRelease(resources_url);
                dstream << "WARNING: Could not determine bundle resource path" << std::endl;
        }
        CFRelease(resources_url);
-       path_user = std::string(getenv("HOME")) + "/Library/Application Support/" + PROJECT_NAME;
+
+       path_user = std::string(getenv("HOME")) + "/Library/Application Support/" + lowercase(PROJECT_NAME);
 
        #else // FreeBSD, and probably many other POSIX-like systems.
 
        path_share = STATIC_SHAREDIR;
 
        #else // FreeBSD, and probably many other POSIX-like systems.
 
        path_share = STATIC_SHAREDIR;
-       path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + PROJECT_NAME;
+       path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + lowercase(PROJECT_NAME);
 
        #endif
 
 
        #endif
 
index 491c05a1eea3b4033f4aa7c177322260f33d7a45..5ef672ca91a4e7820eb496a14c75bc3fabdd1d2f 100644 (file)
@@ -11,9 +11,10 @@ set(common_SCRIPT_SRCS
        PARENT_SCOPE)
 
 # Used by client only
        PARENT_SCOPE)
 
 # Used by client only
-set(minetest_SCRIPT_SRCS 
+set(client_SCRIPT_SRCS 
        ${CMAKE_CURRENT_SOURCE_DIR}/scripting_mainmenu.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/scripting_mainmenu.cpp
-       ${minetest_SCRIPT_COMMON_SRCS}
-       ${minetest_SCRIPT_CPP_API_SRCS}
-       ${minetest_SCRIPT_LUA_API_SRCS}
+       ${client_SCRIPT_COMMON_SRCS}
+       ${client_SCRIPT_CPP_API_SRCS}
+       ${client_SCRIPT_LUA_API_SRCS}
        PARENT_SCOPE)
        PARENT_SCOPE)
+
index 27e2fb4d54909a35f3e900267060df2ea7f10ef8..4a8e6bab5d08ba2c425526b21ba43e438eda530f 100644 (file)
@@ -1,4 +1,3 @@
-# Used by server and client
 set(common_SCRIPT_COMMON_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/c_content.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/c_converter.cpp
 set(common_SCRIPT_COMMON_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/c_content.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/c_converter.cpp
@@ -6,6 +5,6 @@ set(common_SCRIPT_COMMON_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/c_internal.cpp
        PARENT_SCOPE)
 
        ${CMAKE_CURRENT_SOURCE_DIR}/c_internal.cpp
        PARENT_SCOPE)
 
-# Used by client only
-set(minetest_SCRIPT_COMMON_SRCS
+set(client_SCRIPT_COMMON_SRCS
        PARENT_SCOPE)
        PARENT_SCOPE)
+
index c45020055d9fd4ecec315b57faf057ac8faf1965..4584962f1d28dc161cb876e66c774f37ff316236 100644 (file)
@@ -1,4 +1,3 @@
-# Used by server and client
 set(common_SCRIPT_CPP_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/s_base.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/s_entity.cpp
 set(common_SCRIPT_CPP_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/s_base.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/s_entity.cpp
@@ -12,7 +11,7 @@ set(common_SCRIPT_CPP_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/s_async.cpp
        PARENT_SCOPE)
 
        ${CMAKE_CURRENT_SOURCE_DIR}/s_async.cpp
        PARENT_SCOPE)
 
-# Used by client only
-set(minetest_SCRIPT_CPP_API_SRCS
+set(client_SCRIPT_CPP_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/s_mainmenu.cpp
        PARENT_SCOPE)
        ${CMAKE_CURRENT_SOURCE_DIR}/s_mainmenu.cpp
        PARENT_SCOPE)
+
index 08960d2ad739d2904c01420015a8b7f5e09fb2a7..aaabc213e6bf54daadc7f8a4621a3bc4fded343b 100644 (file)
@@ -1,4 +1,3 @@
-# Used by server and client
 set(common_SCRIPT_LUA_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/l_base.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/l_craft.cpp
 set(common_SCRIPT_LUA_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/l_base.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/l_craft.cpp
@@ -18,7 +17,7 @@ set(common_SCRIPT_LUA_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/l_settings.cpp
        PARENT_SCOPE)
 
        ${CMAKE_CURRENT_SOURCE_DIR}/l_settings.cpp
        PARENT_SCOPE)
 
-# Used by client only
-set(minetest_SCRIPT_LUA_API_SRCS
+set(client_SCRIPT_LUA_API_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/l_mainmenu.cpp
        PARENT_SCOPE)
        ${CMAKE_CURRENT_SOURCE_DIR}/l_mainmenu.cpp
        PARENT_SCOPE)
+
index 36b97b2d1610b7790566d863bb5d2ee87957c8a2..f905080128ce9cfc07bd97155ef681d056185f40 100644 (file)
@@ -980,7 +980,7 @@ int ModApiMainMenu::l_show_file_open_dialog(lua_State *L)
 /******************************************************************************/
 int ModApiMainMenu::l_get_version(lua_State *L)
 {
 /******************************************************************************/
 int ModApiMainMenu::l_get_version(lua_State *L)
 {
-       lua_pushstring(L, minetest_version_simple);
+       lua_pushstring(L, g_version_string);
        return 1;
 }
 
        return 1;
 }
 
index 8c76fdc16749f8dc5fd6b334586d479b219ffb46..3b4c3c3f0ce24e58e73a3548140b843fc9fab3e5 100644 (file)
@@ -2687,7 +2687,7 @@ std::wstring Server::getStatusString()
        std::wostringstream os(std::ios_base::binary);
        os<<L"# Server: ";
        // Version
        std::wostringstream os(std::ios_base::binary);
        os<<L"# Server: ";
        // Version
-       os<<L"version="<<narrow_to_wide(minetest_version_simple);
+       os<<L"version="<<narrow_to_wide(g_version_string);
        // Uptime
        os<<L", uptime="<<m_uptime.get();
        // Max lag estimate
        // Uptime
        os<<L", uptime="<<m_uptime.get();
        // Max lag estimate
index a3353340eeb232e1eb9d8f241e9386d773f7b94b..978175a2a4665e3efb4ee2474da914481076e017 100644 (file)
@@ -212,7 +212,7 @@ void sendAnnounce(const std::string &action,
                bool strict_checking = g_settings->getBool("strict_protocol_version_checking");
                server["name"]         = g_settings->get("server_name");
                server["description"]  = g_settings->get("server_description");
                bool strict_checking = g_settings->getBool("strict_protocol_version_checking");
                server["name"]         = g_settings->get("server_name");
                server["description"]  = g_settings->get("server_description");
-               server["version"]      = minetest_version_simple;
+               server["version"]      = g_version_string;
                server["proto_min"]    = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MIN;
                server["proto_max"]    = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX;
                server["url"]          = g_settings->get("server_url");
                server["proto_min"]    = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MIN;
                server["proto_max"]    = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX;
                server["url"]          = g_settings->get("server_url");
index 56bf8a25acc1a786c62cd6dc00df47dafcf5cf17..112f09bb9b37b567066e69083cd86a2ac0346544 100644 (file)
@@ -8,3 +8,4 @@ set(UTIL_SRCS
        ${CMAKE_CURRENT_SOURCE_DIR}/string.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/timetaker.cpp
        PARENT_SCOPE)
        ${CMAKE_CURRENT_SOURCE_DIR}/string.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/timetaker.cpp
        PARENT_SCOPE)
+
index ecfeb95f8613bb1e4f32b7f879d1ed6c84819094..ed167cd242681eae282d835acc42407db4c35b9f 100644 (file)
@@ -20,27 +20,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "version.h"
 #include "config.h"
 
 #include "version.h"
 #include "config.h"
 
-#ifdef __ANDROID__
+#if defined(__ANDROID__)
        #include "android_version.h"
 #elif defined(USE_CMAKE_CONFIG_H)
        #include "cmake_config_githash.h"
 #endif
 
        #include "android_version.h"
 #elif defined(USE_CMAKE_CONFIG_H)
        #include "cmake_config_githash.h"
 #endif
 
-#ifdef CMAKE_VERSION_GITHASH
-       #define VERSION_GITHASH CMAKE_VERSION_GITHASH
-#else
+#ifndef VERSION_GITHASH
        #define VERSION_GITHASH VERSION_STRING
 #endif
 
        #define VERSION_GITHASH VERSION_STRING
 #endif
 
-const char *minetest_version_simple = VERSION_STRING;
-const char *minetest_version_hash = VERSION_GITHASH;
 
 
-#ifdef USE_CMAKE_CONFIG_H
-const char *minetest_build_info =
-               "VER=" VERSION_GITHASH " " CMAKE_BUILD_INFO;
-#elif defined(ANDROID)
-const char *minetest_build_info = "android jni";
-#else
-const char *minetest_build_info = "non-cmake";
-#endif
+const char *g_version_string = VERSION_STRING;
+const char *g_version_hash = VERSION_GITHASH;
+const char *g_build_info = "VER=" VERSION_GITHASH " " BUILD_INFO;
 
 
index b23e770aa0cee121ebadaa5ea6ab3a6e8d8b4233..0b803b82c6496d410304f34c48280b689b0d6ab9 100644 (file)
@@ -20,9 +20,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifndef VERSION_HEADER
 #define VERSION_HEADER
 
 #ifndef VERSION_HEADER
 #define VERSION_HEADER
 
-extern const char *minetest_version_simple;
-extern const char *minetest_version_hash;
-extern const char *minetest_build_info;
+extern const char *g_version_string;
+extern const char *g_version_hash;
+extern const char *g_build_info;
 
 #endif
 
 
 #endif
 
index a50d5f37080a2c2878d2a378966870c5dc2c6ebb..15f5da0236005f29a86eba5f916847bd992b24e6 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash -e
 
 #!/bin/bash -e
 
-if [ $CC = "clang" ]; then
+if [[ $CC == "clang" ]]; then
        export PATH="/usr/bin/:$PATH"
        sudo sh -c 'echo "deb http://ppa.launchpad.net/eudoxos/llvm-3.1/ubuntu precise main" >> /etc/apt/sources.list'
        sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 92DE8183
        export PATH="/usr/bin/:$PATH"
        sudo sh -c 'echo "deb http://ppa.launchpad.net/eudoxos/llvm-3.1/ubuntu precise main" >> /etc/apt/sources.list'
        sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 92DE8183
@@ -9,24 +9,24 @@ if [ $CC = "clang" ]; then
        sudo apt-get install clang
 fi
 sudo apt-get install p7zip-full
        sudo apt-get install clang
 fi
 sudo apt-get install p7zip-full
-if [ $WINDOWS = "no" ]; then
+if [[ $PLATFORM == "Linux" ]]; then
        sudo apt-get install libirrlicht-dev cmake libbz2-dev libpng12-dev \
        sudo apt-get install libirrlicht-dev cmake libbz2-dev libpng12-dev \
-       libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libhiredis-dev \
-       libogg-dev libvorbis-dev libopenal-dev gettext
+               libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev \
+               libhiredis-dev libogg-dev libvorbis-dev libopenal-dev gettext
        # Linking to LevelDB is broken, use a custom build
        wget http://sfan5.pf-control.de/libleveldb-1.18-ubuntu12.04.7z
        sudo 7z x -o/usr libleveldb-1.18-ubuntu12.04.7z
        # Linking to LevelDB is broken, use a custom build
        wget http://sfan5.pf-control.de/libleveldb-1.18-ubuntu12.04.7z
        sudo 7z x -o/usr libleveldb-1.18-ubuntu12.04.7z
-else
-       if [ $WINDOWS = "32" ]; then
-               wget http://sfan5.pf-control.de/mingw_w64_i686_ubuntu12.04_4.9.1.7z -O mingw.7z
-               sed -e "s|%PREFIX%|i686-w64-mingw32|" \
-                       -e "s|%ROOTPATH%|/usr/i686-w64-mingw32|" \
-                       < util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw.cmake
-       elif [ $WINDOWS = "64" ]; then
-               wget http://sfan5.pf-control.de/mingw_w64_x86_64_ubuntu12.04_4.9.1.7z -O mingw.7z
-               sed -e "s|%PREFIX%|x86_64-w64-mingw32|" \
-                       -e "s|%ROOTPATH%|/usr/x86_64-w64-mingw32|" \
-                       < util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw64.cmake
-       fi
+elif [[ $PLATFORM == "Win32" ]]; then
+       wget http://sfan5.pf-control.de/mingw_w64_i686_ubuntu12.04_4.9.1.7z -O mingw.7z
+       sed -e "s|%PREFIX%|i686-w64-mingw32|" \
+               -e "s|%ROOTPATH%|/usr/i686-w64-mingw32|" \
+               < util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw.cmake
+       sudo 7z x -y -o/usr mingw.7z
+elif [[ $PLATFORM == "Win64" ]]; then
+       wget http://sfan5.pf-control.de/mingw_w64_x86_64_ubuntu12.04_4.9.1.7z -O mingw.7z
+       sed -e "s|%PREFIX%|x86_64-w64-mingw32|" \
+               -e "s|%ROOTPATH%|/usr/x86_64-w64-mingw32|" \
+               < util/travis/toolchain_mingw.cmake.in > util/buildbot/toolchain_mingw64.cmake
        sudo 7z x -y -o/usr mingw.7z
 fi
        sudo 7z x -y -o/usr mingw.7z
 fi
+
index 35a62f16eeff6d0c34919c1815e340547295fa85..756cc1de86d5b10554f8040e6382d53b3e92b4dc 100755 (executable)
@@ -1,16 +1,21 @@
 #!/bin/bash -e
 
 #!/bin/bash -e
 
-if [ $WINDOWS = "no" ]; then
+if [[ $PLATFORM == "Linux" ]]; then
        mkdir -p travisbuild
        cd travisbuild
        mkdir -p travisbuild
        cd travisbuild
-       cmake -DENABLE_GETTEXT=1 -DENABLE_LEVELDB=1 -DENABLE_REDIS=1 -DCMAKE_BUILD_TYPE=Debug ..
+       CMAKE_FLAGS='-DCMAKE_BUILD_TYPE=Debug \
+               -DRUN_IN_PLACE=TRUE \
+               -DENABLE_GETTEXT=TRUE'
+       # Clang builds with FreeType fail on Travis
+       if [[ $CC == "clang" ]]; then
+               CMAKE_FLAGS+=' -DENABLE_FREETYPE=FALSE'
+       fi
+       cmake $CMAKE_FLAGS ..
        make -j2
        make -j2
-       echo "Running unit tests for minetest"
-       ../bin/minetest --run-unittests
-       echo "Running unit tests for minetestserver"
-       ../bin/minetestserver --run-unittests
-else
-       [ $CC = "clang" ] && exit 1 # Not supposed to happen
+       echo "Running unit tests."
+       ../bin/minetest --run-unittests && exit 0
+elif [[ $PLATFORM == Win* ]]; then
+       [[ $CC == "clang" ]] && exit 1 # Not supposed to happen
        # We need to have our build directory outside of the minetest directory because
        #  CMake will otherwise get very very confused with symlinks and complain that
        #  something is not a subdirectory of something even if it actually is.
        # We need to have our build directory outside of the minetest directory because
        #  CMake will otherwise get very very confused with symlinks and complain that
        #  something is not a subdirectory of something even if it actually is.
@@ -21,8 +26,17 @@ else
        # \/  \/  \/
        # /home/travis/minetest/minetest/travisbuild/minetest/travisbuild/minetest/travisbuild/minetest
        # You get the idea.
        # \/  \/  \/
        # /home/travis/minetest/minetest/travisbuild/minetest/travisbuild/minetest/travisbuild/minetest
        # You get the idea.
-       OLDDIR=`pwd`
+       OLDDIR=$(pwd)
        cd ..
        cd ..
-       [ $WINDOWS = "32" ] && EXISTING_MINETEST_DIR=$OLDDIR NO_MINETEST_GAME=1 $OLDDIR/util/buildbot/buildwin32.sh travisbuild && exit 0
-       [ $WINDOWS = "64" ] && EXISTING_MINETEST_DIR=$OLDDIR NO_MINETEST_GAME=1 $OLDDIR/util/buildbot/buildwin64.sh travisbuild && exit 0
+       export EXISTING_MINETEST_DIR=$OLDDIR
+       export NO_MINETEST_GAME=1
+       if [[ $PLATFORM == "Win32" ]]; then
+               $OLDDIR/util/buildbot/buildwin32.sh travisbuild && exit 0
+       elif [[ $PLATFORM == "Win64" ]]; then
+               $OLDDIR/util/buildbot/buildwin64.sh travisbuild && exit 0
+       fi
+else
+       echo "Unknown platform \"${PLATFORM}\"."
+       exit 1
 fi
 fi
+
index 44830eb604fd58749a6ad7b6c91b47e76023e82d..65f67517ece98d83a1dbd4ad0fab4cbf9d81baa5 100644 (file)
@@ -1,17 +1,18 @@
-# name of the target operating system
-SET(CMAKE_SYSTEM_NAME Windows)
+# Target operating system name
+set(CMAKE_SYSTEM_NAME Windows)
 
 
-# which compilers to use for C and C++
-SET(CMAKE_C_COMPILER %PREFIX%-gcc)
-SET(CMAKE_CXX_COMPILER %PREFIX%-g++)
-SET(CMAKE_RC_COMPILER %PREFIX%-windres)
+# Compilers to use
+set(CMAKE_C_COMPILER %PREFIX%-gcc)
+set(CMAKE_CXX_COMPILER %PREFIX%-g++)
+set(CMAKE_RC_COMPILER %PREFIX%-windres)
 
 
-# here is the target environment located
-SET(CMAKE_FIND_ROOT_PATH %ROOTPATH%)
+# Location of the target environment
+set(CMAKE_FIND_ROOT_PATH %ROOTPATH%)
 
 
-# adjust the default behaviour of the FIND_XXX() commands:
-# search headers and libraries in the target environment, search
-# programs in the host environment
+# Adjust the default behaviour of the FIND_XXX() commands:
+# search for headers and libraries in the target environment,
+# search for programs in the host environment
 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+