diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix index fde0e2eedf9c..8751de6835fb 100644 --- a/pkgs/games/openxray/default.nix +++ b/pkgs/games/openxray/default.nix @@ -51,10 +51,18 @@ stdenv.mkDerivation (finalAttrs: { cmakeBuildType = "RelWithDebInfo"; dontStrip = true; + makeWrapperArgs = lib.optionals stdenv.hostPlatform.isLinux [ + # Needed because of dlopen module loading code + "--prefix LD_LIBRARY_PATH : $out/lib" + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # Because we work around https://github.com/OpenXRay/xray-16/issues/1224 by using GCC, + # we need a followup workaround for Darwin locale stuff when using GCC: + # runtime error: locale::facet::_S_create_c_locale name not valid + "--run 'export LC_ALL=C'" + ]; + postInstall = '' - # needed because of SDL_LoadObject library loading code - wrapProgram $out/bin/xr_3da \ - --prefix LD_LIBRARY_PATH : $out/lib + wrapProgram $out/bin/xr_3da ${toString finalAttrs.makeWrapperArgs} ''; meta = with lib; { @@ -65,6 +73,6 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/OpenXRay/xray-16/blob/${version}/License.txt"; }; maintainers = with maintainers; [ OPNA2608 ]; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; + platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dadc9464cea4..e14edb5f543f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -38074,7 +38074,11 @@ with pkgs; openxcom = callPackage ../games/openxcom { SDL = SDL_compat; }; - openxray = callPackage ../games/openxray { }; + openxray = callPackage ../games/openxray { + # Builds with Clang, but hits an assertion failure unless GCC is used + # https://github.com/OpenXRay/xray-16/issues/1224 + stdenv = gccStdenv; + }; orthorobot = callPackage ../games/orthorobot { love = love_0_10; };