mirror of
				https://github.com/TheLartians/ModernCppStarter.git
				synced 2025-10-31 02:01:33 +01:00 
			
		
		
		
	add section on removing standalone
This commit is contained in:
		
							parent
							
								
									b130f1e58c
								
							
						
					
					
						commit
						be4291f7f1
					
				
					 1 changed files with 19 additions and 14 deletions
				
			
		|  | @ -82,6 +82,10 @@ See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options | ||||||
| 
 | 
 | ||||||
| Yes, however you will need to change the library type to an `INTERFACE` library as documented in the [CMakeLists.txt](CMakeLists.txt). | Yes, however you will need to change the library type to an `INTERFACE` library as documented in the [CMakeLists.txt](CMakeLists.txt). | ||||||
| 
 | 
 | ||||||
|  | > I don't need a standalone target. How can I get rid of it? | ||||||
|  | 
 | ||||||
|  | Simply remove the standalone directory and github workflow file. | ||||||
|  | 
 | ||||||
| > I see you are using `GLOB` to add source files in CMakeLists.txt. Isn't that evil? | > I see you are using `GLOB` to add source files in CMakeLists.txt. Isn't that evil? | ||||||
| 
 | 
 | ||||||
| Glob is considered bad because any changes to the source file structure [might not be automatically caught](https://cmake.org/cmake/help/latest/command/file.html#filesystem) by CMake's builders and you will need to manually invoke CMake on changes. | Glob is considered bad because any changes to the source file structure [might not be automatically caught](https://cmake.org/cmake/help/latest/command/file.html#filesystem) by CMake's builders and you will need to manually invoke CMake on changes. | ||||||
|  | @ -91,7 +95,8 @@ See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options | ||||||
| 
 | 
 | ||||||
| If possible, avoid adding conditional includes to the CMakeLists (even though it is a common sight in the C++ world), as it makes the build system convoluted and hard to reason about. | If possible, avoid adding conditional includes to the CMakeLists (even though it is a common sight in the C++ world), as it makes the build system convoluted and hard to reason about. | ||||||
| Instead, create a new directory with a CMakeLists that adds the main project as a dependency (e.g. just copy the [standalone](standalone) directory). | Instead, create a new directory with a CMakeLists that adds the main project as a dependency (e.g. just copy the [standalone](standalone) directory). | ||||||
|   Depending on the complexity of the project it might make sense move this to a separate repository and list a specific version or commit of the main project. | Depending on the complexity of the project it might make sense move the components into separate repositories and use CPM.cmake to add them as dependencies. | ||||||
|  | This has the advantage that individual libraries and components can be improved and updated independently. | ||||||
| 
 | 
 | ||||||
| > You recommend to add external dependencies using CPM.cmake. Will this force users of my library to use CPM as well? | > You recommend to add external dependencies using CPM.cmake. Will this force users of my library to use CPM as well? | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue