extend installation instructions, fix perm
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Rust / build (push) Successful in 3m8s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Rust / build (push) Successful in 3m8s
				
			This commit is contained in:
		
							parent
							
								
									77a8a242bf
								
							
						
					
					
						commit
						ed8e362574
					
				
					 2 changed files with 32 additions and 7 deletions
				
			
		
							
								
								
									
										37
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								README.md
									
										
									
									
									
								
							|  | @ -43,21 +43,46 @@ Please specify the full version including patch in your Cargo.toml until 1.0 is | |||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| Copy the header to your project and compile against. | ||||
| 1. Add this repo as a submodule: | ||||
|     ```bash | ||||
|     git submodule add https://git.berlin.ccc.de/servicepoint/servicepoint-binding-c.git | ||||
|     git commit -m "add servicepoint-binding-c submodule" | ||||
|     ``` | ||||
| 2. Add a build step for the servicepoint library. If you use make, this could look something like this: | ||||
|     ``` | ||||
|     dependencies: FORCE | ||||
|     	cargo build --manifest-path=servicepoint-binding-c/Cargo.toml --release | ||||
|     FORCE: ;  | ||||
|     ``` | ||||
| 3. Link against the library. If you are on linux and linking statically: | ||||
|     ``` | ||||
|     ${CC} main.c \ | ||||
|     	-I servicepoint-binding-c/include \ | ||||
|     	-L servicepoint-binding-c/target/release \ | ||||
|     	-Wl,-Bstatic -lservicepoint_binding_c \ | ||||
|     	-Wl,-Bdynamic -llzma \ | ||||
|     	-o out/example | ||||
|     ``` | ||||
| 
 | ||||
| You have the choice of linking statically (recommended) or dynamically. | ||||
| 
 | ||||
| - The C example shows how to link statically against the `staticlib` variant. | ||||
| - When linked dynamically, you have to provide the `cdylib` at runtime in the _same_ version, as there are no API/ABI guarantees yet. | ||||
| - When linked dynamically, you have to provide the `cdylib` at runtime in the _same_ version, as there are no API/ABI | ||||
|   guarantees yet. | ||||
| 
 | ||||
| ## Notes on differences to rust library | ||||
| 
 | ||||
| - function names are: `sp_` \<struct_name\> \<rust name\>. | ||||
| - Instances get consumed in the same way they do when writing rust code. Do not use an instance after an (implicit!) free. | ||||
| - Instances get consumed in the same way they do when writing rust code. Do not use an instance after an (implicit!) | ||||
|   free. | ||||
| - Option<T> or Result<T, E> turn into nullable return values - check for NULL! | ||||
| - There are no specifics for C++ here yet. You might get a nicer header when generating directly for C++, but it should be usable. | ||||
| - There are no specifics for C++ here yet. You might get a nicer header when generating directly for C++, but it should | ||||
|   be usable. | ||||
| - Reading and writing to instances concurrently is not safe. Only reading concurrently is safe. | ||||
| - documentation is included in the header and available [online](https://docs.rs/servicepoint_binding_c/latest/servicepoint_binding_c/) | ||||
| - documentation is included in the header and | ||||
|   available [online](https://docs.rs/servicepoint_binding_c/latest/servicepoint_binding_c/) | ||||
| 
 | ||||
| ## Everything else | ||||
| 
 | ||||
| Look at the main project [README](https://git.berlin.ccc.de/servicepoint/servicepoint/src/branch/main/README.md) for further information. | ||||
| Look at the main project [README](https://git.berlin.ccc.de/servicepoint/servicepoint/src/branch/main/README.md) for | ||||
| further information. | ||||
|  |  | |||
							
								
								
									
										0
									
								
								generate-binding.sh
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								generate-binding.sh
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vinzenz Schroeter
						Vinzenz Schroeter