Merge remote-tracking branch 'origin/develop' into feature_cmake_style
Conflicts: CMakeLists.txt
This commit is contained in:
		| @@ -33,19 +33,11 @@ endif() | ||||
| set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars) | ||||
|  | ||||
| ######## Set compiler flags ######## | ||||
| IF(APPLE) | ||||
|       message(STATUS "Using APPLE CMAKE_CXX_FLAGS") | ||||
|       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") | ||||
| 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++11 -Wall") | ||||
| ELSEIF(MINGW) | ||||
|       MESSAGE(STATUS "Using MINGW CMAKE_CXX_FLAGS") | ||||
|       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall") | ||||
| ENDIF() | ||||
| include(UseCXX11) | ||||
| include(Coverage) | ||||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") | ||||
| set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type") | ||||
|  | ||||
| SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type") | ||||
| ################################ 3rd Party Libs ################################ | ||||
|  | ||||
| # Find the required Qt parts | ||||
| @@ -65,15 +57,7 @@ include_directories( | ||||
| ) | ||||
|  | ||||
| # The Qt5 cmake files don't provide its install paths, so ask qmake. | ||||
| 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) | ||||
|  | ||||
| include(QMakeQuery) | ||||
| query_qmake(QT_INSTALL_PLUGINS QT_PLUGINS_DIR) | ||||
| query_qmake(QT_INSTALL_IMPORTS QT_IMPORTS_DIR) | ||||
| query_qmake(QT_INSTALL_LIBS QT_LIBS_DIR) | ||||
| @@ -183,29 +167,9 @@ endif() | ||||
| add_custom_target(version echo "Version: ${MultiMC_VERSION_STRING}") | ||||
|  | ||||
| #### Check the current Git commit | ||||
| execute_process(COMMAND git rev-parse HEAD | ||||
| 	  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||||
| 	  RESULT_VARIABLE GIT_COMMIT_CHECK_RESULTVAR | ||||
| 	  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) | ||||
| include(GitFunctions) | ||||
| git_run(COMMAND rev-parse HEAD DEFAULT "Unknown" OUTPUT_VAR MultiMC_GIT_COMMIT) | ||||
| message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}") | ||||
|  | ||||
| ######## Configure header ######## | ||||
| configure_file("${PROJECT_SOURCE_DIR}/BuildConfig.cpp.in" "${PROJECT_BINARY_DIR}/BuildConfig.cpp") | ||||
| @@ -790,6 +754,8 @@ endif() | ||||
|  | ||||
| include(CPack) | ||||
|  | ||||
| include(Coverity) | ||||
|  | ||||
| include_directories(${PROJECT_BINARY_DIR}/include) | ||||
|  | ||||
| # 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_directories(${Qt5Base_INCLUDE_DIRS}) | ||||
|  | ||||
| include(UseCXX11) | ||||
| include(Coverage) | ||||
|  | ||||
| set(LIBSETTINGS_SOURCES | ||||
|  libsettings_config.h | ||||
| @@ -34,14 +36,6 @@ add_definitions(-DLIBSETTINGS_LIBRARY) | ||||
|  | ||||
| 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}) | ||||
| qt5_use_modules(libSettings Core) | ||||
| target_link_libraries(libSettings) | ||||
|   | ||||
| @@ -1,19 +1,7 @@ | ||||
| project(libUtil) | ||||
|  | ||||
| ######## Set compiler flags ######## | ||||
| IF(APPLE) | ||||
| 	# 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() | ||||
|  | ||||
| include(UseCXX11) | ||||
| include(Coverage) | ||||
|  | ||||
| # Find Qt | ||||
| find_package(Qt5Core REQUIRED) | ||||
| @@ -49,14 +37,6 @@ add_definitions(-DLIBUTIL_LIBRARY) | ||||
|  | ||||
| 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}) | ||||
| qt5_use_modules(libUtil Core) | ||||
| target_link_libraries(libUtil) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user