might work good on cmake+msvc now

master
Perttu Ahola 2011-02-15 20:53:29 +02:00
parent 95c88d258b
commit a0e8f3afd3
8 changed files with 121 additions and 38 deletions

View File

@ -77,12 +77,13 @@ set(CPACK_PACKAGE_CONTACT "Perttu Ahola <celeron55@gmail.com>")
if(WIN32) if(WIN32)
# For some reason these aren't copied otherwise # For some reason these aren't copied otherwise
if(BUILD_CLIENT) # NOTE: For some reason now it seems to work without these
install(FILES bin/minetest.exe DESTINATION bin) #if(BUILD_CLIENT)
endif() # install(FILES bin/minetest.exe DESTINATION bin)
if(BUILD_SERVER) #endif()
install(FILES bin/minetestserver.exe DESTINATION bin) #if(BUILD_SERVER)
endif() # install(FILES bin/minetestserver.exe DESTINATION bin)
#endif()
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32") set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32")

View File

@ -22,7 +22,7 @@ endif()
FIND_PATH(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h FIND_PATH(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
PATHS PATHS
"${IRRLICHT_SOURCE_DIR_INCLUDE}" ${IRRLICHT_SOURCE_DIR_INCLUDE}
/usr/local/include/irrlicht /usr/local/include/irrlicht
/usr/include/irrlicht /usr/include/irrlicht
) )
@ -31,7 +31,7 @@ FIND_PATH(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.a Irrlicht FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.a Irrlicht
PATHS PATHS
"${IRRLICHT_SOURCE_DIR_LIBS}" ${IRRLICHT_SOURCE_DIR_LIBS}
/usr/local/lib /usr/local/lib
/usr/lib /usr/lib
) )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,7 +1,7 @@
Minetest-c55 Minetest-c55
--------------- ---------------
An InfiniMiner/Minecraft inspired game. An InfiniMiner/Minecraft inspired game.
Copyright (c) 2010 Perttu Ahola <celeron55@gmail.com> Copyright (c) 2010-2011 Perttu Ahola <celeron55@gmail.com>
This is a development version: This is a development version:
------------------------------ ------------------------------
@ -9,11 +9,6 @@ This is a development version:
- Please report any bugs to me. That way I can fix them to the next release. - Please report any bugs to me. That way I can fix them to the next release.
- debug.txt is useful when the game crashes. - debug.txt is useful when the game crashes.
Public servers:
---------------
kray.dy.fi :30000 (friend's server)
celeron.55.lt :30000 (my own server)
Controls: Controls:
--------- ---------
- See the in-game pause menu - See the in-game pause menu
@ -22,7 +17,7 @@ Map directory:
-------------- --------------
- Map is stored in a directory, which can be removed to generate a new map. - Map is stored in a directory, which can be removed to generate a new map.
- There is a command-line option for it: --map-dir - There is a command-line option for it: --map-dir
- As default, it is located in: - For a RUN_IN_PLACE build, it is located in:
../map ../map
- Otherwise something like this: - Otherwise something like this:
Windows: C:\Documents and Settings\user\Application Data\minetest\map Windows: C:\Documents and Settings\user\Application Data\minetest\map
@ -35,7 +30,7 @@ Configuration file:
- Path to file can be passed as a parameter to the executable: - Path to file can be passed as a parameter to the executable:
--config <path-to-file> --config <path-to-file>
- Defaults: - Defaults:
- If built with -DRUN_IN_PLACE: - If built with -DRUN_IN_PLACE=1:
../minetest.conf ../minetest.conf
../../minetest.conf ../../minetest.conf
- Otherwise something like this: - Otherwise something like this:
@ -73,21 +68,89 @@ $ ./minetest
- Note that the Debug build is considerably slower - Note that the Debug build is considerably slower
Compiling on Windows: Compiling on Windows:
- NOTE: Seems that the CMake build system produces executables that don't work ---------------------
for many people. The old build system is still included, but it's not
documented anywhere. - You need:
- You need CMake, Irrlicht, Zlib and Visual Studio or MinGW * CMake:
- you can get zlibwapi.lib from a file called zlib125dll.zip http://www.cmake.org/cmake/resources/software.html
- NOTE: Probably it will not work easily and you will need to fix some stuff. * MinGW or Visual Studio
http://www.mingw.org/
http://msdn.microsoft.com/en-us/vstudio/default
* Irrlicht SDK 1.7:
http://irrlicht.sourceforge.net/downloads.html
* Zlib headers (zlib125.zip)
http://www.winimage.com/zLibDll/index.html
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
http://www.winimage.com/zLibDll/index.html
* And, of course, Minetest-c55:
http://celeron.55.lt/~celeron55/minetest/download
- Steps: - Steps:
- Select a directory called DIR hereafter in which you will operate.
- Make sure you have CMake and a compiler installed.
- Download all the other stuff to DIR and extract them into there. All those
packages contain a nice base directory in them, which should end up being
the direct subdirectories of DIR.
- You will end up with a directory structure like this (+=dir, -=file):
-----------------
+ DIR
- zlib-1.2.5.tar.gz
- zlib125dll.zip
- irrlicht-1.7.1.zip
- 110214175330.zip (or whatever, this is the minetest source)
+ zlib-1.2.5
- zlib.h
+ win32
...
+ zlib125dll
- readme.txt
+ dll32
...
+ irrlicht-1.7.1
+ lib
+ include
...
+ minetest
+ src
+ doc
- CMakeLists.txt
...
-----------------
- Start up the CMake GUI - Start up the CMake GUI
- Select "Browse Source..." and select DIR/minetest
- Now, if using MSVC:
- Select "Browse Build..." and select DIR/minetest-build
- Else if using MinGW:
- Select "Browse Build..." and select DIR/minetest
- Select "Configure"
- Select your compiler - Select your compiler
- Hit "Configure" - It will warn about missing stuff, ignore that at this point. (later don't)
- Set up some options and paths - Make sure the configuration is as follows
(note that the versions may differ for you):
-----------------
BUILD_CLIENT [X]
BUILD_SERVER [ ]
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX DIR/minetest-install
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.7.1
RUN_IN_PLACE [X]
WARN_ALL [ ]
ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
-----------------
- Hit "Configure" - Hit "Configure"
- Hit "Generate" - Hit "Generate"
- MSVC: Open the generated .sln and build it If using MSVC:
MinGW: Browse to the build directory and run 'make' - Open the generated minetest.sln
- Build the ALL_BUILD project
- Build the INSTALL project
- You should now have a working game executable in
DIR/minetest-install/bin/minetest.exe
- Additionally you may create a zip package by building the PACKAGE project.
If using MinGW:
- Using a command line, browse to the build directory and run 'make'
- You should now have a working game executable in
DIR/minetest/bin/minetest.exe
License of Minetest-c55 License of Minetest-c55
----------------------- -----------------------

View File

@ -26,6 +26,8 @@
#new_style_water = true #new_style_water = true
#new_style_leaves = true #new_style_leaves = true
#frametime_graph = false #frametime_graph = false
#enable_texture_atlas = true
#texture_path =
# Server side stuff # Server side stuff

View File

@ -5,7 +5,9 @@ if(RUN_IN_PLACE)
add_definitions ( -DRUN_IN_PLACE ) add_definitions ( -DRUN_IN_PLACE )
endif(RUN_IN_PLACE) endif(RUN_IN_PLACE)
set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++") if(NOT MSVC)
set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
endif()
# Use cmake_config.h # Use cmake_config.h
add_definitions ( -DUSE_CMAKE_CONFIG_H ) add_definitions ( -DUSE_CMAKE_CONFIG_H )
@ -22,9 +24,9 @@ if(WIN32)
set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5" set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5"
CACHE PATH "Zlib include directory") CACHE PATH "Zlib include directory")
set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib" set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib"
CACHE PATH "Path to zlibwapi.lib") CACHE FILEPATH "Path to zlibwapi.lib")
set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll" set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll"
CACHE PATH "Path to zlibwapi.dll (for installation)") CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
else() else()
# Unix probably # Unix probably
if(BUILD_CLIENT) if(BUILD_CLIENT)
@ -149,7 +151,7 @@ if(MSVC)
if(BUILD_SERVER) if(BUILD_SERVER)
set_target_properties(minetestserver PROPERTIES set_target_properties(minetestserver PROPERTIES
COMPILE_FLAGS "/D SERVER") COMPILE_DEFINITIONS "/D SERVER")
endif(BUILD_SERVER) endif(BUILD_SERVER)
else() else()
@ -170,7 +172,7 @@ else()
if(BUILD_SERVER) if(BUILD_SERVER)
set_target_properties(minetestserver PROPERTIES set_target_properties(minetestserver PROPERTIES
COMPILE_FLAGS "-DSERVER") COMPILE_DEFINITIONS "-DSERVER")
endif(BUILD_SERVER) endif(BUILD_SERVER)
endif() endif()

View File

@ -42,6 +42,8 @@ void set_default_settings()
g_settings.setDefault("new_style_water", "false"); g_settings.setDefault("new_style_water", "false");
g_settings.setDefault("new_style_leaves", "true"); g_settings.setDefault("new_style_leaves", "true");
g_settings.setDefault("frametime_graph", "false"); g_settings.setDefault("frametime_graph", "false");
g_settings.setDefault("enable_texture_atlas", "true");
g_settings.setDefault("texture_path", "");
g_settings.setDefault("free_move", "false"); g_settings.setDefault("free_move", "false");
g_settings.setDefault("continuous_forward", "false"); g_settings.setDefault("continuous_forward", "false");

View File

@ -19,6 +19,16 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "tile.h" #include "tile.h"
#include "debug.h" #include "debug.h"
#include "main.h" // for g_settings
inline std::string getTexturePath(std::string filename)
{
std::string texture_path = g_settings.get("texture_path");
if(texture_path == "")
return porting::getDataPath(filename.c_str());
else
return texture_path + '/' + filename;
}
TextureSource::TextureSource(IrrlichtDevice *device): TextureSource::TextureSource(IrrlichtDevice *device):
m_device(device), m_device(device),
@ -36,7 +46,10 @@ TextureSource::TextureSource(IrrlichtDevice *device):
m_name_to_id[""] = 0; m_name_to_id[""] = 0;
// Build main texture atlas // Build main texture atlas
buildMainAtlas(); if(g_settings.getBool("enable_texture_atlas"))
buildMainAtlas();
else
dstream<<"INFO: Not building texture atlas."<<std::endl;
} }
TextureSource::~TextureSource() TextureSource::~TextureSource()
@ -412,7 +425,7 @@ void TextureSource::buildMainAtlas()
std::string name = sourcelist[i]; std::string name = sourcelist[i];
/*video::IImage *img = driver->createImageFromFile( /*video::IImage *img = driver->createImageFromFile(
porting::getDataPath(name.c_str()).c_str()); getTexturePath(name.c_str()).c_str());
if(img == NULL) if(img == NULL)
continue; continue;
@ -517,7 +530,7 @@ void TextureSource::buildMainAtlas()
Write image to file so that it can be inspected Write image to file so that it can be inspected
*/ */
/*driver->writeImageToFile(atlas_img, /*driver->writeImageToFile(atlas_img,
porting::getDataPath("main_atlas.png").c_str());*/ getTexturePath("main_atlas.png").c_str());*/
} }
video::IImage* generate_image_from_scratch(std::string name, video::IImage* generate_image_from_scratch(std::string name,
@ -596,7 +609,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg,
if(part_of_name[0] != '[') if(part_of_name[0] != '[')
{ {
// A normal texture; load it from a file // A normal texture; load it from a file
std::string path = porting::getDataPath(part_of_name.c_str()); std::string path = getTexturePath(part_of_name.c_str());
dstream<<"INFO: getTextureIdDirect(): Loading path \""<<path dstream<<"INFO: getTextureIdDirect(): Loading path \""<<path
<<"\""<<std::endl; <<"\""<<std::endl;
@ -710,7 +723,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg,
core::position2d<s32> pos_other(0, 16 * progression); core::position2d<s32> pos_other(0, 16 * progression);
video::IImage *crackimage = driver->createImageFromFile( video::IImage *crackimage = driver->createImageFromFile(
porting::getDataPath("crack.png").c_str()); getTexturePath("crack.png").c_str());
if(crackimage) if(crackimage)
{ {
@ -755,7 +768,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg,
<<"\" to combined ("<<x<<","<<y<<")" <<"\" to combined ("<<x<<","<<y<<")"
<<std::endl; <<std::endl;
video::IImage *img = driver->createImageFromFile( video::IImage *img = driver->createImageFromFile(
porting::getDataPath(filename.c_str()).c_str()); getTexturePath(filename.c_str()).c_str());
if(img) if(img)
{ {
core::dimension2d<u32> dim = img->getDimension(); core::dimension2d<u32> dim = img->getDimension();
@ -814,7 +827,7 @@ bool generate_image(std::string part_of_name, video::IImage *& baseimg,
std::string filename = part_of_name.substr(9); std::string filename = part_of_name.substr(9);
std::string path = porting::getDataPath(filename.c_str()); std::string path = getTexturePath(filename.c_str());
dstream<<"INFO: getTextureIdDirect(): Loading path \""<<path dstream<<"INFO: getTextureIdDirect(): Loading path \""<<path
<<"\""<<std::endl; <<"\""<<std::endl;