mirror of
https://github.com/autc04/Retro68.git
synced 2024-06-27 04:29:39 +00:00
Compare commits
No commits in common. "4ff2d7d902bc3beaf51e97174b527a44d6c13190" and "9d542ac1c2266e67a215883afc3ad610d0de8b7b" have entirely different histories.
4ff2d7d902
...
9d542ac1c2
|
@ -1,12 +1,12 @@
|
||||||
# vim:ft=dockerfile
|
# vim:ft=dockerfile
|
||||||
|
|
||||||
# Base image
|
# Base image
|
||||||
FROM ubuntu:22.04 AS base
|
FROM ubuntu:20.04 AS base
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||||
cmake libgmp-dev libmpfr-dev libmpc-dev \
|
cmake libgmp-dev libmpfr-dev libmpc-dev \
|
||||||
libboost-all-dev bison texinfo bzip2 \
|
libboost-all-dev bison texinfo \
|
||||||
ruby flex curl g++ git macutils
|
ruby flex curl g++ git macutils
|
||||||
|
|
||||||
# Add toolchain to default PATH
|
# Add toolchain to default PATH
|
||||||
|
|
|
@ -75,19 +75,6 @@ static void writeMacBinary(std::ostream& out, std::string filename,
|
||||||
|
|
||||||
const std::string& rsrcBytes = resstream.str();
|
const std::string& rsrcBytes = resstream.str();
|
||||||
|
|
||||||
// MacBinary files contain mandatory timestamps (creation date and modification date)
|
|
||||||
// We set both of them, but to make reproducible builds possible, this optionally
|
|
||||||
// takes the time from the $SOURCE_DATE_EPOCH environment variable instead of the system clock.
|
|
||||||
// When building under `nix`, this is automatically set to the modification date of the newest source
|
|
||||||
// file.
|
|
||||||
auto timestamp = std::invoke([&] -> std::chrono::system_clock::time_point {
|
|
||||||
const char *sourceDateEpochEnvVar = getenv("SOURCE_DATE_EPOCH");
|
|
||||||
if (sourceDateEpochEnvVar && *sourceDateEpochEnvVar)
|
|
||||||
return std::chrono::system_clock::from_time_t((time_t)std::atoll(sourceDateEpochEnvVar));
|
|
||||||
else
|
|
||||||
return std::chrono::system_clock::now();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Calculate Mac-style timestamp (seconds since 1 January 1904 00:00:00)
|
// Calculate Mac-style timestamp (seconds since 1 January 1904 00:00:00)
|
||||||
std::tm mac_epoch_tm = {
|
std::tm mac_epoch_tm = {
|
||||||
0, 0, 0, // 00:00:00
|
0, 0, 0, // 00:00:00
|
||||||
|
|
23
flake.nix
23
flake.nix
|
@ -10,9 +10,6 @@
|
||||||
|
|
||||||
outputs = inputs@{ flake-parts, nixpkgs, multiversal, ... }:
|
outputs = inputs@{ flake-parts, nixpkgs, multiversal, ... }:
|
||||||
flake-parts.lib.mkFlake { inherit inputs; } ({ self, lib, retroPlatforms, ... }: {
|
flake-parts.lib.mkFlake { inherit inputs; } ({ self, lib, retroPlatforms, ... }: {
|
||||||
imports = [
|
|
||||||
./nix/standalone.nix
|
|
||||||
];
|
|
||||||
_module.args.lib = import (nixpkgs + "/lib");
|
_module.args.lib = import (nixpkgs + "/lib");
|
||||||
_module.args.retroPlatforms = import ./nix/platforms.nix;
|
_module.args.retroPlatforms = import ./nix/platforms.nix;
|
||||||
|
|
||||||
|
@ -58,6 +55,26 @@
|
||||||
tools = pkgs.retro68.tools;
|
tools = pkgs.retro68.tools;
|
||||||
hfsutils = pkgs.retro68.hfsutils;
|
hfsutils = pkgs.retro68.hfsutils;
|
||||||
|
|
||||||
|
default = pkgs.runCommand "Retro68" { } ''
|
||||||
|
mkdir $out
|
||||||
|
mkdir $out/m68k-apple-macos
|
||||||
|
mkdir $out/powerpc-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out
|
||||||
|
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out
|
||||||
|
|
||||||
|
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out
|
||||||
|
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out
|
||||||
|
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out
|
||||||
|
'';
|
||||||
|
|
||||||
samples = pkgs.linkFarm "Retro68-Samples" [
|
samples = pkgs.linkFarm "Retro68-Samples" [
|
||||||
{ name = "m68k"; path = self'.legacyPackages.pkgsCross.m68k.retro68.samples; }
|
{ name = "m68k"; path = self'.legacyPackages.pkgsCross.m68k.retro68.samples; }
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
# flake part to add a 'standalone' build of retro68 for all archs,
|
|
||||||
# i.e. a build that does not rely on nixpkgs's wrapper setup.
|
|
||||||
# this might be what should be put into a docker image.
|
|
||||||
|
|
||||||
# Warning: does not yet work.
|
|
||||||
|
|
||||||
{ ... }: {
|
|
||||||
perSystem = { self', pkgs, ... }: {
|
|
||||||
packages.standalone = pkgs.runCommand "Retro68" { } ''
|
|
||||||
mkdir -p $out/m68k-apple-macos/cmake
|
|
||||||
mkdir -p $out/powerpc-apple-macos/cmake
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out
|
|
||||||
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out
|
|
||||||
|
|
||||||
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out
|
|
||||||
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out
|
|
||||||
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out
|
|
||||||
|
|
||||||
substitute ${../cmake/retro68.toolchain.cmake.in} $out/m68k-apple-macos/cmake/retro68.toolchain.cmake --subst-var-by RETRO68_ROOT $out
|
|
||||||
substitute ${../cmake/retroppc.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retroppc.toolchain.cmake --subst-var-by RETRO68_ROOT $out
|
|
||||||
substitute ${../cmake/retrocarbon.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retrocarbon.toolchain.cmake --subst-var-by RETRO68_ROOT $out
|
|
||||||
cp ${../cmake/add_application.cmake} $out/m68k-apple-macos/cmake/add_application.cmake
|
|
||||||
cp -r ${../cmake/Platform} $out/m68k-apple-macos/cmake/Platform
|
|
||||||
cp -r ${../cmake/Platform} $out/powerpc-apple-macos/cmake/Platform
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user