build types, untested recursive_remove function in fs
This commit is contained in:
		@@ -3,6 +3,16 @@ project(cellar CXX)
 | 
				
			|||||||
set(CMAKE_CXX_STANDARD 11)
 | 
					set(CMAKE_CXX_STANDARD 11)
 | 
				
			||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
					set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(CMAKE_CXX_FLAGS -pipe)
 | 
				
			||||||
 | 
					set(CMAKE_CXX_FLAGS_DEBUG -O0 -g)
 | 
				
			||||||
 | 
					set(CMAKE_CXX_FLAGS_RELEASE -O2)
 | 
				
			||||||
 | 
					set(CMAKE_CXX_FLAGS_RELWITHDBGINFO ${CMAKE_CXX_FLAGS_RELEASE} -g)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(NOT CMAKE_BUILD_TYPE)
 | 
				
			||||||
 | 
					        message(STATUS "Assuming this is a release build. -DCMAKE_BUILD_TYPE=Debug otherwise.")
 | 
				
			||||||
 | 
					        set(CMAKE_BUILD_TYPE Release FORCE)
 | 
				
			||||||
 | 
					endif(NOT CMAKE_BUILD_TYPE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# local cmake modules
 | 
					# local cmake modules
 | 
				
			||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/Modules)
 | 
					set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/Modules)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								cogrc
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								cogrc
									
									
									
									
									
								
							@@ -1,3 +1,3 @@
 | 
				
			|||||||
[version]
 | 
					[version]
 | 
				
			||||||
release=no
 | 
					release=no
 | 
				
			||||||
release_version=00
 | 
					release_version=0.1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ namespace cellar {
 | 
				
			|||||||
	namespace fs {
 | 
						namespace fs {
 | 
				
			||||||
		extern vector<string> listdir(string path);
 | 
							extern vector<string> listdir(string path);
 | 
				
			||||||
        extern bool recursive_copy(string, string);
 | 
					        extern bool recursive_copy(string, string);
 | 
				
			||||||
 | 
					        extern bool recursive_remove(string);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								src/fs.cpp
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/fs.cpp
									
									
									
									
									
								
							@@ -46,3 +46,20 @@ bool cellar::fs::recursive_copy(string src, string dst) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool cellar::fs::recursive_remove(string target) {
 | 
				
			||||||
 | 
					    if (!filesystem::exists(target)) { return false; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (string itemrel : cellar::fs::listdir(target)) {
 | 
				
			||||||
 | 
					        string itemabs = target + "/" + itemrel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        auto itemstat = filesystem::symlink_status(itemabs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (filesystem::is_directory(itemstat)) { recursive_remove(itemabs); }
 | 
				
			||||||
 | 
					        else { filesystem::remove(itemabs); }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    filesystem::remove(target);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user