1{ lib
2, stdenv
3, fetchFromGitHub
4, rustPlatform
5, pkg-config
6, openssl
7, darwin
8}:
9
10let
11 inherit (darwin.apple_sdk.frameworks) CoreServices;
12in
13rustPlatform.buildRustPackage rec {
14 pname = "rojo";
15 version = "7.2.1";
16
17 src = fetchFromGitHub {
18 owner = "rojo-rbx";
19 repo = "rojo";
20 rev = "v${version}";
21 sha256 = "sha256-Kmq/lBwayYkFU4mbjExj7M9wpg59OkIiTc+2ZrwpuBc=";
22 fetchSubmodules = true;
23 };
24
25 cargoSha256 = "sha256-qx6Ja0DMe4cEmDSpovtY9T3+0nJS9XivR92K3UKgacE=";
26
27 nativeBuildInputs = [
28 pkg-config
29 ];
30
31 buildInputs = [
32 openssl
33 ] ++ lib.optionals stdenv.isDarwin [
34 CoreServices
35 ];
36
37 # tests flaky on darwin on hydra
38 doCheck = !stdenv.isDarwin;
39
40 meta = with lib; {
41 description = "Project management tool for Roblox";
42 longDescription = ''
43 Rojo is a tool designed to enable Roblox developers to use professional-grade software engineering tools.
44 '';
45 homepage = "https://rojo.space";
46 downloadPage = "https://github.com/rojo-rbx/rojo/releases/tag/v${version}";
47 changelog = "https://github.com/rojo-rbx/rojo/raw/v${version}/CHANGELOG.md";
48 license = licenses.mpl20;
49 maintainers = with maintainers; [ wackbyte ];
50 };
51}