mirror of
https://github.com/minetest/minetestmapper.git
synced 2024-11-28 10:23:48 +01:00
Search for colors.txt in multiple locations, fixes #27
Locations (in order): * <world path>/colors.txt * $HOME/.minetest/colors.txt (Linux only) * <share dir>/colors.txt (Linux only for now, defaults to /usr/local/share/minetest) * current directory (<< this is the old behavior)
This commit is contained in:
parent
73dab34d7c
commit
6f1b8284f4
@ -7,6 +7,7 @@ set(VERSION_MAJOR 1)
|
|||||||
set(VERSION_MINOR 0)
|
set(VERSION_MINOR 0)
|
||||||
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
|
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
|
||||||
|
|
||||||
|
# Stuff & Paths
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build.")
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build.")
|
||||||
@ -23,7 +24,37 @@ endif(USE_CXX11)
|
|||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2 -Wall")
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2 -Wall")
|
||||||
|
|
||||||
# Find libgd
|
if(WIN32)
|
||||||
|
set(SHAREDIR ".")
|
||||||
|
set(BINDIR ".")
|
||||||
|
set(DOCDIR ".")
|
||||||
|
else()
|
||||||
|
set(SHAREDIR "${CMAKE_INSTALL_PREFIX}/share/minetest") # an extra dir. for just one file doesn't seem useful
|
||||||
|
set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
|
||||||
|
set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CUSTOM_SHAREDIR "" CACHE STRING "Directory to install data files into")
|
||||||
|
if(NOT CUSTOM_SHAREDIR STREQUAL "")
|
||||||
|
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_DOCDIR "" CACHE STRING "Directory to install documentation into")
|
||||||
|
if(NOT CUSTOM_DOCDIR STREQUAL "")
|
||||||
|
set(DOCDIR "${CUSTOM_DOCDIR}")
|
||||||
|
message(STATUS "Using DOCDIR=${DOCDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# Libraries: gd
|
||||||
|
|
||||||
find_library(LIBGD_LIBRARY gd)
|
find_library(LIBGD_LIBRARY gd)
|
||||||
find_path(LIBGD_INCLUDE_DIR gd.h)
|
find_path(LIBGD_INCLUDE_DIR gd.h)
|
||||||
message (STATUS "libgd library: ${LIBGD_LIBRARY}")
|
message (STATUS "libgd library: ${LIBGD_LIBRARY}")
|
||||||
@ -32,7 +63,8 @@ if(NOT LIBGD_LIBRARY OR NOT LIBGD_INCLUDE_DIR)
|
|||||||
message(FATAL_ERROR "libgd not found!")
|
message(FATAL_ERROR "libgd not found!")
|
||||||
endif(NOT LIBGD_LIBRARY OR NOT LIBGD_INCLUDE_DIR)
|
endif(NOT LIBGD_LIBRARY OR NOT LIBGD_INCLUDE_DIR)
|
||||||
|
|
||||||
# Find zlib
|
# Libraries: zlib
|
||||||
|
|
||||||
find_library(ZLIB_LIBRARY z)
|
find_library(ZLIB_LIBRARY z)
|
||||||
find_path(ZLIB_INCLUDE_DIR zlib.h)
|
find_path(ZLIB_INCLUDE_DIR zlib.h)
|
||||||
message (STATUS "zlib library: ${ZLIB_LIBRARY}")
|
message (STATUS "zlib library: ${ZLIB_LIBRARY}")
|
||||||
@ -44,7 +76,8 @@ endif(NOT ZLIB_LIBRARY OR NOT ZLIB_INCLUDE_DIR)
|
|||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
# Find libsqlite3
|
# Libraries: sqlite3
|
||||||
|
|
||||||
find_library(SQLITE3_LIBRARY sqlite3)
|
find_library(SQLITE3_LIBRARY sqlite3)
|
||||||
find_path(SQLITE3_INCLUDE_DIR zlib.h)
|
find_path(SQLITE3_INCLUDE_DIR zlib.h)
|
||||||
message (STATUS "sqlite3 library: ${SQLITE3_LIBRARY}")
|
message (STATUS "sqlite3 library: ${SQLITE3_LIBRARY}")
|
||||||
@ -53,7 +86,8 @@ if(NOT SQLITE3_LIBRARY OR NOT SQLITE3_INCLUDE_DIR)
|
|||||||
message(FATAL_ERROR "sqlite3 not found!")
|
message(FATAL_ERROR "sqlite3 not found!")
|
||||||
endif(NOT SQLITE3_LIBRARY OR NOT SQLITE3_INCLUDE_DIR)
|
endif(NOT SQLITE3_LIBRARY OR NOT SQLITE3_INCLUDE_DIR)
|
||||||
|
|
||||||
# Find leveldb
|
# Libraries: leveldb
|
||||||
|
|
||||||
set(USE_LEVELDB 0)
|
set(USE_LEVELDB 0)
|
||||||
|
|
||||||
OPTION(ENABLE_LEVELDB "Enable LevelDB backend")
|
OPTION(ENABLE_LEVELDB "Enable LevelDB backend")
|
||||||
@ -73,7 +107,8 @@ if(ENABLE_LEVELDB)
|
|||||||
endif(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
|
endif(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
|
||||||
endif(ENABLE_LEVELDB)
|
endif(ENABLE_LEVELDB)
|
||||||
|
|
||||||
# Find redis
|
# Libraries: redis
|
||||||
|
|
||||||
set(USE_REDIS 0)
|
set(USE_REDIS 0)
|
||||||
|
|
||||||
OPTION(ENABLE_REDIS "Enable redis backend")
|
OPTION(ENABLE_REDIS "Enable redis backend")
|
||||||
@ -93,6 +128,8 @@ if(ENABLE_REDIS)
|
|||||||
endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
|
endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
|
||||||
endif(ENABLE_REDIS)
|
endif(ENABLE_REDIS)
|
||||||
|
|
||||||
|
# Compiling & Linking
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
"${PROJECT_BINARY_DIR}"
|
"${PROJECT_BINARY_DIR}"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
@ -139,12 +176,13 @@ target_link_libraries(
|
|||||||
${ZLIB_LIBRARY}
|
${ZLIB_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
install(FILES "AUTHORS" DESTINATION ".")
|
# Installing & Packaging
|
||||||
install(FILES "COPYING" DESTINATION ".")
|
|
||||||
install(FILES "README.rst" DESTINATION ".")
|
|
||||||
install(FILES "colors.txt" DESTINATION ".")
|
|
||||||
|
|
||||||
# CPack
|
install(TARGETS "${PROJECT_NAME}" DESTINATION "${BINDIR}")
|
||||||
|
install(FILES "AUTHORS" DESTINATION "${DOCDIR}")
|
||||||
|
install(FILES "COPYING" DESTINATION "${DOCDIR}")
|
||||||
|
install(FILES "README.rst" DESTINATION "${DOCDIR}")
|
||||||
|
install(FILES "colors.txt" DESTINATION "${SHAREDIR}")
|
||||||
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Overview mapper for Minetest")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Overview mapper for Minetest")
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
||||||
@ -153,11 +191,9 @@ set(CPACK_PACKAGE_VENDOR "celeron55")
|
|||||||
set(CPACK_PACKAGE_CONTACT "Perttu Ahola <celeron55@gmail.com>")
|
set(CPACK_PACKAGE_CONTACT "Perttu Ahola <celeron55@gmail.com>")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
install(FILES "${PROJECT_BINARY_DIR}/minetestmapper.exe" DESTINATION ".")
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32")
|
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32")
|
||||||
set(CPACK_GENERATOR ZIP)
|
set(CPACK_GENERATOR ZIP)
|
||||||
else()
|
else()
|
||||||
install(FILES "${PROJECT_BINARY_DIR}/minetestmapper" DESTINATION ".")
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-linux")
|
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-linux")
|
||||||
set(CPACK_GENERATOR TGZ)
|
set(CPACK_GENERATOR TGZ)
|
||||||
set(CPACK_SOURCE_GENERATOR TGZ)
|
set(CPACK_SOURCE_GENERATOR TGZ)
|
||||||
|
@ -8,5 +8,7 @@
|
|||||||
|
|
||||||
#define USE_CXX11 @USE_CXX11@
|
#define USE_CXX11 @USE_CXX11@
|
||||||
|
|
||||||
|
#define SHAREDIR "@SHAREDIR@"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
30
mapper.cpp
30
mapper.cpp
@ -1,10 +1,12 @@
|
|||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "cmake_config.h"
|
||||||
#include "TileGenerator.h"
|
#include "TileGenerator.h"
|
||||||
|
|
||||||
void usage()
|
void usage()
|
||||||
@ -31,9 +33,30 @@ void usage()
|
|||||||
std::cout << usage_text;
|
std::cout << usage_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string search_colors()
|
bool file_exists(const std::string &path)
|
||||||
{
|
{
|
||||||
// TBD
|
std::ifstream ifs(path.c_str());
|
||||||
|
return ifs.is_open();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string search_colors(const std::string &worldpath)
|
||||||
|
{
|
||||||
|
if(file_exists(worldpath + "/colors.txt"))
|
||||||
|
return worldpath + "/colors.txt";
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
char *home = std::getenv("HOME");
|
||||||
|
if(home) {
|
||||||
|
std::string check = ((std::string) home) + "/.minetest/colors.txt";
|
||||||
|
if(file_exists(check))
|
||||||
|
return check;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(!(SHAREDIR[0] == '.' || SHAREDIR[0] == '\0') && file_exists(SHAREDIR "/colors.txt"))
|
||||||
|
return SHAREDIR "/colors.txt";
|
||||||
|
|
||||||
|
std::cerr << "Warning: Falling back to using colors.txt from current directory." << std::endl;
|
||||||
return "colors.txt";
|
return "colors.txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,7 +186,8 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(colors == "")
|
if(colors == "")
|
||||||
colors = search_colors();
|
colors = search_colors(input);
|
||||||
|
std::cerr << "is at " << colors << std::endl;
|
||||||
try {
|
try {
|
||||||
generator.parseColorsFile(colors);
|
generator.parseColorsFile(colors);
|
||||||
generator.generate(input, output);
|
generator.generate(input, output);
|
||||||
|
Loading…
Reference in New Issue
Block a user