* tune up gitlab ci: * add winbuntu 14, add debian 7, winbuntu 17, build minetest for olders one * use minenux minetest repo game (seems not work) * remove non buildable stages.. remove windo shit * back cmake in list new behaviour for blacklist locales * gitlab ci build for debian 8 using backports on jsoncpp * solved https://github.com/minetest/minetest/issues/6567 * solved https://github.com/minetest/minetest/issues/7681 * cmake fixed to minimum supported and c++11 standar able * Fix no locales being generated when APPLY_LOCALE_BLACKLIST=0 * Fix linking with Postgres libs: * closes https://github.com/minetest/minetest/issues/12149 * closes https://github.com/minetest/minetest/issues/11219 * PostgreSQL fallback code missed the includes https://github.com/minetest/minetest/issues/11219 *a24899bf2d
*3e2145d662
* integrates https://github.com/minetest/minetest/pull/11215 *a24899bf2d
* backported998e4820c9
* use SSE registers for FP operations on i386 for modern gcc platforms only * only use if related are given, by example 32bit using gcc compilers/stdlibs becouse of the long time bugs around those errors by desing, its not about to crash the engine.. its about to permits to hacked clients (either players or the client program per se) making predictable results, so predictable results permits to catch securit issues! * floating point problems are only on modern gcc and modern platform arches, raising problems like bad calculations positions.. a long time bug reported at https://git.minetest.land/Mineclonia/Mineclonia/issues/201 and addressed at https://github.com/minetest/minetest/issues/11742#issuecomment-994444462 with enought explanations but not accepted byt stupid developers.. now years later.. the problems were solved and reconiced as big bug! A workaround were proposed at https://github.com/minetest/minetest/pull/12389/files but never accepted (included in this repository), cos was superset by8ff3fadba0
* related minenux/minetest-engine-multicraft2#57
117 lines
3.4 KiB
CMake
117 lines
3.4 KiB
CMake
cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
|
|
|
|
project(lua C)
|
|
|
|
set(LUA_VERSION_MAJOR 5)
|
|
set(LUA_VERSION_MINOR 1)
|
|
set(LUA_VERSION_PATCH 4)
|
|
set(LUA_VERSION "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
|
|
set(COMMON_CFLAGS)
|
|
set(COMMON_LDFLAGS)
|
|
set(LIBS)
|
|
|
|
if(APPLE)
|
|
set(DEFAULT_POSIX TRUE)
|
|
set(DEFAULT_DLOPEN ON)
|
|
# use this on Mac OS X 10.3-
|
|
option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF)
|
|
elseif(UNIX OR CYGWIN)
|
|
set(DEFAULT_POSIX TRUE)
|
|
elseif(WIN32)
|
|
set(LUA_WIN TRUE)
|
|
set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_BUILD_AS_DLL")
|
|
else()
|
|
set(DEFAULT_ANSI TRUE)
|
|
endif()
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set(COMMON_LDFLAGS "${COMMON_LDFLAGS} -Wl,-E -lm")
|
|
set(DEFAULT_DLOPEN ON)
|
|
endif()
|
|
|
|
# For "Mac OS X 10.3-"
|
|
if(LUA_USE_MACOSX)
|
|
set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
|
|
set(LUA_USE_DLOPEN FALSE)
|
|
endif(LUA_USE_MACOSX)
|
|
|
|
option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN})
|
|
mark_as_advanced(LUA_USE_DLOPEN)
|
|
|
|
option(LUA_ANSI "Disable non-ANSI features." ${DEFAULT_ANSI})
|
|
mark_as_advanced(LUA_ANSI)
|
|
|
|
if(LUA_USE_DLOPEN)
|
|
set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_DLOPEN")
|
|
if(NOT APPLE)
|
|
set(COMMON_LDFLAGS "${COMMON_LDFLAGS} -ldl ")
|
|
endif(NOT APPLE)
|
|
endif(LUA_USE_DLOPEN)
|
|
|
|
if(DEFAULT_POSIX)
|
|
set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_POSIX")
|
|
endif(DEFAULT_POSIX)
|
|
|
|
if(LUA_ANSI)
|
|
set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_ANSI")
|
|
endif(LUA_ANSI)
|
|
|
|
# COMMON_CFLAGS has no effect without this line
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_CFLAGS}")
|
|
|
|
|
|
# Standard flags to use for each build type.
|
|
if(CMAKE_COMPILER_IS_GNUCC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -Wall -Wextra -Wshadow -W -pedantic -std=gnu99")
|
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
|
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g")
|
|
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -O1 -g")
|
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_WITHDEBINFO} -O2 -g")
|
|
endif(CMAKE_COMPILER_IS_GNUCC)
|
|
|
|
# check compatible compileer must be after project definition and set flags, assume if C++ is installed also CC is installed
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
|
else()
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
|
|
endif()
|
|
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
|
elseif (CMAKE_C_COMPILER_VERSION VERSION_EQUAL 4.6)
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu1x")
|
|
else()
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
|
|
endif()
|
|
message(STATUS "using gnu compiler")
|
|
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++1y")
|
|
else()
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
|
|
endif()
|
|
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 3.5)
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
|
|
endif()
|
|
message(STATUS "using clang compiler")
|
|
else()
|
|
if (CMAKE_VERSION VERSION_GREATER 3.0)
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
else()
|
|
if(APPLE)
|
|
# Fix behavior of CMAKE_CXX_STANDARD when targeting macOS.
|
|
if (POLICY CMP0025)
|
|
cmake_policy(SET CMP0025 NEW)
|
|
endif ()
|
|
endif ()
|
|
endif()
|
|
message(STATUS "using default installed compiler")
|
|
endif()
|
|
|
|
add_subdirectory(src build)
|
|
|