Merge remote-tracking branch 'origin/develop' into feature_cmake_style
Conflicts: CMakeLists.txt
This commit is contained in:
commit
3cd2b898e5
@ -33,19 +33,11 @@ endif()
|
|||||||
set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars)
|
set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars)
|
||||||
|
|
||||||
######## Set compiler flags ########
|
######## Set compiler flags ########
|
||||||
IF(APPLE)
|
include(UseCXX11)
|
||||||
message(STATUS "Using APPLE CMAKE_CXX_FLAGS")
|
include(Coverage)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||||
ELSEIF(UNIX)
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
|
||||||
# assume GCC, add C++0x/C++11 stuff
|
|
||||||
MESSAGE(STATUS "Using UNIX CMAKE_CXX_FLAGS")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
|
||||||
ELSEIF(MINGW)
|
|
||||||
MESSAGE(STATUS "Using MINGW CMAKE_CXX_FLAGS")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
|
|
||||||
################################ 3rd Party Libs ################################
|
################################ 3rd Party Libs ################################
|
||||||
|
|
||||||
# Find the required Qt parts
|
# Find the required Qt parts
|
||||||
@ -65,15 +57,7 @@ include_directories(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# The Qt5 cmake files don't provide its install paths, so ask qmake.
|
# The Qt5 cmake files don't provide its install paths, so ask qmake.
|
||||||
get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
|
include(QMakeQuery)
|
||||||
function(QUERY_QMAKE VAR RESULT)
|
|
||||||
exec_program(${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output )
|
|
||||||
if(NOT return_code)
|
|
||||||
file(TO_CMAKE_PATH "${output}" output)
|
|
||||||
set(${RESULT} ${output} PARENT_SCOPE)
|
|
||||||
endif(NOT return_code)
|
|
||||||
endfunction(QUERY_QMAKE)
|
|
||||||
|
|
||||||
query_qmake(QT_INSTALL_PLUGINS QT_PLUGINS_DIR)
|
query_qmake(QT_INSTALL_PLUGINS QT_PLUGINS_DIR)
|
||||||
query_qmake(QT_INSTALL_IMPORTS QT_IMPORTS_DIR)
|
query_qmake(QT_INSTALL_IMPORTS QT_IMPORTS_DIR)
|
||||||
query_qmake(QT_INSTALL_LIBS QT_LIBS_DIR)
|
query_qmake(QT_INSTALL_LIBS QT_LIBS_DIR)
|
||||||
@ -183,29 +167,9 @@ endif()
|
|||||||
add_custom_target(version echo "Version: ${MultiMC_VERSION_STRING}")
|
add_custom_target(version echo "Version: ${MultiMC_VERSION_STRING}")
|
||||||
|
|
||||||
#### Check the current Git commit
|
#### Check the current Git commit
|
||||||
execute_process(COMMAND git rev-parse HEAD
|
include(GitFunctions)
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
git_run(COMMAND rev-parse HEAD DEFAULT "Unknown" OUTPUT_VAR MultiMC_GIT_COMMIT)
|
||||||
RESULT_VARIABLE GIT_COMMIT_CHECK_RESULTVAR
|
message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}")
|
||||||
OUTPUT_VARIABLE GIT_COMMIT_CHECK_OUTVAR
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(GIT_COMMIT_CHECK_RESULTVAR EQUAL 0)
|
|
||||||
SET(MultiMC_GIT_COMMIT "${GIT_COMMIT_CHECK_OUTVAR}")
|
|
||||||
MESSAGE(STATUS "Git commit: ${MultiMC_GIT_COMMIT}")
|
|
||||||
ELSE()
|
|
||||||
SET(MultiMC_GIT_COMMIT "Unknown")
|
|
||||||
MESSAGE(STATUS "Failed to check Git commit. ${GIT_COMMIT_CHECK_RESULTVAR}")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
OPTION(MultiMC_CODE_COVERAGE "Compiles for code coverage" OFF)
|
|
||||||
IF(MultiMC_CODE_COVERAGE)
|
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O0 --coverage")
|
|
||||||
ENDIF(MultiMC_CODE_COVERAGE)
|
|
||||||
|
|
||||||
######## Configure header ########
|
######## Configure header ########
|
||||||
configure_file("${PROJECT_SOURCE_DIR}/BuildConfig.cpp.in" "${PROJECT_BINARY_DIR}/BuildConfig.cpp")
|
configure_file("${PROJECT_SOURCE_DIR}/BuildConfig.cpp.in" "${PROJECT_BINARY_DIR}/BuildConfig.cpp")
|
||||||
@ -790,6 +754,8 @@ endif()
|
|||||||
|
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|
||||||
|
include(Coverity)
|
||||||
|
|
||||||
include_directories(${PROJECT_BINARY_DIR}/include)
|
include_directories(${PROJECT_BINARY_DIR}/include)
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
|
13
cmake/Coverage.cmake
Normal file
13
cmake/Coverage.cmake
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
if(__COVERAGE_CMAKE__)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__COVERAGE_CMAKE__ TRUE)
|
||||||
|
|
||||||
|
if(MultiMC_CODE_COVERAGE)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 --coverage")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 --coverage")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O0 --coverage")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O0 --coverage")
|
||||||
|
set(CMAKE_BUILD_TYPE "Debug")
|
||||||
|
endif(MultiMC_CODE_COVERAGE)
|
35
cmake/Coverity.cmake
Normal file
35
cmake/Coverity.cmake
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
if(__COVERITY_CMAKE__)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__COVERITY_CMAKE__ TRUE)
|
||||||
|
|
||||||
|
include(GitFunctions)
|
||||||
|
|
||||||
|
git_run(COMMAND config --get user.email DEFAULT "" OUTPUT_VAR GIT_EMAIL)
|
||||||
|
git_run(COMMAND describe DEFAULT "" OUTPUT_VAR GIT_VERSION)
|
||||||
|
|
||||||
|
set(MultiMC_COVERITY_TOKEN "" CACHE STRING "Coverity access token")
|
||||||
|
set(MultiMC_COVERITY_EMAIL "${GIT_EMAIL}" CACHE STRING "Coverity email")
|
||||||
|
|
||||||
|
set(MultiMC_COVERITY_TOOLS_DIR "${CMAKE_BINARY_DIR}/coverity_tools" CACHE PATH "Path to the coverity tools")
|
||||||
|
|
||||||
|
find_program(CURL_EXECUTABLE NAMES curl PATHS /usr/bin)
|
||||||
|
|
||||||
|
if(NOT CURL_EXECUTABLE STREQUAL "" AND NOT MultiMC_COVERITY_TOKEN STREQUAL "" AND NOT MultiMC_COVERITY_EMAIL STREQUAL "")
|
||||||
|
add_custom_target(coverity_configure
|
||||||
|
COMMAND ${MultiMC_COVERITY_TOOLS_DIR}/bin/cov-configure --comptype gcc --compiler ${CMAKE_C_COMPILER}
|
||||||
|
)
|
||||||
|
add_custom_target(coverity_create_tarball
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E echo "Cleaning..." && ${CMAKE_MAKE_PROGRAM} clean
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E echo "Building..." && ${MultiMC_COVERITY_TOOLS_DIR}/bin/cov-build --dir cov-int ${CMAKE_MAKE_PROGRAM} -j3
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E echo "Creating tarball..." && ${CMAKE_COMMAND} -E tar cfz multimc_coverity.tgz cov-int/
|
||||||
|
COMMENT "Creating coverity build..."
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
add_custom_target(coverity_upload
|
||||||
|
COMMAND ${CURL_EXECUTABLE} --form project=02JanDal/MultiMC5 --form token=${MultiMC_COVERITY_TOKEN} --form email=${MultiMC_COVERITY_EMAIL} --form file=@multimc_coverity.tgz --form version=${MultiMC_GIT_COMMIT} --form description=${GIT_VERSION} http://scan5.coverity.com/cgi-bin/upload.py
|
||||||
|
DEPENDS coverity_create_tarball
|
||||||
|
COMMENT "Uploading to coverity..."
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
)
|
||||||
|
endif()
|
37
cmake/GitFunctions.cmake
Normal file
37
cmake/GitFunctions.cmake
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
if(__GITFUNCTIONS_CMAKE__)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__GITFUNCTIONS_CMAKE__ TRUE)
|
||||||
|
|
||||||
|
find_package(Git QUIET)
|
||||||
|
|
||||||
|
include(CMakeParseArguments)
|
||||||
|
|
||||||
|
if(GIT_FOUND)
|
||||||
|
function(git_run)
|
||||||
|
set(oneValueArgs OUTPUT_VAR DEFAULT)
|
||||||
|
set(multiValueArgs COMMAND)
|
||||||
|
cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} ${GIT_RUN_COMMAND}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
RESULT_VARIABLE GIT_RESULTVAR
|
||||||
|
OUTPUT_VARIABLE GIT_OUTVAR
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
if(GIT_RESULTVAR EQUAL 0)
|
||||||
|
set(${GIT_RUN_OUTPUT_VAR} "${GIT_OUTVAR}" PARENT_SCOPE)
|
||||||
|
else()
|
||||||
|
set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
|
||||||
|
message(STATUS "Failed to run Git: ${GIT_OUTVAR}")
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
else()
|
||||||
|
function(git_run)
|
||||||
|
set(oneValueArgs OUTPUT_VAR DEFAULT)
|
||||||
|
set(multiValueArgs COMMAND)
|
||||||
|
cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
|
||||||
|
endfunction(git_run)
|
||||||
|
endif()
|
14
cmake/QMakeQuery.cmake
Normal file
14
cmake/QMakeQuery.cmake
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
if(__QMAKEQUERY_CMAKE__)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__QMAKEQUERY_CMAKE__ TRUE)
|
||||||
|
|
||||||
|
get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
|
||||||
|
|
||||||
|
function(QUERY_QMAKE VAR RESULT)
|
||||||
|
exec_program(${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output )
|
||||||
|
if(NOT return_code)
|
||||||
|
file(TO_CMAKE_PATH "${output}" output)
|
||||||
|
set(${RESULT} ${output} PARENT_SCOPE)
|
||||||
|
endif(NOT return_code)
|
||||||
|
endfunction(QUERY_QMAKE)
|
13
cmake/UseCXX11.cmake
Normal file
13
cmake/UseCXX11.cmake
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
if(__USECXX11_CMAKE__)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__USECXX11_CMAKE__ TRUE)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
|
elseif(UNIX)
|
||||||
|
# assume GCC, add C++0x/C++11 stuff
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
|
elseif(MINGW)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
|
||||||
|
endif()
|
@ -6,6 +6,8 @@ find_package(Qt5Core REQUIRED)
|
|||||||
# Include Qt headers.
|
# Include Qt headers.
|
||||||
include_directories(${Qt5Base_INCLUDE_DIRS})
|
include_directories(${Qt5Base_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
include(UseCXX11)
|
||||||
|
include(Coverage)
|
||||||
|
|
||||||
set(LIBSETTINGS_SOURCES
|
set(LIBSETTINGS_SOURCES
|
||||||
libsettings_config.h
|
libsettings_config.h
|
||||||
@ -34,14 +36,6 @@ add_definitions(-DLIBSETTINGS_LIBRARY)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
IF(MultiMC_CODE_COVERAGE)
|
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O0 --coverage")
|
|
||||||
ENDIF(MultiMC_CODE_COVERAGE)
|
|
||||||
|
|
||||||
add_library(libSettings STATIC ${LIBSETTINGS_SOURCES})
|
add_library(libSettings STATIC ${LIBSETTINGS_SOURCES})
|
||||||
qt5_use_modules(libSettings Core)
|
qt5_use_modules(libSettings Core)
|
||||||
target_link_libraries(libSettings)
|
target_link_libraries(libSettings)
|
||||||
|
@ -1,19 +1,7 @@
|
|||||||
project(libUtil)
|
project(libUtil)
|
||||||
|
|
||||||
######## Set compiler flags ########
|
include(UseCXX11)
|
||||||
IF(APPLE)
|
include(Coverage)
|
||||||
# assume clang 4.1.0+, add C++0x/C++11 stuff
|
|
||||||
message(STATUS "Using APPLE CMAKE_CXX_FLAGS")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
||||||
ELSEIF(UNIX)
|
|
||||||
# assume GCC, add C++0x/C++11 stuff
|
|
||||||
MESSAGE(STATUS "Using UNIX CMAKE_CXX_FLAGS")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
||||||
ELSEIF(MINGW)
|
|
||||||
MESSAGE(STATUS "Using MINGW CMAKE_CXX_FLAGS")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
|
|
||||||
# Find Qt
|
# Find Qt
|
||||||
find_package(Qt5Core REQUIRED)
|
find_package(Qt5Core REQUIRED)
|
||||||
@ -49,14 +37,6 @@ add_definitions(-DLIBUTIL_LIBRARY)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
IF(MultiMC_CODE_COVERAGE)
|
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O0 --coverage")
|
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O0 --coverage")
|
|
||||||
ENDIF(MultiMC_CODE_COVERAGE)
|
|
||||||
|
|
||||||
add_library(libUtil STATIC ${LIBUTIL_SOURCES})
|
add_library(libUtil STATIC ${LIBUTIL_SOURCES})
|
||||||
qt5_use_modules(libUtil Core)
|
qt5_use_modules(libUtil Core)
|
||||||
target_link_libraries(libUtil)
|
target_link_libraries(libUtil)
|
||||||
|
Loading…
Reference in New Issue
Block a user