diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/development/tools/tracy/default.nix new file mode 100644 index 000000000000..d446511298fa --- /dev/null +++ b/pkgs/development/tools/tracy/default.nix @@ -0,0 +1,41 @@ +{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk2, glfw, pkgconfig, freetype, Carbon, AppKit }: + +stdenv.mkDerivation rec { + name = "tracy-${version}"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "wolfpld"; + repo = "tracy"; + rev = "v${version}"; + sha256 = "0pgq8h5gq141zq1k4cgj6cp74kh4zqbp7h4wh29q4grjb04yy06i"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ glfw ] + ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ] + ++ lib.optionals stdenv.isLinux [ gtk2 tbb ]; + + NIX_CFLAGS_COMPILE = [] + ++ lib.optional stdenv.isLinux "-ltbb" + ++ lib.optional stdenv.cc.isClang "-faligned-allocation"; + + buildPhase = '' + make -j $NIX_BUILD_CORES -C profiler/build/unix release + make -j $NIX_BUILD_CORES -C import-chrome/build/unix/ release + ''; + + installPhase = '' + install -D ./profiler/build/unix/Tracy-release $out/bin/Tracy + install -D ./import-chrome/build/unix/import-chrome-release $out/bin/import-chrome + ''; + + meta = with stdenv.lib; { + description = "A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications."; + homepage = "https://github.com/wolfpld/tracy"; + platforms = platforms.linux ++ platforms.darwin; + license = licenses.bsd3; + maintainers = with maintainers; [ mpickering ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 47f8ceb07e05..2910ee5ae0cf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3151,6 +3151,10 @@ in tracker-miners = callPackage ../development/libraries/tracker-miners { }; + tracy = callPackage ../development/tools/tracy { + inherit (darwin.apple_sdk.frameworks) Carbon AppKit; + }; + tridactyl-native = callPackage ../tools/networking/tridactyl-native { }; trompeloeil = callPackage ../development/libraries/trompeloeil { };