mirror of
https://github.com/edubart/otclient.git
synced 2025-04-29 09:19:19 +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
|
||||
max-parallel: 8
|
||||
matrix:
|
||||
name: [ubuntu-gcc, ubuntu-clang, macos-clang, windows-msvc]
|
||||
name: [ubuntu-gcc, macos-clang, windows-msvc]
|
||||
buildtype: [Debug, Release]
|
||||
luajit: [on, off]
|
||||
include:
|
||||
@ -38,8 +38,8 @@ jobs:
|
||||
cc: cl.exe
|
||||
triplet: x64-windows
|
||||
packages: >
|
||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
||||
boost-filesystem boost-uuid physfs openal-soft libogg lua luajit libvorbis zlib opengl
|
||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree boost-filesystem boost-uuid
|
||||
glew luajit libogg libvorbis openal-soft opengl openssl physfs zlib
|
||||
- name: ubuntu-gcc
|
||||
os: ubuntu
|
||||
cxx: g++
|
||||
@ -48,14 +48,6 @@ jobs:
|
||||
packages: >
|
||||
boost-iostreams boost-asio boost-system boost-variant boost-lockfree glew
|
||||
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
|
||||
os: macos
|
||||
cxx: clang++
|
||||
|
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(otclient)
|
||||
|
||||
set(VERSION "1.0.0")
|
||||
@ -28,8 +28,8 @@ if(WIN32)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o
|
||||
COMMAND ${CMAKE_RC_COMPILER}
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
-i${CMAKE_CURRENT_SOURCE_DIR}/src/otcicon.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o)
|
||||
-fo${CMAKE_CURRENT_BINARY_DIR}/otcicon.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/otcicon.rc)
|
||||
set(executable_SOURCES ${executable_SOURCES} otcicon.o)
|
||||
endif()
|
||||
|
||||
@ -37,6 +37,10 @@ add_definitions(-D"VERSION=\\"${VERSION}\\"")
|
||||
|
||||
# add client executable
|
||||
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})
|
||||
|
||||
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
|
||||
add_definitions(-DCLIENT)
|
||||
option(BOT_PROTECTION "Enable bot protection" ON)
|
||||
|
@ -5,11 +5,6 @@
|
||||
# FRAMEWORK_XML
|
||||
# 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
|
||||
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")
|
||||
endif()
|
||||
|
||||
include(FindCXX11)
|
||||
set(COMPILER_CXX_EXTRA_FLAGS "-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-unused-result -pipe")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O1 -g -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
||||
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()
|
||||
|
||||
# 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_RELWITHDEBINFO "-O1 -g -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
||||
set(CMAKE_CXX_FLAGS_PERFORMANCE "-Ofast -march=native")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_CXX_EXTRA_FLAGS} ${ARCH_FLAGS} ${CPP2011_FLAGS}")
|
||||
|
||||
if(USE_LTO)
|
||||
if(USE_LTO AND NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwhole-program -flto")
|
||||
if(WIN32)
|
||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,-O1,--gc-sections,--sort-common,--relax")
|
||||
@ -274,7 +271,10 @@ if(USE_LIBCPP)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads")
|
||||
if(NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads")
|
||||
endif()
|
||||
|
||||
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(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()
|
@ -13,4 +13,4 @@ ELSE()
|
||||
ENDIF()
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_LIBRARY GMP_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(GMP_LIBRARY GMP_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(GMP_LIBRARY GMP_INCLUDE_DIR)
|
||||
|
@ -4,10 +4,10 @@
|
||||
# LUA_LIBRARY - the lua library
|
||||
# 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)
|
||||
SET(_LUA_STATIC_LIBS liblua51.a liblua5.1.a liblua-5.1.a liblua.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_STATIC_LIBS lua51.a lua5.1.a lua-5.1.a lua.a)
|
||||
SET(_LUA_SHARED_LIBS lua51 lua5.1 lua-5.1 lua)
|
||||
IF(USE_STATIC_LIBS)
|
||||
FIND_LIBRARY(LUA_LIBRARY NAMES ${_LUA_STATIC_LIBS} ${_LUA_SHARED_LIBS})
|
||||
ELSE()
|
||||
@ -15,4 +15,4 @@ ELSE()
|
||||
ENDIF()
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua DEFAULT_MSG LUA_LIBRARY LUA_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(LUA_LIBRARY LUA_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(LUA_LIBRARY LUA_INCLUDE_DIR)
|
||||
|
@ -2,11 +2,10 @@
|
||||
# LUAJIT_FOUND - system has lua
|
||||
# LUAJIT_INCLUDE_DIR - the lua include directory
|
||||
# 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)
|
||||
SET(_LUAJIT_STATIC_LIBS libluajit51.a libluajit5.1.a libluajit-5.1.a libluajit.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)
|
||||
FIND_PATH(LUAJIT_INCLUDE_DIR NAMES luajit.h PATH_SUFFIXES luajit luajit-2.0 luajit-2.1)
|
||||
SET(_LUAJIT_STATIC_LIBS luajit-5.1.a lua51.a)
|
||||
SET(_LUAJIT_SHARED_LIBS luajit-5.1 lua51)
|
||||
IF(USE_STATIC_LIBS)
|
||||
FIND_LIBRARY(LUAJIT_LIBRARY NAMES ${_LUAJIT_STATIC_LIBS} ${_LUAJIT_SHARED_LIBS})
|
||||
ELSE()
|
||||
|
@ -3,11 +3,11 @@
|
||||
# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
|
||||
# OPENSSL_LIBRARY - the OpenSSL library
|
||||
|
||||
FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH_SUFFIXES openssl-1.0)
|
||||
SET(_OPENSSL_STATIC_LIBS libssl.a)
|
||||
SET(_OPENSSL_SHARED_LIBS libssl.dll.a ssl)
|
||||
SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a)
|
||||
SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto.dll.a crypto)
|
||||
FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH_SUFFIXES include openssl-1.0)
|
||||
SET(_OPENSSL_STATIC_LIBS libssl.a ssl.a)
|
||||
SET(_OPENSSL_SHARED_LIBS libssl ssl)
|
||||
SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a crypto.a)
|
||||
SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto crypto)
|
||||
IF(USE_STATIC_LIBS)
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user