Set up cross compilation
This commit is contained in:
		
							parent
							
								
									99390d52e1
								
							
						
					
					
						commit
						1b8207db17
					
				| 
						 | 
					@ -554,9 +554,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "cc"
 | 
					name = "cc"
 | 
				
			||||||
version = "1.2.3"
 | 
					version = "1.2.4"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d"
 | 
					checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "jobserver",
 | 
					 "jobserver",
 | 
				
			||||||
 "libc",
 | 
					 "libc",
 | 
				
			||||||
| 
						 | 
					@ -825,9 +825,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "crossbeam-utils"
 | 
					name = "crossbeam-utils"
 | 
				
			||||||
version = "0.8.20"
 | 
					version = "0.8.21"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 | 
					checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "cursor-icon"
 | 
					name = "cursor-icon"
 | 
				
			||||||
| 
						 | 
					@ -1265,12 +1265,6 @@ dependencies = [
 | 
				
			||||||
 "syn 2.0.90",
 | 
					 "syn 2.0.90",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "futures-sink"
 | 
					 | 
				
			||||||
version = "0.3.31"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "futures-task"
 | 
					name = "futures-task"
 | 
				
			||||||
version = "0.3.31"
 | 
					version = "0.3.31"
 | 
				
			||||||
| 
						 | 
					@ -1286,7 +1280,6 @@ dependencies = [
 | 
				
			||||||
 "futures-core",
 | 
					 "futures-core",
 | 
				
			||||||
 "futures-io",
 | 
					 "futures-io",
 | 
				
			||||||
 "futures-macro",
 | 
					 "futures-macro",
 | 
				
			||||||
 "futures-sink",
 | 
					 | 
				
			||||||
 "futures-task",
 | 
					 "futures-task",
 | 
				
			||||||
 "memchr",
 | 
					 "memchr",
 | 
				
			||||||
 "pin-project-lite",
 | 
					 "pin-project-lite",
 | 
				
			||||||
| 
						 | 
					@ -1833,7 +1826,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "bitflags 2.6.0",
 | 
					 "bitflags 2.6.0",
 | 
				
			||||||
 "libc",
 | 
					 "libc",
 | 
				
			||||||
 "redox_syscall 0.5.7",
 | 
					 "redox_syscall 0.5.8",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
| 
						 | 
					@ -2436,7 +2429,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "cfg-if",
 | 
					 "cfg-if",
 | 
				
			||||||
 "libc",
 | 
					 "libc",
 | 
				
			||||||
 "redox_syscall 0.5.7",
 | 
					 "redox_syscall 0.5.8",
 | 
				
			||||||
 "smallvec",
 | 
					 "smallvec",
 | 
				
			||||||
 "windows-targets 0.52.6",
 | 
					 "windows-targets 0.52.6",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
| 
						 | 
					@ -2670,9 +2663,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "redox_syscall"
 | 
					name = "redox_syscall"
 | 
				
			||||||
version = "0.5.7"
 | 
					version = "0.5.8"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
 | 
					checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "bitflags 2.6.0",
 | 
					 "bitflags 2.6.0",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
| 
						 | 
					@ -4203,9 +4196,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "zbus"
 | 
					name = "zbus"
 | 
				
			||||||
version = "5.1.1"
 | 
					version = "5.2.0"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "1162094dc63b1629fcc44150bcceeaa80798cd28bcbe7fa987b65a034c258608"
 | 
					checksum = "fb67eadba43784b6fb14857eba0d8fc518686d3ee537066eb6086dc318e2c8a1"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "async-broadcast",
 | 
					 "async-broadcast",
 | 
				
			||||||
 "async-executor",
 | 
					 "async-executor",
 | 
				
			||||||
| 
						 | 
					@ -4239,9 +4232,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "zbus_macros"
 | 
					name = "zbus_macros"
 | 
				
			||||||
version = "5.1.1"
 | 
					version = "5.2.0"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "2cd2dcdce3e2727f7d74b7e33b5a89539b3cc31049562137faf7ae4eb86cd16d"
 | 
					checksum = "2c9d49ebc960ceb660f2abe40a5904da975de6986f2af0d7884b39eec6528c57"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "proc-macro-crate",
 | 
					 "proc-macro-crate",
 | 
				
			||||||
 "proc-macro2",
 | 
					 "proc-macro2",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
[package]
 | 
					[package]
 | 
				
			||||||
name = "lemur"
 | 
					name = "lemur"
 | 
				
			||||||
 | 
					description = "An emulator for the Virtual Boy."
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,4 +39,10 @@ windows = { version = "0.58", features = ["Win32_System_Threading"] }
 | 
				
			||||||
cc = "1"
 | 
					cc = "1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[profile.release]
 | 
					[profile.release]
 | 
				
			||||||
lto = true
 | 
					lto = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[package.metadata.bundle]
 | 
				
			||||||
 | 
					name = "Lemur"
 | 
				
			||||||
 | 
					identifier = "com.virtual-boy.Lemur"
 | 
				
			||||||
 | 
					icon = ["assets/lemur-256x256.png"]
 | 
				
			||||||
 | 
					category = "games"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					# This Dockerfile produces a base image for builds.
 | 
				
			||||||
 | 
					# It includes all dependencies necessary to cross-compile for Windows/MacOS/Linux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM crazymax/osxcross:latest-ubuntu AS osxcross
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM rust:latest
 | 
				
			||||||
 | 
					RUN rustup target add x86_64-pc-windows-msvc && \
 | 
				
			||||||
 | 
					    rustup target add x86_64-apple-darwin && \
 | 
				
			||||||
 | 
					    apt-get update && \
 | 
				
			||||||
 | 
					    apt-get install -y clang lld libc6-dev libasound2-dev libudev-dev genisoimage && \
 | 
				
			||||||
 | 
					    cargo install cargo-bundle xwin
 | 
				
			||||||
 | 
					COPY --from=osxcross /osxcross /osxcross
 | 
				
			||||||
 | 
					RUN xwin --accept-license splat --output xwin && rm -rf .xwin-cache
 | 
				
			||||||
 | 
					ENV PATH="/osxcross/bin:$PATH" \
 | 
				
			||||||
 | 
					    LD_LIBRARY_PATH="/osxcross/lib" \
 | 
				
			||||||
 | 
					    CC="clang" CXX="clang++" AR="llvm-ar-14" \
 | 
				
			||||||
 | 
					    CC_x86_64-apple-darwin="o64-clang" \
 | 
				
			||||||
 | 
					    CXX_x86_64-apple-darwin="o64-clang++" \
 | 
				
			||||||
 | 
					    CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER="lld-link" \
 | 
				
			||||||
 | 
					    CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER="o64-clang" \
 | 
				
			||||||
 | 
					    CARGO_TARGET_X86_64_APPLE_DARWIN_AR="llvm-ar-14" \
 | 
				
			||||||
 | 
					    RUSTFLAGS="-Lnative=/xwin/crt/lib/x86_64 -Lnative=/xwin/sdk/lib/um/x86_64 -Lnative=/xwin/sdk/lib/ucrt/x86_64" \
 | 
				
			||||||
 | 
					    MACOSX_DEPLOYMENT_TARGET="14.5"
 | 
				
			||||||
		Loading…
	
		Reference in New Issue