.cmake files to reduce "code" duplicate
This commit is contained in:
		| @@ -1,5 +1,10 @@ | ||||
| cmake_minimum_required(VERSION 2.8.9) | ||||
|  | ||||
| string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD) | ||||
| if(IS_IN_SOURCE_BUILD) | ||||
|     message(AUTHOR_WARNING "You are building MultiMC in-source. This is NOT recommended!") | ||||
| endif() | ||||
|  | ||||
| IF(WIN32) | ||||
|       # In Qt 5.1+ we have our own main() function, don't autolink to qtmain on Windows | ||||
|       cmake_policy(SET CMP0020 OLD) | ||||
| @@ -28,19 +33,10 @@ 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) | ||||
| 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 | ||||
| @@ -60,15 +56,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) | ||||
|   | ||||
							
								
								
									
										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) | ||||
							
								
								
									
										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) | ||||
| @@ -50,14 +38,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 Network) | ||||
| qt5_use_modules(libUtil Core) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user