forked from luanti-org/luanti
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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.
- Loading branch information
1 parent
284fefb
commit 93fcab9
Showing
50 changed files
with
744 additions
and
1,063 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,69 +1,62 @@ | ||
cmake_minimum_required(VERSION 2.6) | ||
|
||
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 | ||
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_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) | ||
set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA}) | ||
set(VERSION_STRING ${VERSION_STRING}-${VERSION_EXTRA}) | ||
else() | ||
# Comment the following line during release | ||
set(VERSION_PATCH ${VERSION_PATCH}-dev) | ||
set(VERSION_STRING "${VERSION_STRING}-dev") | ||
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) | ||
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() | ||
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() | ||
|
||
|
||
# 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) | ||
|
||
# | ||
|
||
# Installation | ||
# | ||
|
||
if(WIN32) | ||
set(SHAREDIR ".") | ||
|
@@ -72,11 +65,11 @@ if(WIN32) | |
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(DOCDIR "${SHAREDIR}/${PROJECT_NAME}") | ||
set(DOCDIR "${SHAREDIR}/${PROJECT_NAME_LOWER}") | ||
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(SHAREDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}") | ||
set(SHAREDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME_LOWER}") | ||
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(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/locale") | ||
set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME_LOWER}/locale") | ||
endif() | ||
endif() | ||
|
||
|
@@ -108,42 +101,50 @@ 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() | ||
|
||
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_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_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") | ||
|
@@ -183,13 +184,13 @@ if(APPLE) | |
install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents") | ||
endif() | ||
|
||
# | ||
|
||
# Subdirectories | ||
# Be sure to add all relevant definitions above this | ||
# | ||
|
||
add_subdirectory(src) | ||
|
||
|
||
# CPack | ||
|
||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An InfiniMiner/Minecraft inspired game") | ||
|
@@ -202,9 +203,9 @@ set(CPACK_PACKAGE_CONTACT "Perttu Ahola <[email protected]>") | |
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") | ||
endif(CMAKE_SIZEOF_VOID_P EQUAL 8) | ||
endif() | ||
|
||
set(CPACK_GENERATOR ZIP) | ||
elseif(APPLE) | ||
|
@@ -219,14 +220,16 @@ endif() | |
|
||
include(CPack) | ||
|
||
|
||
# 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 | ||
) | ||
endif(DOXYGEN_FOUND) | ||
endif() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.