cmake: Minor updates (#4204)
This commit is contained in:
parent
0ce813b826
commit
dbf6cd745e
2 changed files with 28 additions and 49 deletions
|
@ -38,10 +38,16 @@ if(WIN32)
|
||||||
message(WARNING "QTDIR variable is missing. Please set this variable to specify path to Qt (e.g. C:/Qt/5.7/msvc2015_64)")
|
message(WARNING "QTDIR variable is missing. Please set this variable to specify path to Qt (e.g. C:/Qt/5.7/msvc2015_64)")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# A project name is needed for CPack
|
# A project name is needed for CPack
|
||||||
# Version can be overriden by git tags, see cmake/getversion.cmake
|
# Version can be overriden by git tags, see cmake/getversion.cmake
|
||||||
PROJECT("Cockatrice" VERSION 2.7.6)
|
PROJECT("Cockatrice" VERSION 2.7.6)
|
||||||
|
|
||||||
|
# Set release name if not provided via env/cmake var
|
||||||
|
if(NOT DEFINED GIT_TAG_RELEASENAME)
|
||||||
|
set(GIT_TAG_RELEASENAME "Blessed Sanctuary")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Use c++11 for all targets
|
# Use c++11 for all targets
|
||||||
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ ISO Standard")
|
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ ISO Standard")
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||||
|
@ -52,7 +58,6 @@ set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||||
# Search path for cmake modules
|
# Search path for cmake modules
|
||||||
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
# Retrieve git version hash
|
|
||||||
include(getversion)
|
include(getversion)
|
||||||
|
|
||||||
# Create a header and a cpp file containing the version hash
|
# Create a header and a cpp file containing the version hash
|
||||||
|
@ -95,7 +100,7 @@ if(UNIX)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/rundir/${CMAKE_BUILD_TYPE})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Treat warnings as errors (Debug builds only)
|
# Treat warnings as errors (Debug builds only)
|
||||||
|
@ -103,9 +108,7 @@ option(WARNING_AS_ERROR "Treat warnings as errors in debug builds" ON)
|
||||||
|
|
||||||
# Define proper compilation flags
|
# Define proper compilation flags
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
# Visual Studio:
|
# Visual Studio: Maximum optimization, disable warning C4251
|
||||||
# Maximum optimization
|
|
||||||
# Disable warning C4251
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /MD /wd4251 ")
|
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /MD /wd4251 ")
|
||||||
# Generate complete debugging information
|
# Generate complete debugging information
|
||||||
#set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
|
#set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
|
||||||
|
@ -142,6 +145,12 @@ ENDIF()
|
||||||
FIND_PACKAGE(Threads REQUIRED)
|
FIND_PACKAGE(Threads REQUIRED)
|
||||||
|
|
||||||
# Find Qt5
|
# Find Qt5
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
set(_lib_suffix 64)
|
||||||
|
else()
|
||||||
|
set(_lib_suffix 32)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(DEFINED QTDIR${_lib_suffix})
|
if(DEFINED QTDIR${_lib_suffix})
|
||||||
list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_lib_suffix}}")
|
list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_lib_suffix}}")
|
||||||
elseif(DEFINED QTDIR)
|
elseif(DEFINED QTDIR)
|
||||||
|
@ -181,6 +190,8 @@ set(CMAKE_AUTOMOC TRUE)
|
||||||
FIND_PACKAGE(Protobuf REQUIRED)
|
FIND_PACKAGE(Protobuf REQUIRED)
|
||||||
IF(NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
|
IF(NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
|
||||||
MESSAGE(FATAL_ERROR "No protoc command found!")
|
MESSAGE(FATAL_ERROR "No protoc command found!")
|
||||||
|
ELSE()
|
||||||
|
MESSAGE(STATUS "Protoc version ${Protobuf_VERSION} found!")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
#Find OpenSSL
|
#Find OpenSSL
|
||||||
|
@ -272,7 +283,7 @@ if(WITH_ORACLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Compile dbconverter (default on)
|
# Compile dbconverter (default on)
|
||||||
option(WITH_DBCONVERTER "build oracle" ON)
|
option(WITH_DBCONVERTER "build dbconverter" ON)
|
||||||
if(WITH_DBCONVERTER)
|
if(WITH_DBCONVERTER)
|
||||||
add_subdirectory(dbconverter)
|
add_subdirectory(dbconverter)
|
||||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "Dbconverter;Dbconverter;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
SET(CPACK_INSTALL_CMAKE_PROJECTS "Dbconverter;Dbconverter;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||||
|
|
|
@ -38,23 +38,6 @@ function(get_commit_date)
|
||||||
set(GIT_COMMIT_DATE "${GIT_COM_DATE}" PARENT_SCOPE)
|
set(GIT_COMMIT_DATE "${GIT_COM_DATE}" PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(clean_release_name name)
|
|
||||||
# <title>Release Cockatrice 2.7.3: Dawn of Hope · Cockatrice/Cockatrice · GitHub</title>
|
|
||||||
# Remove prefix
|
|
||||||
STRING(REGEX REPLACE "<title>Release Cockatrice [0-9\.]+: " "" name "${name}")
|
|
||||||
# Remove suffix
|
|
||||||
STRING(REPLACE " · Cockatrice/Cockatrice · GitHub</title>" "" name "${name}")
|
|
||||||
# Remove all unwanted chars
|
|
||||||
STRING(REGEX REPLACE "[^A-Za-z0-9_ ]" "" name "${name}")
|
|
||||||
# Strip (trim) whitespaces
|
|
||||||
STRING(STRIP "${name}" name)
|
|
||||||
# Replace all spaces with underscores
|
|
||||||
STRING(REPLACE " " "_" name "${name}")
|
|
||||||
|
|
||||||
MESSAGE(STATUS "Friendly tag name: ${name}")
|
|
||||||
set(GIT_TAG_RELEASENAME "${name}" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(get_tag_name commit)
|
function(get_tag_name commit)
|
||||||
if(${commit} STREQUAL "unknown")
|
if(${commit} STREQUAL "unknown")
|
||||||
return()
|
return()
|
||||||
|
@ -163,22 +146,7 @@ function(get_tag_name commit)
|
||||||
set(PROJECT_VERSION_LABEL ${GIT_TAG_LABEL} PARENT_SCOPE)
|
set(PROJECT_VERSION_LABEL ${GIT_TAG_LABEL} PARENT_SCOPE)
|
||||||
elseif(${GIT_TAG_TYPE} STREQUAL "Release")
|
elseif(${GIT_TAG_TYPE} STREQUAL "Release")
|
||||||
set(PROJECT_VERSION_LABEL "" PARENT_SCOPE)
|
set(PROJECT_VERSION_LABEL "" PARENT_SCOPE)
|
||||||
|
# set release name from env var
|
||||||
# get version name from github
|
|
||||||
set(GIT_TAG_TEMP_FILE "${PROJECT_BINARY_DIR}/tag_informations.txt")
|
|
||||||
set(GIT_TAG_TEMP_URL "https://github.com/Cockatrice/Cockatrice/releases/tag/${GIT_TAG}")
|
|
||||||
message(STATUS "Fetching tag informations from ${GIT_TAG_TEMP_URL}")
|
|
||||||
file(REMOVE "${GIT_TAG_TEMP_FILE}")
|
|
||||||
file(DOWNLOAD "${GIT_TAG_TEMP_URL}" "${GIT_TAG_TEMP_FILE}" STATUS status LOG log INACTIVITY_TIMEOUT 30 TIMEOUT 300 SHOW_PROGRESS)
|
|
||||||
list(GET status 0 err)
|
|
||||||
list(GET status 1 msg)
|
|
||||||
if(err)
|
|
||||||
message(WARNING "Download failed with error ${msg}: ${log}")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
file(STRINGS "${GIT_TAG_TEMP_FILE}" GIT_TAG_RAW_RELEASENAME REGEX "<title>Release Cockatrice .*</title>" LIMIT_COUNT 1 ENCODING UTF-8)
|
|
||||||
|
|
||||||
clean_release_name("${GIT_TAG_RAW_RELEASENAME}")
|
|
||||||
set(PROJECT_VERSION_RELEASENAME "${GIT_TAG_RELEASENAME}" PARENT_SCOPE)
|
set(PROJECT_VERSION_RELEASENAME "${GIT_TAG_RELEASENAME}" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -188,9 +156,9 @@ endfunction()
|
||||||
|
|
||||||
# fallback defaults
|
# fallback defaults
|
||||||
set(GIT_COMMIT_ID "unknown")
|
set(GIT_COMMIT_ID "unknown")
|
||||||
set(GIT_COMMIT_DATE "unknown")
|
set(GIT_COMMIT_DATE "")
|
||||||
set(GIT_COMMIT_DATE_FRIENDLY "unknown")
|
set(GIT_COMMIT_DATE_FRIENDLY "")
|
||||||
set(PROJECT_VERSION_LABEL "custom(unknown)")
|
set(PROJECT_VERSION_LABEL "")
|
||||||
set(PROJECT_VERSION_RELEASENAME "")
|
set(PROJECT_VERSION_RELEASENAME "")
|
||||||
|
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
|
|
Loading…
Reference in a new issue