From 7ee5a3624e4177b13ea63565cd63449fa4a3aa2f Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 08:57:35 +0200 Subject: [PATCH 1/6] allow game.start in ini file --- src/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.c b/src/main.c index 7b1c62c38..e67982108 100644 --- a/src/main.c +++ b/src/main.c @@ -75,6 +75,7 @@ static void load_inifile(void) static const char * valid_keys[] = { "game.id", "game.name", + "game.start", "game.locale", "game.verbose", "game.report", From 6b4a8e677fead31a4e9b4ce37eeb1c3280c42a79 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 20:15:06 +0200 Subject: [PATCH 2/6] remove cmake submodule --- .gitmodules | 3 --- cmake | 1 - 2 files changed, 4 deletions(-) delete mode 160000 cmake diff --git a/.gitmodules b/.gitmodules index 7dff5ab6a..4d903c57f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "lunit"] path = lunit url = https://github.com/ennorehling/lunit.git -[submodule "cmake"] - path = cmake - url = https://github.com/ennorehling/cmake.git [submodule "dlmalloc"] path = dlmalloc url = https://github.com/ennorehling/dlmalloc.git diff --git a/cmake b/cmake deleted file mode 160000 index f1fb3943a..000000000 --- a/cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f1fb3943ace59994d90d71a891b80033dc2700a2 From f8d49e07af0904f7f803aecf0823fd5afeac6e9a Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 20:25:27 +0200 Subject: [PATCH 3/6] remove outdated custom CMake Modules. only keep what is not in CMake 3.6. --- CMakeLists.txt | 4 +- cmake/Modules/FindMSVC.cmake | 21 ++++++++++ cmake/Modules/FindSQLite3.cmake | 37 +++++++++++++++++ cmake/Modules/FindToLua.cmake | 71 +++++++++++++++++++++++++++++++++ s/cmake-init | 3 +- 5 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 cmake/Modules/FindMSVC.cmake create mode 100644 cmake/Modules/FindSQLite3.cmake create mode 100644 cmake/Modules/FindToLua.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 405b86a03..302e9065e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.6) if (WIN32) FILE(TO_CMAKE_PATH "${CMAKE_MODULE_PATH}" CMAKE_MODULE_PATH ) FILE(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH ) @@ -6,6 +6,8 @@ endif(WIN32) project (eressea-server C) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") + enable_testing() find_package (LibXml2) find_package (SQLite3) diff --git a/cmake/Modules/FindMSVC.cmake b/cmake/Modules/FindMSVC.cmake new file mode 100644 index 000000000..b93fed898 --- /dev/null +++ b/cmake/Modules/FindMSVC.cmake @@ -0,0 +1,21 @@ +MACRO (MSVC_CRT_SECURE_NO_WARNINGS) + IF (MSVC) + FOREACH (target ${ARGN}) + SET_TARGET_PROPERTIES (${target} PROPERTIES + COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS + ) + ENDFOREACH (target) + ENDIF (MSVC) +ENDMACRO (MSVC_CRT_SECURE_NO_WARNINGS) + +MACRO (MSVC_SET_WARNING_LEVEL level) + IF (MSVC) + IF(CMAKE_C_FLAGS MATCHES "/W[0-4]") + STRING(REGEX REPLACE "/W[0-4]" "/W${level}" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + ELSE() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W${level}") + ENDIF() + ENDIF(MSVC) +ENDMACRO (MSVC_SET_WARNING_LEVEL) + +SET(MSVC_FOUND 1) diff --git a/cmake/Modules/FindSQLite3.cmake b/cmake/Modules/FindSQLite3.cmake new file mode 100644 index 000000000..c3689205d --- /dev/null +++ b/cmake/Modules/FindSQLite3.cmake @@ -0,0 +1,37 @@ +# Copyright (C) 2007-2009 LuaDist. +# Created by Peter Kapec +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Note: +# Searching headers and libraries is very simple and is NOT as powerful as scripts +# distributed with CMake, because LuaDist defines directories to search for. +# Everyone is encouraged to contact the author with improvements. Maybe this file +# becomes part of CMake distribution sometimes. + +# - Find sqlite3 +# Find the native SQLITE3 headers and libraries. +# +# SQLITE3_INCLUDE_DIRS - where to find sqlite3.h, etc. +# SQLITE3_LIBRARIES - List of libraries when using sqlite. +# SQLITE3_FOUND - True if sqlite found. + +# Look for the header file. +FIND_PATH(SQLITE3_INCLUDE_DIR NAMES sqlite3.h) + +# Look for the library. +FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite) + +# Handle the QUIETLY and REQUIRED arguments and set SQLITE3_FOUND to TRUE if all listed variables are TRUE. +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLITE3 DEFAULT_MSG SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR) + +# Copy the results to the output variables. +IF(SQLITE3_FOUND) + SET(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY}) + SET(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) +ELSE(SQLITE3_FOUND) + SET(SQLITE3_LIBRARIES) + SET(SQLITE3_INCLUDE_DIRS) +ENDIF(SQLITE3_FOUND) + +MARK_AS_ADVANCED(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) diff --git a/cmake/Modules/FindToLua.cmake b/cmake/Modules/FindToLua.cmake new file mode 100644 index 000000000..52c721112 --- /dev/null +++ b/cmake/Modules/FindToLua.cmake @@ -0,0 +1,71 @@ +# - Try to find the ToLua library +# Once done this will define +# +# TOLUA_FOUND - System has ToLua +# TOLUA_INCLUDE_DIR - The ToLua include directory +# TOLUA_LIBRARIES - The libraries needed to use ToLua +# TOLUA_DEFINITIONS - Compiler switches required for using ToLua +# TOLUA_EXECUTABLE - The ToLua command line shell +# TOLUA_VERSION_STRING - the version of ToLua found (since CMake 2.8.8) + +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006 Alexander Neundorf +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# use pkg-config to get the directories and then use these values +# in the find_path() and find_library() calls +find_package(PkgConfig QUIET) +PKG_CHECK_MODULES(PC_TOLUA QUIET ToLua) +set(TOLUA_DEFINITIONS ${PC_TOLUA_CFLAGS_OTHER}) + +find_path(TOLUA_INCLUDE_DIR NAMES tolua.h + HINTS + ${PC_TOLUA_DIR}/include + ${PC_TOLUA_INCLUDEDIR} + ${PC_TOLUA_INCLUDE_DIRS} + ) +find_library(TOLUA_LIBRARY NAMES tolua + HINTS + ${PC_TOLUA_DIR}/lib + ${PC_TOLUA_LIBDIR} + ${PC_TOLUA_LIBRARY_DIRS} + ) +find_program(TOLUA_EXECUTABLE tolua + HINTS + ${PC_TOLUA_DIR}/bin + ${PC_TOLUA_LIBDIR} + ${PC_TOLUA_LIBRARY_DIRS} +) + +SET( TOLUA_LIBRARIES "${TOLUA_LIBRARY}" CACHE STRING "ToLua Libraries") + +if(PC_TOLUA_VERSION) + set(TOLUA_VERSION_STRING ${PC_TOLUA_VERSION}) +elseif(TOLUA_INCLUDE_DIR AND EXISTS "${TOLUA_INCLUDE_DIR}/tolua.h") + file(STRINGS "${TOLUA_INCLUDE_DIR}/tolua.h" tolua_version_str + REGEX "^#define[\t ]+TOLUA_VERSION[\t ]+\".*\"") + + string(REGEX REPLACE "^#define[\t ]+TOLUA_VERSION[\t ]+\"tolua ([^\"]*)\".*" "\\1" + TOLUA_VERSION_STRING "${tolua_version_str}") + unset(tolua_version_str) +endif() + +# handle the QUIETLY and REQUIRED arguments and set TOLUA_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ToLua + REQUIRED_VARS TOLUA_LIBRARY TOLUA_INCLUDE_DIR TOLUA_EXECUTABLE + VERSION_VAR TOLUA_VERSION_STRING) + +mark_as_advanced(TOLUA_INCLUDE_DIR TOLUA_LIBRARIES TOLUA_EXECUTABLE) + diff --git a/s/cmake-init b/s/cmake-init index 1ce7eccd3..f40ff67e8 100755 --- a/s/cmake-init +++ b/s/cmake-init @@ -29,8 +29,7 @@ if [ -d $HOME/usr ]; then fi DEST=$(dirname $ROOT)/server -ARGS=" -DCMAKE_MODULE_PATH=$ROOT/cmake/Modules \ - -DCMAKE_BUILD_TYPE=$BUILD \ +ARGS=" -DCMAKE_BUILD_TYPE=$BUILD \ -DCMAKE_LIBRARY_PATH=$LIBRARY_PATH \ -DCMAKE_INCLUDE_PATH=$INCLUDE_PATH \ -DCMAKE_PREFIX_PATH=$PREFIX_PATH \ From a3cdfef66889dafa04fe1ef64b5a09fcecdde227 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 21:10:30 +0200 Subject: [PATCH 4/6] Fix find_package calls for CMake < 3.0 --- CMakeLists.txt | 8 +- cmake/Modules/FindLua.cmake | 172 ++++++++++++++++++++++++++++++++ cmake/Modules/FindSQLite3.cmake | 88 ++++++++++------ s/cmake-init | 2 +- 4 files changed, 235 insertions(+), 35 deletions(-) create mode 100644 cmake/Modules/FindLua.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 302e9065e..aecdffb3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.6) +cmake_minimum_required(VERSION 2.8) if (WIN32) FILE(TO_CMAKE_PATH "${CMAKE_MODULE_PATH}" CMAKE_MODULE_PATH ) FILE(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH ) @@ -12,8 +12,10 @@ enable_testing() find_package (LibXml2) find_package (SQLite3) find_package (Curses) -find_package (Lua REQUIRED) -find_package (ToLua REQUIRED) +find_package (Lua 5.1 REQUIRED) +if (LUA_FOUND) +find_package (ToLua "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" EXACT REQUIRED) +endif(LUA_FOUND) add_subdirectory (cJSON) add_subdirectory (storage) diff --git a/cmake/Modules/FindLua.cmake b/cmake/Modules/FindLua.cmake new file mode 100644 index 000000000..898ccbfd6 --- /dev/null +++ b/cmake/Modules/FindLua.cmake @@ -0,0 +1,172 @@ +#.rst: +# FindLua +# ------- +# +# +# +# Locate Lua library This module defines +# +# :: +# +# LUA_FOUND - if false, do not try to link to Lua +# LUA_LIBRARIES - both lua and lualib +# LUA_INCLUDE_DIR - where to find lua.h +# LUA_VERSION_STRING - the version of Lua found +# LUA_VERSION_MAJOR - the major version of Lua +# LUA_VERSION_MINOR - the minor version of Lua +# LUA_VERSION_PATCH - the patch version of Lua +# +# +# +# Note that the expected include convention is +# +# :: +# +# #include "lua.h" +# +# and not +# +# :: +# +# #include +# +# This is because, the lua location is not standardized and may exist in +# locations other than lua/ + +#============================================================================= +# Copyright 2007-2009 Kitware, Inc. +# Copyright 2013 Rolf Eike Beer +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +unset(_lua_include_subdirs) +unset(_lua_library_names) + +# this is a function only to have all the variables inside go away automatically +function(set_lua_version_vars) + set(LUA_VERSIONS5 5.3 5.2 5.1 5.0) + + if (Lua_FIND_VERSION_EXACT) + if (Lua_FIND_VERSION_COUNT GREATER 1) + set(lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}) + endif () + elseif (Lua_FIND_VERSION) + # once there is a different major version supported this should become a loop + if (NOT Lua_FIND_VERSION_MAJOR GREATER 5) + if (Lua_FIND_VERSION_COUNT EQUAL 1) + set(lua_append_versions ${LUA_VERSIONS5}) + else () + foreach (subver IN LISTS LUA_VERSIONS5) + if (NOT subver VERSION_LESS ${Lua_FIND_VERSION}) + list(APPEND lua_append_versions ${subver}) + endif () + endforeach () + endif () + endif () + else () + # once there is a different major version supported this should become a loop + set(lua_append_versions ${LUA_VERSIONS5}) + endif () + + foreach (ver IN LISTS lua_append_versions) + string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}") + list(APPEND _lua_include_subdirs + include/lua${CMAKE_MATCH_1}${CMAKE_MATCH_2} + include/lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2} + include/lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2} + ) + list(APPEND _lua_library_names + lua${CMAKE_MATCH_1}${CMAKE_MATCH_2} + lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2} + lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2} + lua.${CMAKE_MATCH_1}.${CMAKE_MATCH_2} + ) + endforeach () + + set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE) + set(_lua_library_names "${_lua_library_names}" PARENT_SCOPE) +endfunction(set_lua_version_vars) + +set_lua_version_vars() + +find_path(LUA_INCLUDE_DIR lua.h + HINTS + ENV LUA_DIR + PATH_SUFFIXES ${_lua_include_subdirs} include/lua include + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) +unset(_lua_include_subdirs) + +find_library(LUA_LIBRARY + NAMES ${_lua_library_names} lua + HINTS + ENV LUA_DIR + PATH_SUFFIXES lib + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw + /opt/local + /opt/csw + /opt +) +unset(_lua_library_names) + +if (LUA_LIBRARY) + # include the math library for Unix + if (UNIX AND NOT APPLE AND NOT BEOS) + find_library(LUA_MATH_LIBRARY m) + set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}") + # For Windows and Mac, don't need to explicitly include the math library + else () + set(LUA_LIBRARIES "${LUA_LIBRARY}") + endif () +endif () + +if (LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h") + # At least 5.[012] have different ways to express the version + # so all of them need to be tested. Lua 5.2 defines LUA_VERSION + # and LUA_RELEASE as joined by the C preprocessor, so avoid those. + file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_strings + REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*") + + string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};") + if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$") + string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};") + string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};") + set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}") + else () + string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};") + if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$") + string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};") + endif () + string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}") + endif () + + unset(lua_version_strings) +endif() + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua + REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR + VERSION_VAR LUA_VERSION_STRING) + +mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY) diff --git a/cmake/Modules/FindSQLite3.cmake b/cmake/Modules/FindSQLite3.cmake index c3689205d..910b05cea 100644 --- a/cmake/Modules/FindSQLite3.cmake +++ b/cmake/Modules/FindSQLite3.cmake @@ -1,37 +1,63 @@ -# Copyright (C) 2007-2009 LuaDist. -# Created by Peter Kapec -# Redistribution and use of this file is allowed according to the terms of the MIT license. -# For details see the COPYRIGHT file distributed with LuaDist. -# Note: -# Searching headers and libraries is very simple and is NOT as powerful as scripts -# distributed with CMake, because LuaDist defines directories to search for. -# Everyone is encouraged to contact the author with improvements. Maybe this file -# becomes part of CMake distribution sometimes. - -# - Find sqlite3 -# Find the native SQLITE3 headers and libraries. +# - Try to find the SQLite3 library +# Once done this will define # -# SQLITE3_INCLUDE_DIRS - where to find sqlite3.h, etc. -# SQLITE3_LIBRARIES - List of libraries when using sqlite. -# SQLITE3_FOUND - True if sqlite found. +# SQLITE3_FOUND - System has SQLite3 +# SQLITE3_INCLUDE_DIR - The SQLite3 include directory +# SQLITE3_LIBRARIES - The libraries needed to use SQLite3 +# SQLITE3_DEFINITIONS - Compiler switches required for using SQLite3 +# SQLITE3_EXECUTABLE - The SQLite3 command line shell +# SQLITE3_VERSION_STRING - the version of SQLite3 found (since CMake 2.8.8) -# Look for the header file. -FIND_PATH(SQLITE3_INCLUDE_DIR NAMES sqlite3.h) +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006 Alexander Neundorf +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) -# Look for the library. -FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite) +# use pkg-config to get the directories and then use these values +# in the find_path() and find_library() calls +find_package(PkgConfig QUIET) +PKG_CHECK_MODULES(PC_SQLITE QUIET sqlite3) +set(SQLITE3_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER}) -# Handle the QUIETLY and REQUIRED arguments and set SQLITE3_FOUND to TRUE if all listed variables are TRUE. -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLITE3 DEFAULT_MSG SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR) +find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h + HINTS + ${PC_SQLITE_INCLUDEDIR} + ${PC_SQLITE_INCLUDE_DIRS} + ) -# Copy the results to the output variables. -IF(SQLITE3_FOUND) - SET(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY}) - SET(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) -ELSE(SQLITE3_FOUND) - SET(SQLITE3_LIBRARIES) - SET(SQLITE3_INCLUDE_DIRS) -ENDIF(SQLITE3_FOUND) +find_library(SQLITE3_LIBRARIES NAMES sqlite3 + HINTS + ${PC_SQLITE_LIBDIR} + ${PC_SQLITE_LIBRARY_DIRS} + ) -MARK_AS_ADVANCED(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) +find_program(SQLITE3_EXECUTABLE sqlite3) + +if(PC_SQLITE_VERSION) + set(SQLITE3_VERSION_STRING ${PC_SQLITE_VERSION}) +elseif(SQLITE3_INCLUDE_DIR AND EXISTS "${SQLITE3_INCLUDE_DIR}/sqlite3.h") + file(STRINGS "${SQLITE3_INCLUDE_DIR}/sqlite3.h" sqlite3_version_str + REGEX "^#define[\t ]+SQLITE_VERSION[\t ]+\".*\"") + + string(REGEX REPLACE "^#define[\t ]+SQLITE_VERSION[\t ]+\"([^\"]*)\".*" "\\1" + SQLITE3_VERSION_STRING "${sqlite3_version_str}") + unset(sqlite3_version_str) +endif() + +# handle the QUIETLY and REQUIRED arguments and set SQLITE3_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLite3 + REQUIRED_VARS SQLITE3_LIBRARIES SQLITE3_INCLUDE_DIR + VERSION_VAR SQLITE3_VERSION_STRING) + +mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARIES SQLITE3_EXECUTABLE) diff --git a/s/cmake-init b/s/cmake-init index f40ff67e8..d402f1543 100755 --- a/s/cmake-init +++ b/s/cmake-init @@ -10,6 +10,7 @@ ROOT=$(git rev-parse --show-toplevel) MACHINE=`$CC -dumpmachine` [ -z $MACHINE ] && MACHINE=`uname -m` BIN_DIR="$ROOT/build-$MACHINE-$CC-$BUILD" +rm -rf $BIN_DIR mkdir -p $BIN_DIR rm -f $BUILD ln -sf $BIN_DIR $BUILD @@ -31,7 +32,6 @@ fi DEST=$(dirname $ROOT)/server ARGS=" -DCMAKE_BUILD_TYPE=$BUILD \ -DCMAKE_LIBRARY_PATH=$LIBRARY_PATH \ - -DCMAKE_INCLUDE_PATH=$INCLUDE_PATH \ -DCMAKE_PREFIX_PATH=$PREFIX_PATH \ -DCMAKE_INSTALL_PREFIX=$DEST" From 3b3379ad4bb9c448fb79b503ca117f1ec59f1ae6 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 21:30:46 +0200 Subject: [PATCH 5/6] work around bad version matchig in FindToLua.cmake --- CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aecdffb3a..892c5b4f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,10 +12,14 @@ enable_testing() find_package (LibXml2) find_package (SQLite3) find_package (Curses) -find_package (Lua 5.1 REQUIRED) -if (LUA_FOUND) -find_package (ToLua "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" EXACT REQUIRED) -endif(LUA_FOUND) +find_package (ToLua REQUIRED) +if (TOLUA_FOUND) +if (${TOLUA_VERSION_STRING} VERSION_EQUAL "5.2") +find_package (Lua 5.2 REQUIRED) +elseif (${TOLUA_VERSION_STRING} VERSION_EQUAL "5.1") +find_package (Lua 5.2 REQUIRED) +endif() +endif(TOLUA_FOUND) add_subdirectory (cJSON) add_subdirectory (storage) From c4e15fd5ba267330075246ab4fa742335605b327 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 27 Mar 2017 21:59:56 +0200 Subject: [PATCH 6/6] fix find_package call for Lua --- CMakeLists.txt | 8 ++++---- src/CMakeLists.txt | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 892c5b4f0..02146f1f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ endif(WIN32) project (eressea-server C) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH}) enable_testing() find_package (LibXml2) @@ -14,10 +14,10 @@ find_package (SQLite3) find_package (Curses) find_package (ToLua REQUIRED) if (TOLUA_FOUND) -if (${TOLUA_VERSION_STRING} VERSION_EQUAL "5.2") -find_package (Lua 5.2 REQUIRED) -elseif (${TOLUA_VERSION_STRING} VERSION_EQUAL "5.1") +if (${TOLUA_VERSION_STRING} VERSION_GREATER "5.2") find_package (Lua 5.2 REQUIRED) +elseif (${TOLUA_VERSION_STRING} VERSION_GREATER "5.1") +find_package (Lua 5.1 REQUIRED) endif() endif(TOLUA_FOUND) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ebe914dfe..fe4613e7d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -187,10 +187,12 @@ target_link_libraries(eressea ${INIPARSER_LIBRARIES} ) +find_library(C_MATH_LIBRARY m) + add_executable(convert convert.c) target_link_libraries(convert game - ${LUA_MATH_LIBRARY} + ${C_MATH_LIBRARY} ${STORAGE_LIBRARIES} ${CLIBS_LIBRARIES} ${INIPARSER_LIBRARIES}