diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix new file mode 100644 index 00000000000..bd85b6620ba --- /dev/null +++ b/pkgs/os-specific/linux/anbox/default.nix @@ -0,0 +1,127 @@ +{ stdenv, lib, fetchFromGitHub, fetchurl +, cmake, pkgconfig, dbus, makeWrapper +, gtest +, boost +, libcap +, systemd +, mesa +, libGL +, libglvnd +, glib +, git +, SDL2 +, SDL2_image +, properties-cpp +, protobuf +, protobufc +, python +, lxc +}: + +stdenv.mkDerivation rec { + pname = "anbox"; + version = "2019-03-07"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "d521e282965462e82465045ab95d4ae1c4619685"; + sha256 = "1wfx4bsyxvrjl16dq5pqgial8rnnsnxzbak2ap0waddz847czxwz"; + }; + + buildInputs = [ + cmake pkgconfig dbus boost libcap gtest systemd mesa glib + SDL2 SDL2_image protobuf protobufc properties-cpp lxc python + makeWrapper libGL + ]; + + patchPhase = '' + patchShebangs scripts + + cat >cmake/FindGMock.cmake <<'EOF' + add_library(gtest INTERFACE) + target_include_directories(gtest INTERFACE ${gtest.dev}/include) + target_link_libraries(gtest INTERFACE ${gtest}/lib/libgtest.so ''${CMAKE_THREAD_LIBS_INIT}) + add_dependencies(gtest GMock) + + add_library(gtest_main INTERFACE) + target_include_directories(gtest_main INTERFACE ${gtest.dev}/include) + target_link_libraries(gtest_main INTERFACE ${gtest}/lib/libgtest_main.so gtest) + + add_library(gmock INTERFACE) + target_include_directories(gmock INTERFACE ${gtest.dev}/include) + target_link_libraries(gmock INTERFACE ${gtest}/lib/libgmock.so gtest) + + add_library(gmock_main INTERFACE) + target_include_directories(gmock_main INTERFACE ${gtest.dev}/include) + target_link_libraries(gmock_main INTERFACE ${gtest}/lib/libgmock_main.so gmock gtest_main) + + set(GTEST_LIBRARIES gtest) + set(GTEST_MAIN_LIBRARIES gtest_main) + set(GMOCK_LIBRARIES gmock gmock_main) + set(GTEST_BOTH_LIBRARIES ''${GTEST_LIBRARIES} ''${GTEST_MAIN_LIBRARIES}) + EOF + ''; + + postInstall = '' + wrapProgram $out/bin/anbox \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [libGL libglvnd]} \ + --prefix PATH : ${git}/bin + + mkdir -p $out/share/dbus-1/services/ + cat < $out/share/dbus-1/services/org.anbox.service + [D-BUS Service] + Name=org.anbox + Exec=$out/libexec/anbox-session-manager + END + + mkdir $out/libexec + cat > $out/libexec/anbox-session-manager < $out/bin/anbox-application-manager <