Fix Compiling errors

This commit is contained in:
sdzen 2013-08-06 07:18:18 +00:00
parent 54bb0dd6bb
commit 2bdee894d1
1 changed files with 369 additions and 366 deletions

View File

@ -1,366 +1,369 @@
project(minetest) project(minetest)
cmake_minimum_required( VERSION 2.6 ) cmake_minimum_required( VERSION 2.6 )
if(RUN_IN_PLACE) if(RUN_IN_PLACE)
add_definitions ( -DRUN_IN_PLACE ) add_definitions ( -DRUN_IN_PLACE )
endif(RUN_IN_PLACE) endif(RUN_IN_PLACE)
# user-visible option to enable/disable gettext usage # user-visible option to enable/disable gettext usage
OPTION(ENABLE_GETTEXT "Use GetText for internationalization" ON) OPTION(ENABLE_GETTEXT "Use GetText for internationalization" ON)
# this is only set to 1 if gettext is enabled _and_ available # this is only set to 1 if gettext is enabled _and_ available
set(USE_GETTEXT 0) set(USE_GETTEXT 0)
find_package(GettextLib) find_package(GettextLib)
if(GETTEXT_FOUND AND ENABLE_GETTEXT) if(GETTEXT_FOUND AND ENABLE_GETTEXT)
message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}") message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}") message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
if(WIN32) if(WIN32)
message(STATUS "gettext library: ${GETTEXT_LIBRARY}") message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
message(STATUS "gettext dll: ${GETTEXT_DLL}") message(STATUS "gettext dll: ${GETTEXT_DLL}")
message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}") message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
endif() endif()
set(USE_GETTEXT 1) set(USE_GETTEXT 1)
message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}") message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
elseif(GETTEXT_FOUND AND NOT ENABLE_GETTEXT) elseif(GETTEXT_FOUND AND NOT ENABLE_GETTEXT)
MESSAGE(STATUS "GetText found but disabled;") MESSAGE(STATUS "GetText found but disabled;")
else(GETTEXT_FOUND AND ENABLE_GETTEXT) else(GETTEXT_FOUND AND ENABLE_GETTEXT)
message(STATUS "GetText disabled") message(STATUS "GetText disabled")
endif(GETTEXT_FOUND AND ENABLE_GETTEXT) endif(GETTEXT_FOUND AND ENABLE_GETTEXT)
if(NOT MSVC) if(NOT MSVC)
set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++") set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
endif() endif()
# Use cmake_config.h # Use cmake_config.h
add_definitions ( -DUSE_CMAKE_CONFIG_H ) add_definitions ( -DUSE_CMAKE_CONFIG_H )
if(WIN32) if(WIN32)
# Windows # Windows
if(MSVC) # MSVC Specifics if(MSVC) # MSVC Specifics
# Surpress some useless warnings # Surpress some useless warnings
add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 ) add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 )
else() # Probably MinGW = GCC else() # Probably MinGW = GCC
set(PLATFORM_LIBS ws2_32.lib) set(PLATFORM_LIBS ws2_32.lib)
endif() endif()
# Zlib stuff # Zlib stuff
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 FILEPATH "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 FILEPATH "Path to zlibwapi.dll (for installation)") CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2" set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
CACHE PATH "irrlicht dir") CACHE PATH "irrlicht dir")
else() else()
# Unix probably # Unix probably
if(BUILD_CLIENT) if(BUILD_CLIENT)
find_package(X11 REQUIRED) find_package(X11 REQUIRED)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
find_package(JPEG REQUIRED) find_package(JPEG REQUIRED)
find_package(BZip2 REQUIRED) find_package(BZip2 REQUIRED)
find_package(PNG REQUIRED) find_package(PNG REQUIRED)
if(APPLE) if(APPLE)
FIND_LIBRARY(CARBON_LIB Carbon) FIND_LIBRARY(CARBON_LIB Carbon)
FIND_LIBRARY(COCOA_LIB Cocoa) FIND_LIBRARY(COCOA_LIB Cocoa)
FIND_LIBRARY(IOKIT_LIB IOKit) FIND_LIBRARY(IOKIT_LIB IOKit)
mark_as_advanced( mark_as_advanced(
CARBON_LIB CARBON_LIB
COCOA_LIB COCOA_LIB
IOKIT_LIB IOKIT_LIB
) )
SET(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${CARBON_LIB} ${COCOA_LIB} ${IOKIT_LIB}) SET(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${CARBON_LIB} ${COCOA_LIB} ${IOKIT_LIB})
endif(APPLE) endif(APPLE)
endif(BUILD_CLIENT) endif(BUILD_CLIENT)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS}) set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS})
#set(CLIENT_PLATFORM_LIBS -lXxf86vm) #set(CLIENT_PLATFORM_LIBS -lXxf86vm)
# This way Xxf86vm is found on OpenBSD too # This way Xxf86vm is found on OpenBSD too
find_library(XXF86VM_LIBRARY Xxf86vm) find_library(XXF86VM_LIBRARY Xxf86vm)
set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
endif() endif()
find_package(Jthread REQUIRED) find_package(Jthread REQUIRED)
find_package(Sqlite3 REQUIRED) find_package(Sqlite3 REQUIRED)
configure_file( configure_file(
"${PROJECT_SOURCE_DIR}/cmake_config.h.in" "${PROJECT_SOURCE_DIR}/cmake_config.h.in"
"${PROJECT_BINARY_DIR}/cmake_config.h" "${PROJECT_BINARY_DIR}/cmake_config.h"
) )
set(common_SRCS set(common_SRCS
log.cpp log.cpp
content_sao.cpp content_sao.cpp
mapgen.cpp mapgen.cpp
content_inventory.cpp content_inventory.cpp
content_nodemeta.cpp content_nodemeta.cpp
content_craft.cpp content_craft.cpp
content_mapnode.cpp content_mapnode.cpp
auth.cpp auth.cpp
collision.cpp collision.cpp
nodemetadata.cpp nodemetadata.cpp
serverobject.cpp serverobject.cpp
noise.cpp noise.cpp
mineral.cpp mineral.cpp
porting.cpp porting.cpp
materials.cpp materials.cpp
defaultsettings.cpp defaultsettings.cpp
mapnode.cpp mapnode.cpp
voxel.cpp voxel.cpp
inventory.cpp inventory.cpp
debug.cpp debug.cpp
serialization.cpp serialization.cpp
light.cpp light.cpp
filesys.cpp filesys.cpp
connection.cpp connection.cpp
environment.cpp environment.cpp
server.cpp server.cpp
servercommand.cpp servercommand.cpp
socket.cpp socket.cpp
mapblock.cpp mapblock.cpp
mapsector.cpp mapsector.cpp
map.cpp map.cpp
mesh.cpp mesh.cpp
player.cpp player.cpp
utility.cpp utility.cpp
test.cpp test.cpp
sha1.cpp sha1.cpp
base64.cpp base64.cpp
ban.cpp ban.cpp
) )
# This gives us the icon # This gives us the icon
if(WIN32) if(WIN32)
if(MINGW) if(MINGW)
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR}
-i${CMAKE_CURRENT_SOURCE_DIR}/winresource.rc -i${CMAKE_CURRENT_SOURCE_DIR}/winresource.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o) -o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o) SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
else(MINGW) # Probably MSVC else(MINGW) # Probably MSVC
set(common_SRCS ${common_SRCS} winresource.rc) set(common_SRCS ${common_SRCS} winresource.rc)
endif(MINGW) endif(MINGW)
endif() endif()
# Client sources # Client sources
set(minetest_SRCS set(minetest_SRCS
${common_SRCS} ${common_SRCS}
content_mapblock.cpp content_mapblock.cpp
content_cao.cpp content_cao.cpp
mapblock_mesh.cpp mapblock_mesh.cpp
farmesh.cpp farmesh.cpp
keycode.cpp keycode.cpp
camera.cpp camera.cpp
clouds.cpp clouds.cpp
clientobject.cpp clientobject.cpp
guiMainMenu.cpp guiMainMenu.cpp
guiKeyChangeMenu.cpp guiKeyChangeMenu.cpp
guiMessageMenu.cpp guiMessageMenu.cpp
guiTextInputMenu.cpp guiTextInputMenu.cpp
guiInventoryMenu.cpp guiInventoryMenu.cpp
guiPauseMenu.cpp guiPauseMenu.cpp
guiPasswordChange.cpp guiPasswordChange.cpp
guiDeathScreen.cpp guiDeathScreen.cpp
client.cpp client.cpp
tile.cpp tile.cpp
game.cpp game.cpp
main.cpp main.cpp
) )
# Server sources # Server sources
set(minetestserver_SRCS set(minetestserver_SRCS
${common_SRCS} ${common_SRCS}
servermain.cpp servermain.cpp
) )
include_directories( include_directories(
${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}
${IRRLICHT_INCLUDE_DIR} ${IRRLICHT_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}
${CMAKE_BUILD_TYPE} ${CMAKE_BUILD_TYPE}
${PNG_INCLUDE_DIR} ${PNG_INCLUDE_DIR}
${GETTEXT_INCLUDE_DIR} ${GETTEXT_INCLUDE_DIR}
${JTHREAD_INCLUDE_DIR} ${JTHREAD_INCLUDE_DIR}
${SQLITE3_INCLUDE_DIR} ${SQLITE3_INCLUDE_DIR}
) )
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_executable(${PROJECT_NAME} ${minetest_SRCS})
target_link_libraries( target_link_libraries(
${PROJECT_NAME} ${PROJECT_NAME}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${IRRLICHT_LIBRARY} ${IRRLICHT_LIBRARY}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${JPEG_LIBRARIES} ${JPEG_LIBRARIES}
${BZIP2_LIBRARIES} ${BZIP2_LIBRARIES}
${PNG_LIBRARIES} ${PNG_LIBRARIES}
${X11_LIBRARIES} ${X11_LIBRARIES}
${GETTEXT_LIBRARY} ${GETTEXT_LIBRARY}
${JTHREAD_LIBRARY} ${JTHREAD_LIBRARY}
${SQLITE3_LIBRARY} ${SQLITE3_LIBRARY}
${PLATFORM_LIBS} ${PLATFORM_LIBS}
${CLIENT_PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS}
) )
endif(BUILD_CLIENT) endif(BUILD_CLIENT)
if(BUILD_SERVER) if(BUILD_SERVER)
add_executable(${PROJECT_NAME}server ${minetestserver_SRCS}) add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
target_link_libraries( target_link_libraries(
${PROJECT_NAME}server ${PROJECT_NAME}server
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${JTHREAD_LIBRARY} ${JTHREAD_LIBRARY}
${SQLITE3_LIBRARY} ${SQLITE3_LIBRARY}
${PLATFORM_LIBS} ${PLATFORM_LIBS}
) )
endif(BUILD_SERVER) endif(BUILD_SERVER)
# #
# Set some optimizations and tweaks # Set some optimizations and tweaks
# #
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
if(MSVC) if(MSVC)
# Visual Studio # Visual Studio
# EHa enables SEH exceptions (used for catching segfaults) # EHa enables SEH exceptions (used for catching segfaults)
set(CMAKE_CXX_FLAGS_RELEASE "/EHa /O2 /Ob2 /Oi /Ot /Oy /GL /FD /MT /GS- /arch:SSE /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP") set(CMAKE_CXX_FLAGS_RELEASE "/EHa /O2 /Ob2 /Oi /Ot /Oy /GL /FD /MT /GS- /arch:SSE /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP")
#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /NODEFAULTLIB:\"libcmtd.lib\" /NODEFAULTLIB:\"libcmt.lib\"") #set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /NODEFAULTLIB:\"libcmtd.lib\" /NODEFAULTLIB:\"libcmt.lib\"")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG")
# Debug build doesn't catch exceptions by itself # Debug build doesn't catch exceptions by itself
# Add some optimizations because otherwise it's VERY slow # Add some optimizations because otherwise it's VERY slow
set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1") set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
# Flags for C files (sqlite) # Flags for C files (sqlite)
# /MT = Link statically with standard library stuff # /MT = Link statically with standard library stuff
set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT") set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT")
if(BUILD_SERVER) if(BUILD_SERVER)
set_target_properties(${PROJECT_NAME}server PROPERTIES set_target_properties(${PROJECT_NAME}server PROPERTIES
COMPILE_DEFINITIONS "SERVER") COMPILE_DEFINITIONS "SERVER")
endif(BUILD_SERVER) endif(BUILD_SERVER)
else() else()
# Probably GCC # Probably GCC
if(WARN_ALL) if(WARN_ALL)
set(RELEASE_WARNING_FLAGS "-Wall") set(RELEASE_WARNING_FLAGS "-Wall")
else() else()
set(RELEASE_WARNING_FLAGS "") set(RELEASE_WARNING_FLAGS "")
endif() endif()
if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING) CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING) if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-but-set-variable") set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-but-set-variable")
endif(HAS_UNUSED_BUT_SET_VARIABLE_WARNING) endif(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
endif() endif()
if(APPLE) if(APPLE)
set(CMAKE_OSX_ARCHITECTURES i386 CACHE STRING "do not build for 64-bit" FORCE) set(CMAKE_OSX_ARCHITECTURES i386 CACHE STRING "do not build for 64-bit" FORCE)
set(ARCH i386) set(ARCH i386)
endif() endif()
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops") set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
if(USE_GPROF) if(USE_GPROF)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
endif() endif()
if(BUILD_SERVER) if(BUILD_SERVER)
set_target_properties(${PROJECT_NAME}server PROPERTIES set_target_properties(${PROJECT_NAME}server PROPERTIES
COMPILE_DEFINITIONS "SERVER") COMPILE_DEFINITIONS "SERVER")
endif(BUILD_SERVER) endif(BUILD_SERVER)
endif() endif()
#MESSAGE(STATUS "CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}") #MESSAGE(STATUS "CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}")
#MESSAGE(STATUS "CMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}") #MESSAGE(STATUS "CMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}")
# #
# Installation # Installation
# #
# Example configuration file # Example configuration file
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../minetest.conf.example" DESTINATION ${EXAMPLE_CONF_DIR}) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../minetest.conf.example" DESTINATION ${EXAMPLE_CONF_DIR})
if(BUILD_CLIENT) if(BUILD_CLIENT)
install(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) install(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
file(GLOB images "${CMAKE_CURRENT_SOURCE_DIR}/../data/textures/*.png") file(GLOB images "${CMAKE_CURRENT_SOURCE_DIR}/../data/textures/*.png")
install(FILES ${images} DESTINATION ${DATADIR}/textures) install(FILES ${images} DESTINATION ${DATADIR}/textures)
file(GLOB models
if(USE_GETTEXT) "${CMAKE_CURRENT_SOURCE_DIR}/../data/models/*.b3d")
foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) install(FILES ${models} DESTINATION ${DATADIR}/models)
set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo") if(USE_GETTEXT)
install(FILES ${MO_BUILD_PATH} DESTINATION ${MO_DEST_PATH}) foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
endif() set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
install(FILES ${MO_BUILD_PATH} DESTINATION ${MO_DEST_PATH})
if(WIN32) endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
if(DEFINED IRRLICHT_DLL) endif()
install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
endif() if(WIN32)
if(DEFINED ZLIB_DLL) if(DEFINED IRRLICHT_DLL)
install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR}) install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
endif() endif()
if(USE_GETTEXT) if(DEFINED ZLIB_DLL)
if(DEFINED GETTEXT_DLL) install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR}) endif()
endif() if(USE_GETTEXT)
if(DEFINED GETTEXT_ICONV_DLL) if(DEFINED GETTEXT_DLL)
install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR}) install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
endif() endif()
endif(USE_GETTEXT) if(DEFINED GETTEXT_ICONV_DLL)
endif() install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
endif(BUILD_CLIENT) endif()
endif(USE_GETTEXT)
if(BUILD_SERVER) endif()
install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR}) endif(BUILD_CLIENT)
endif(BUILD_SERVER)
if(BUILD_SERVER)
if (USE_GETTEXT) install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR})
set(MO_FILES) endif(BUILD_SERVER)
foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) if (USE_GETTEXT)
set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po") set(MO_FILES)
set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo") foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po")
add_custom_command(OUTPUT ${MO_BUILD_PATH} set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH} set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
COMMENT "mo-update [${LOCALE}]: Creating locale directory.")
add_custom_command(OUTPUT ${MO_BUILD_PATH}
add_custom_command( COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH}
OUTPUT ${MO_FILE_PATH} COMMENT "mo-update [${LOCALE}]: Creating locale directory.")
COMMAND ${GETTEXT_MSGFMT} -o ${MO_FILE_PATH} ${PO_FILE_PATH}
DEPENDS ${MO_BUILD_PATH} ${PO_FILE_PATH} add_custom_command(
WORKING_DIRECTORY "${GETTEXT_PO_PATH}/${LOCALE}" OUTPUT ${MO_FILE_PATH}
COMMENT "mo-update [${LOCALE}]: Creating mo file." COMMAND ${GETTEXT_MSGFMT} -o ${MO_FILE_PATH} ${PO_FILE_PATH}
) DEPENDS ${MO_BUILD_PATH} ${PO_FILE_PATH}
WORKING_DIRECTORY "${GETTEXT_PO_PATH}/${LOCALE}"
set(MO_FILES ${MO_FILES} ${MO_FILE_PATH}) COMMENT "mo-update [${LOCALE}]: Creating mo file."
endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) )
add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES}) set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
endif(USE_GETTEXT) endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
# Subdirectories add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
endif(USE_GETTEXT)
if (JTHREAD_FOUND)
else (JTHREAD_FOUND) # Subdirectories
add_subdirectory(jthread)
endif (JTHREAD_FOUND) if (JTHREAD_FOUND)
else (JTHREAD_FOUND)
if (SQLITE3_FOUND) add_subdirectory(jthread)
else (SQLITE3_FOUND) endif (JTHREAD_FOUND)
add_subdirectory(sqlite)
endif (SQLITE3_FOUND) if (SQLITE3_FOUND)
else (SQLITE3_FOUND)
#end add_subdirectory(sqlite)
endif (SQLITE3_FOUND)
#end