mirror of
				https://github.com/TheLartians/ModernCppStarter.git
				synced 2025-10-31 02:01:33 +01:00 
			
		
		
		
	use WarningsAsErrors by default while build
This commit is contained in:
		
							parent
							
								
									f222eb3ce1
								
							
						
					
					
						commit
						46d2235289
					
				
					 6 changed files with 20 additions and 8 deletions
				
			
		|  | @ -26,7 +26,6 @@ include(cmake/options.cmake) | ||||||
| # see https://github.com/cpm-cmake/CPM.cmake for more info | # see https://github.com/cpm-cmake/CPM.cmake for more info | ||||||
| 
 | 
 | ||||||
| include(cmake/CPM.cmake) | include(cmake/CPM.cmake) | ||||||
| CPMUsePackageLock(package-lock.cmake) |  | ||||||
| 
 | 
 | ||||||
| # PackageProject.cmake will be used to make our target installable | # PackageProject.cmake will be used to make our target installable | ||||||
| CPMAddPackage("gh:TheLartians/PackageProject.cmake@1.4.1") | CPMAddPackage("gh:TheLartians/PackageProject.cmake@1.4.1") | ||||||
|  | @ -61,6 +60,11 @@ set_target_properties( | ||||||
|              CMAKE_VISIBILITY_INLINES_HIDDEN ${BUILD_SHARED_LIBS} |              CMAKE_VISIBILITY_INLINES_HIDDEN ${BUILD_SHARED_LIBS} | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | option(WarningsAsErrors "Be realy pedantic!" YES) | ||||||
|  | if(WarningsAsErrors) | ||||||
|  |   include(${CMAKE_CURRENT_LIST_DIR}/cmake/WarningsAsErrors.cmake) | ||||||
|  | endif() | ||||||
|  | 
 | ||||||
| # being a cross-platform target, we enforce standards conformance on MSVC | # being a cross-platform target, we enforce standards conformance on MSVC | ||||||
| target_compile_options(Greeter PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/permissive>) | target_compile_options(Greeter PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/permissive>) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,8 +5,7 @@ GENERATOR?=Ninja | ||||||
| 
 | 
 | ||||||
| STAGE_DIR?=$(CURDIR)/stage | STAGE_DIR?=$(CURDIR)/stage | ||||||
| BUILD_TYPE?=Debug | BUILD_TYPE?=Debug | ||||||
| CMAKE_PRESET:=-G "$(GENERATOR)" -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) | CMAKE_PRESET:=-G "$(GENERATOR)" -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_PREFIX_PATH=$(STAGE_DIR) | ||||||
| -DCMAKE_PREFIX_PATH=$(STAGE_DIR) |  | ||||||
| # Note: not needed -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | # Note: not needed -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | ||||||
| 
 | 
 | ||||||
| #XXX export CXX=clang++ | #XXX export CXX=clang++ | ||||||
|  | @ -22,7 +21,7 @@ BUILD_DIR?=../build-$(PROJECT_NAME)-$(CXX)-$(BUILD_TYPE) | ||||||
| test: | test: | ||||||
| 
 | 
 | ||||||
| clean: | clean: | ||||||
| 	rm -rf $(BUILD_DIR) build-* | 	rm -rf $(BUILD_DIR) build build-* | ||||||
| 
 | 
 | ||||||
| distclean: clean | distclean: clean | ||||||
| 	rm -rf $(STAGE_DIR) | 	rm -rf $(STAGE_DIR) | ||||||
|  | @ -30,6 +29,7 @@ distclean: clean | ||||||
| # update CPM.cmake | # update CPM.cmake | ||||||
| update: | update: | ||||||
| 	wget -q -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake | 	wget -q -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake | ||||||
|  | 	wget -q -O cmake/WarningsAsErrors.cmake https://raw.githubusercontent.com/approvals/ApprovalTests.cpp/master/CMake/WarningsAsErrors.cmake | ||||||
| 
 | 
 | ||||||
| lock: all standalone doc | lock: all standalone doc | ||||||
| 	cmake --build $(BUILD_DIR)/all --target cpm-update-package-lock | 	cmake --build $(BUILD_DIR)/all --target cpm-update-package-lock | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								cmake/WarningsAsErrors.cmake
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								cmake/WarningsAsErrors.cmake
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC") | ||||||
|  |   target_compile_options(${PROJECT_NAME} PRIVATE /W4 /WX) | ||||||
|  | elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") | ||||||
|  |   target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic -Werror -Wshadow) | ||||||
|  | 
 | ||||||
|  |   if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 10.0) | ||||||
|  |     target_compile_options(${PROJECT_NAME} PRIVATE -Wdeprecated-copy-dtor -Wnewline-eof) | ||||||
|  |   endif() | ||||||
|  | elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") | ||||||
|  |   string(REGEX REPLACE " /W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | ||||||
|  |   target_compile_options(${PROJECT_NAME} PRIVATE /W4 /WX) | ||||||
|  | endif() | ||||||
|  | @ -5,8 +5,6 @@ project(GreeterDocs) | ||||||
| # ---- Dependencies ---- | # ---- Dependencies ---- | ||||||
| 
 | 
 | ||||||
| include(../cmake/CPM.cmake) | include(../cmake/CPM.cmake) | ||||||
| CPMUsePackageLock(package-lock.cmake) |  | ||||||
| 
 |  | ||||||
| include(../cmake/options.cmake) | include(../cmake/options.cmake) | ||||||
| 
 | 
 | ||||||
| CPMAddPackage(NAME Greeter SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..) | CPMAddPackage(NAME Greeter SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..) | ||||||
|  |  | ||||||
|  | @ -9,7 +9,6 @@ include(../cmake/tools.cmake) | ||||||
| # ---- Dependencies ---- | # ---- Dependencies ---- | ||||||
| 
 | 
 | ||||||
| include(../cmake/CPM.cmake) | include(../cmake/CPM.cmake) | ||||||
| CPMUsePackageLock(package-lock.cmake) |  | ||||||
| 
 | 
 | ||||||
| option(CXXOPTS_BUILD_TESTS "Not needed!" OFF) | option(CXXOPTS_BUILD_TESTS "Not needed!" OFF) | ||||||
| CPMAddPackage("gh:jarro2783/cxxopts@2.2.0") | CPMAddPackage("gh:jarro2783/cxxopts@2.2.0") | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ include(../cmake/tools.cmake) | ||||||
| # ---- Dependencies ---- | # ---- Dependencies ---- | ||||||
| 
 | 
 | ||||||
| include(../cmake/CPM.cmake) | include(../cmake/CPM.cmake) | ||||||
| CPMUsePackageLock(package-lock.cmake) |  | ||||||
| 
 | 
 | ||||||
| CPMAddPackage("gh:onqtam/doctest#2.4.5") | CPMAddPackage("gh:onqtam/doctest#2.4.5") | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue