nix: set CMake version to 3.30.4
This commit is contained in:
		
					parent
					
						
							
								a42efe2c82
							
						
					
				
			
			
				commit
				
					
						1b49477c4e
					
				
			
		
					 6 changed files with 36 additions and 15 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| out/ | ||||
|  | @ -1,11 +1,17 @@ | |||
| cmake_minimum_required(VERSION 3.28) | ||||
| project(ModulesHelloWorld CXX) | ||||
| 
 | ||||
| set(CMAKE_CXX_EXTENSIONS OFF) | ||||
| set(CMAKE_CXX_STANDARD 23) | ||||
| set(CMAKE_CXX_STANDARD 20) | ||||
| set(CMAKE_CXX_EXTENSIONS ON) | ||||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||||
| 
 | ||||
| add_library(lib) | ||||
| target_sources(lib PUBLIC FILE_SET CXX_MODULES FILES lib.cxx) | ||||
| # enable modules support | ||||
| set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "0e5b6991-d74f-4b3d-a41c-cf096e0b2508") | ||||
| 
 | ||||
| add_executable(hellomodules main.cxx) | ||||
| target_link_libraries(hellomodules lib) | ||||
| project(gooey LANGUAGES CXX) | ||||
| 
 | ||||
| set(CMAKE_CXX_MODULE_STD ON) | ||||
| 
 | ||||
| add_subdirectory(game) | ||||
| 
 | ||||
| add_executable(gooey src/main.cxx) | ||||
| target_link_libraries(gooey game) | ||||
|  |  | |||
							
								
								
									
										17
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -11,7 +11,8 @@ | |||
|   }: | ||||
|     flake-utils.lib.eachDefaultSystem (system: let | ||||
|       pkgs = nixpkgs.legacyPackages.${system}; | ||||
|       inherit (pkgs.llvmPackages_19) stdenv; | ||||
|       stdenv = pkgs.llvmPackages_19.libcxxStdenv; | ||||
|       cmake-version = "3.30.4"; | ||||
| 
 | ||||
|       gooey = stdenv.mkDerivation { | ||||
|         pname = "gooey"; | ||||
|  | @ -19,10 +20,18 @@ | |||
|         # inherit system; | ||||
| 
 | ||||
|         src = ./.; | ||||
|         buildInputs = [ | ||||
|           pkgs.cmake | ||||
|         nativeBuildInputs = [ | ||||
|           (pkgs.cmake.overrideAttrs { | ||||
|             version = "3.30.4"; | ||||
|             src = pkgs.fetchurl { | ||||
|               url = "https://cmake.org/files/v${pkgs.lib.versions.majorMinor cmake-version}/cmake-${cmake-version}.tar.gz"; | ||||
|               hash = "sha256-x1nJcnTx56qq/LHw0mH53pvzpdbst+LfYWMkpG/nBLI="; | ||||
|             }; | ||||
|           }) | ||||
|           pkgs.ninja | ||||
|         ]; | ||||
| 
 | ||||
|         buildInputs = [ | ||||
|           (pkgs.callPackage ./nix/SDL3.nix {}) | ||||
|           pkgs.llvmPackages_19.clang-tools | ||||
|         ]; | ||||
|  | @ -42,7 +51,7 @@ | |||
|       }; | ||||
|     in { | ||||
|       packages.default = gooey; | ||||
|       devShells.default = pkgs.mkShell { | ||||
|       devShells.default = pkgs.mkShell.override {inherit stdenv;} { | ||||
|         name = "gooey"; | ||||
|         inputsFrom = [gooey]; | ||||
|         CMAKE_GENERATOR = "Ninja"; | ||||
|  |  | |||
							
								
								
									
										4
									
								
								game/CMakeLists.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								game/CMakeLists.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| cmake_minimum_required(VERSION 3.28) | ||||
| 
 | ||||
| add_library(game) | ||||
| target_sources(game PUBLIC FILE_SET CXX_MODULES FILES src/game.cxx) | ||||
|  | @ -1,8 +1,9 @@ | |||
| // Global module fragment, where #includes can happen
 | ||||
| module; | ||||
| #include <iostream> | ||||
| 
 | ||||
| export module lib; | ||||
| import std; | ||||
| 
 | ||||
| export module game; | ||||
| 
 | ||||
| export class lib | ||||
| { | ||||
|  | @ -17,5 +18,5 @@ lib::~lib() = default; | |||
| 
 | ||||
| void lib::helloworld() | ||||
| { | ||||
|     std::cout << "Hello world!" << std::endl; | ||||
|     std::print("Hello world!\n"); | ||||
| } | ||||
|  | @ -1,4 +1,4 @@ | |||
| import lib; | ||||
| import game; | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
		Reference in a new issue
	
	 Matias
				Matias