mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 10:00:16 +02:00
The cmake_enable_flt.sh script will automatically install the required cross-toolchains required to build FEXLinuxTests, and it will reconfigure the current build folder appropriately. For advanced uses, a shell can be opened by running `nix-shell FEXLinuxTests/shell.nix`, which will make the toolchain available via environment variables.
36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
{ pkgs ? import <nixpkgs> { } }:
|
|
|
|
let
|
|
pkgsCross32 = pkgs.pkgsCross.gnu32;
|
|
pkgsCross64 = pkgs.pkgsCross.gnu64;
|
|
|
|
gcc32 = pkgs.writeText "toolchain_nix_gcc_x86_32.txt" ''
|
|
set(CMAKE_SYSTEM_PROCESSOR i686)
|
|
set(CMAKE_C_COMPILER ${pkgsCross32.buildPackages.gcc}/bin/i686-unknown-linux-gnu-gcc)
|
|
set(CMAKE_CXX_COMPILER ${pkgsCross32.buildPackages.gcc}/bin/i686-unknown-linux-gnu-g++)
|
|
'';
|
|
|
|
gcc64 = pkgs.writeText "toolchain_nix_gcc_x86_64.txt" ''
|
|
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
|
set(CMAKE_C_COMPILER ${pkgsCross64.buildPackages.gcc}/bin/x86_64-unknown-linux-gnu-gcc)
|
|
set(CMAKE_CXX_COMPILER ${pkgsCross64.buildPackages.gcc}/bin/x86_64-unknown-linux-gnu-g++)
|
|
'';
|
|
in
|
|
pkgs.mkShell {
|
|
buildInputs = [
|
|
pkgsCross64.buildPackages.clang
|
|
pkgsCross32.buildPackages.clang
|
|
];
|
|
|
|
shellHook = ''
|
|
if [[ $- == *i* ]]; then
|
|
echo "toolchain32: ${gcc32}"
|
|
echo "toolchain64: ${gcc64}"
|
|
echo ""
|
|
echo "Use \$FEX_CMAKE_TOOLCHAINS to configure CMake."
|
|
fi
|
|
'';
|
|
|
|
FEX_CMAKE_TOOLCHAINS = "-DX86_32_TOOLCHAIN_FILE=${gcc32} -DX86_64_TOOLCHAIN_FILE=${gcc64}";
|
|
}
|