mirror of
https://github.com/edubart/otclient.git
synced 2025-04-29 17:19:20 +02:00
Bump minimum required CMake version to 3.1 (#1131)
* Removed Ubuntu Clang workflow * Removed FindCXX.cmake (in favor of native feature) * Added support for building Windows binaries with CMake when using MSVC * Cleaned up a number of Find*.cmake modules
This commit is contained in:
parent
b6399a8ad9
commit
c4530a6d17
14
.github/workflows/build-vcpkg.yml
vendored
14
.github/workflows/build-vcpkg.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
max-parallel: 8
|
max-parallel: 8
|
||||||
matrix:
|
matrix:
|
||||||
name: [ubuntu-gcc, ubuntu-clang, macos-clang, windows-msvc]
|
name: [ubuntu-gcc, macos-clang, windows-msvc]
|
||||||
buildtype: [Debug, Release]
|
buildtype: [Debug, Release]
|
||||||
luajit: [on, off]
|
luajit: [on, off]
|
||||||
include:
|
include:
|
||||||
@ -38,8 +38,8 @@ jobs:
|
|||||||
cc: cl.exe
|
cc: cl.exe
|
||||||
triplet: x64-windows
|
triplet: x64-windows
|
||||||
packages: >
|
packages: >
|
||||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
boost-iostreams boost-asio boost-system boost-variant boost-lockfree boost-filesystem boost-uuid
|
||||||
boost-filesystem boost-uuid physfs openal-soft libogg lua luajit libvorbis zlib opengl
|
glew luajit libogg libvorbis openal-soft opengl openssl physfs zlib
|
||||||
- name: ubuntu-gcc
|
- name: ubuntu-gcc
|
||||||
os: ubuntu
|
os: ubuntu
|
||||||
cxx: g++
|
cxx: g++
|
||||||
@ -48,14 +48,6 @@ jobs:
|
|||||||
packages: >
|
packages: >
|
||||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
||||||
boost-filesystem boost-uuid physfs openal-soft libogg libvorbis zlib opengl
|
boost-filesystem boost-uuid physfs openal-soft libogg libvorbis zlib opengl
|
||||||
- name: ubuntu-clang
|
|
||||||
os: ubuntu
|
|
||||||
cxx: clang++
|
|
||||||
cc: clang
|
|
||||||
triplet: x64-linux
|
|
||||||
packages: >
|
|
||||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
|
||||||
boost-filesystem boost-uuid physfs openal-soft libogg libvorbis zlib opengl
|
|
||||||
- name: macos-clang
|
- name: macos-clang
|
||||||
os: macos
|
os: macos
|
||||||
cxx: clang++
|
cxx: clang++
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 3.1)
|
||||||
project(otclient)
|
project(otclient)
|
||||||
|
|
||||||
set(VERSION "1.0.0")
|
set(VERSION "1.0.0")
|
||||||
@ -28,8 +28,8 @@ if(WIN32)
|
|||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o
|
||||||
COMMAND ${CMAKE_RC_COMPILER}
|
COMMAND ${CMAKE_RC_COMPILER}
|
||||||
-I${CMAKE_CURRENT_SOURCE_DIR}/src
|
-I${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
-i${CMAKE_CURRENT_SOURCE_DIR}/src/otcicon.rc
|
-fo${CMAKE_CURRENT_BINARY_DIR}/otcicon.o
|
||||||
-o ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o)
|
${CMAKE_CURRENT_SOURCE_DIR}/src/otcicon.rc)
|
||||||
set(executable_SOURCES ${executable_SOURCES} otcicon.o)
|
set(executable_SOURCES ${executable_SOURCES} otcicon.o)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -37,6 +37,10 @@ add_definitions(-D"VERSION=\\"${VERSION}\\"")
|
|||||||
|
|
||||||
# add client executable
|
# add client executable
|
||||||
add_executable(${PROJECT_NAME} ${framework_SOURCES} ${client_SOURCES} ${executable_SOURCES})
|
add_executable(${PROJECT_NAME} ${framework_SOURCES} ${client_SOURCES} ${executable_SOURCES})
|
||||||
|
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} ${framework_LIBRARIES})
|
target_link_libraries(${PROJECT_NAME} ${framework_LIBRARIES})
|
||||||
|
|
||||||
if(USE_PCH)
|
if(USE_PCH)
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
# CMAKE_CURRENT_LIST_DIR cmake 2.6 compatibility
|
|
||||||
if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6)
|
|
||||||
get_filename_component(CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
|
||||||
endif(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6)
|
|
||||||
|
|
||||||
# client options
|
# client options
|
||||||
add_definitions(-DCLIENT)
|
add_definitions(-DCLIENT)
|
||||||
option(BOT_PROTECTION "Enable bot protection" ON)
|
option(BOT_PROTECTION "Enable bot protection" ON)
|
||||||
|
@ -5,11 +5,6 @@
|
|||||||
# FRAMEWORK_XML
|
# FRAMEWORK_XML
|
||||||
# FRAMEWORK_SQL
|
# FRAMEWORK_SQL
|
||||||
|
|
||||||
# CMAKE_CURRENT_LIST_DIR cmake 2.6 compatibility
|
|
||||||
if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6)
|
|
||||||
get_filename_component(CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
|
||||||
endif(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6)
|
|
||||||
|
|
||||||
# add framework cmake modules
|
# add framework cmake modules
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake;${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake;${CMAKE_MODULE_PATH}")
|
||||||
|
|
||||||
@ -156,18 +151,20 @@ if(NOT CMAKE_BUILD_TYPE)
|
|||||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(FindCXX11)
|
set(COMPILER_CXX_EXTRA_FLAGS "-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-unused-result -pipe")
|
||||||
|
|
||||||
# gcc compile flags
|
|
||||||
set(WARNS_FLAGS "-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-unused-result")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNS_FLAGS} ${ARCH_FLAGS} ${CPP2011_FLAGS} -pipe")
|
|
||||||
set(CMAKE_CXX_FLAGS_COMPILESPEED "-O0")
|
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O1 -g -fno-omit-frame-pointer")
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O1 -g -fno-omit-frame-pointer")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
||||||
set(CMAKE_CXX_FLAGS_PERFORMANCE "-Ofast -march=native")
|
if (WIN32 AND MSVC)
|
||||||
|
set(COMPILER_CXX_EXTRA_FLAGS "/bigobj")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "/Od /DEBUG:FULL")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O12 /DEBUG:FASTLINK")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "/Ot")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(USE_LTO)
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_CXX_EXTRA_FLAGS} ${ARCH_FLAGS} ${CPP2011_FLAGS}")
|
||||||
|
|
||||||
|
if(USE_LTO AND NOT MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwhole-program -flto")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwhole-program -flto")
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,-O1,--gc-sections,--sort-common,--relax")
|
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,-O1,--gc-sections,--sort-common,--relax")
|
||||||
@ -274,7 +271,10 @@ if(USE_LIBCPP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
if(NOT MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(framework_DEFINITIONS ${framework_DEFINITIONS} -D_WIN32_WINNT=0x0501 -DWIN32)
|
set(framework_DEFINITIONS ${framework_DEFINITIONS} -D_WIN32_WINNT=0x0501 -DWIN32)
|
||||||
#set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,--large-address-aware") # strip all debug information
|
#set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,--large-address-aware") # strip all debug information
|
||||||
set(SYSTEM_LIBRARIES "")
|
set(SYSTEM_LIBRARIES "")
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
if(__FIND_CXX11_CMAKE__)
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
set(__FIND_CXX11_CMAKE__ TRUE)
|
|
||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
|
||||||
enable_language(CXX)
|
|
||||||
|
|
||||||
check_cxx_compiler_flag("-std=c++11" COMPILER_KNOWS_CXX11)
|
|
||||||
if(COMPILER_KNOWS_CXX11)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
||||||
|
|
||||||
# Tested on Mac OS X 10.8.2 with XCode 4.6 Command Line Tools
|
|
||||||
# Clang requires this to find the correct c++11 headers
|
|
||||||
check_cxx_compiler_flag("-stdlib=libc++" COMPILER_KNOWS_STDLIB)
|
|
||||||
if(APPLE AND COMPILER_KNOWS_STDLIB)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
check_cxx_compiler_flag("-std=c++0x" COMPILER_KNOWS_CXX0X)
|
|
||||||
if(COMPILER_KNOWS_CXX0X)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Your C++ compiler does not support C++11.")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@ -4,10 +4,10 @@
|
|||||||
# LUA_LIBRARY - the lua library
|
# LUA_LIBRARY - the lua library
|
||||||
# LUA_LIBRARIES - the lua library and it's dependencies
|
# LUA_LIBRARIES - the lua library and it's dependencies
|
||||||
|
|
||||||
FIND_PATH(LUA_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES lua51 lua5.1 lua)
|
FIND_PATH(LUA_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES lua51 lua5-1 lua5.1 lua)
|
||||||
FIND_LIBRARY(LUA_LIBRARY NAMES)
|
FIND_LIBRARY(LUA_LIBRARY NAMES)
|
||||||
SET(_LUA_STATIC_LIBS liblua51.a liblua5.1.a liblua-5.1.a liblua.a )
|
SET(_LUA_STATIC_LIBS lua51.a lua5.1.a lua-5.1.a lua.a)
|
||||||
SET(_LUA_SHARED_LIBS liblua51.dll.a liblua5.1.dll.a liblua-5.1.dll.a liblua.dll.a lua51.dll lua5.1 lua-5.1 lua)
|
SET(_LUA_SHARED_LIBS lua51 lua5.1 lua-5.1 lua)
|
||||||
IF(USE_STATIC_LIBS)
|
IF(USE_STATIC_LIBS)
|
||||||
FIND_LIBRARY(LUA_LIBRARY NAMES ${_LUA_STATIC_LIBS} ${_LUA_SHARED_LIBS})
|
FIND_LIBRARY(LUA_LIBRARY NAMES ${_LUA_STATIC_LIBS} ${_LUA_SHARED_LIBS})
|
||||||
ELSE()
|
ELSE()
|
||||||
|
@ -2,11 +2,10 @@
|
|||||||
# LUAJIT_FOUND - system has lua
|
# LUAJIT_FOUND - system has lua
|
||||||
# LUAJIT_INCLUDE_DIR - the lua include directory
|
# LUAJIT_INCLUDE_DIR - the lua include directory
|
||||||
# LUAJIT_LIBRARY - the lua library
|
# LUAJIT_LIBRARY - the lua library
|
||||||
# LUAJIT_LIBRARIES - the lua library and it's dependencies
|
|
||||||
|
|
||||||
FIND_PATH(LUAJIT_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES luajit-2.0 luajit-2.1)
|
FIND_PATH(LUAJIT_INCLUDE_DIR NAMES luajit.h PATH_SUFFIXES luajit luajit-2.0 luajit-2.1)
|
||||||
SET(_LUAJIT_STATIC_LIBS libluajit51.a libluajit5.1.a libluajit-5.1.a libluajit.a)
|
SET(_LUAJIT_STATIC_LIBS luajit-5.1.a lua51.a)
|
||||||
SET(_LUAJIT_SHARED_LIBS libluajit51.dll.a libluajit5.1.dll.a libluajit-5.1.dll.a libluajit.dll.a luajit51 luajit5.1 luajit-5.1 luajit)
|
SET(_LUAJIT_SHARED_LIBS luajit-5.1 lua51)
|
||||||
IF(USE_STATIC_LIBS)
|
IF(USE_STATIC_LIBS)
|
||||||
FIND_LIBRARY(LUAJIT_LIBRARY NAMES ${_LUAJIT_STATIC_LIBS} ${_LUAJIT_SHARED_LIBS})
|
FIND_LIBRARY(LUAJIT_LIBRARY NAMES ${_LUAJIT_STATIC_LIBS} ${_LUAJIT_SHARED_LIBS})
|
||||||
ELSE()
|
ELSE()
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
|
# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
|
||||||
# OPENSSL_LIBRARY - the OpenSSL library
|
# OPENSSL_LIBRARY - the OpenSSL library
|
||||||
|
|
||||||
FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH_SUFFIXES openssl-1.0)
|
FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH_SUFFIXES include openssl-1.0)
|
||||||
SET(_OPENSSL_STATIC_LIBS libssl.a)
|
SET(_OPENSSL_STATIC_LIBS libssl.a ssl.a)
|
||||||
SET(_OPENSSL_SHARED_LIBS libssl.dll.a ssl)
|
SET(_OPENSSL_SHARED_LIBS libssl ssl)
|
||||||
SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a)
|
SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a crypto.a)
|
||||||
SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto.dll.a crypto)
|
SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto crypto)
|
||||||
IF(USE_STATIC_LIBS)
|
IF(USE_STATIC_LIBS)
|
||||||
FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_STATIC_LIBS} ${_OPENSSL_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
|
FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_STATIC_LIBS} ${_OPENSSL_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
|
||||||
FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_STATIC_LIBS} ${_OPENSSL_CRYPTO_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
|
FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_STATIC_LIBS} ${_OPENSSL_CRYPTO_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user