diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/graphene')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch | 97 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/graphene/default.nix | 102 |
2 files changed, 199 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch b/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch new file mode 100644 index 000000000000..9111217ea08e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch @@ -0,0 +1,97 @@ +From 57bed86429db9d871f1442c94f14e94e38972ca3 Mon Sep 17 00:00:00 2001 +From: worldofpeace <worldofpeace@protonmail.ch> +Date: Thu, 16 May 2019 21:15:15 -0400 +Subject: [PATCH] meson: add options for tests installation dirs + +--- + meson_options.txt | 6 ++++++ + tests/meson.build | 23 ++++++++++++++++------- + 2 files changed, 22 insertions(+), 7 deletions(-) + +diff --git a/meson_options.txt b/meson_options.txt +index b9a2fb5..4b8629f 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -23,3 +23,9 @@ option('tests', type: 'boolean', + option('installed_tests', type: 'boolean', + value: true, + description: 'Install tests') ++option('installed_test_datadir', type: 'string', ++ value: '', ++ description: 'Installation directory for data files in tests') ++option('installed_test_bindir', type: 'string', ++ value: '', ++ description: 'Installation directory for binary files in tests') +diff --git a/tests/meson.build b/tests/meson.build +index 77281f5..7522456 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -21,8 +21,17 @@ unit_tests = [ + + gen_installed_test = find_program('gen-installed-test.py') + +-installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'installed-tests', graphene_api_path) +-installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), 'installed-tests', graphene_api_path) ++test_suffix = join_paths('installed-tests', graphene_api_path) ++ ++test_datadir = join_paths(get_option('installed_test_datadir'), test_suffix) ++if test_datadir == '' ++ test_datadir = join_paths(get_option('prefix'), get_option('datadir'), test_suffix) ++endif ++ ++test_bindir = join_paths(get_option('installed_test_bindir'), test_suffix) ++if test_bindir == '' ++ test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), test_suffix) ++endif + + # Make tests conditional on having mutest-1 installed system-wide, or + # available as a subproject +@@ -40,13 +49,13 @@ if mutest_dep.found() + output: wrapper, + command: [ + gen_installed_test, +- '--testdir=@0@'.format(installed_test_bindir), ++ '--testdir=@0@'.format(test_bindir), + '--testname=@0@'.format(unit), + '--outdir=@OUTDIR@', + '--outfile=@0@'.format(wrapper), + ], + install: get_option('installed_tests'), +- install_dir: installed_test_datadir, ++ install_dir: test_datadir, + ) + + test(unit, +@@ -55,7 +64,7 @@ if mutest_dep.found() + include_directories: graphene_inc, + c_args: common_cflags, + install: get_option('installed_tests'), +- install_dir: installed_test_bindir, ++ install_dir: test_bindir, + ), + env: ['MUTEST_OUTPUT=tap'], + protocol: 'tap', +@@ -66,17 +75,18 @@ endif + if build_gir and host_system == 'linux' and not meson.is_cross_build() + foreach unit: ['introspection.py'] + wrapper = '@0@.test'.format(unit) ++ install_data(unit, install_dir: test_bindir) + custom_target(wrapper, + output: wrapper, + command: [ + gen_installed_test, +- '--testdir=@0@'.format(installed_test_bindir), ++ '--testdir=@0@'.format(test_bindir), + '--testname=@0@'.format(unit), + '--outdir=@OUTDIR@', + '--outfile=@0@'.format(wrapper), + ], + install: get_option('installed_tests'), +- install_dir: installed_test_datadir, ++ install_dir: test_datadir, + ) + + test(unit, +-- +2.31.1 + diff --git a/nixpkgs/pkgs/development/libraries/graphene/default.nix b/nixpkgs/pkgs/development/libraries/graphene/default.nix new file mode 100644 index 000000000000..22c0e044f1e8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/graphene/default.nix @@ -0,0 +1,102 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, pkg-config +, meson +, ninja +, python3 +, mutest +, nixosTests +, glib +, gtk-doc +, docbook_xsl +, docbook_xml_dtd_43 +, gobject-introspection +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "graphene"; + version = "1.10.6"; + + outputs = [ "out" ] + ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" "installedTests" ]; + + src = fetchFromGitHub { + owner = "ebassi"; + repo = pname; + rev = version; + sha256 = "v6YH3fRMTzhp7wmU8in9ukcavzHmOAW54EK9ZwQyFxc="; + }; + + patches = [ + # Add option for changing installation path of installed tests. + ./0001-meson-add-options-for-tests-installation-dirs.patch + ]; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + docbook_xml_dtd_43 + docbook_xsl + gtk-doc + meson + ninja + pkg-config + gobject-introspection + python3 + makeWrapper + ]; + + buildInputs = [ + glib + ]; + + checkInputs = [ + mutest + ]; + + mesonFlags = [ + "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}" + "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}" + "-Dinstalled_test_datadir=${placeholder "installedTests"}/share" + "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec" + ]; + + doCheck = true; + + postPatch = '' + patchShebangs tests/gen-installed-test.py + '' + lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) '' + PATH=${python3.withPackages (pp: [ pp.pygobject3 pp.tappy ])}/bin:$PATH patchShebangs tests/introspection.py + ''; + + postFixup = let + introspectionPy = "${placeholder "installedTests"}/libexec/installed-tests/graphene-1.0/introspection.py"; + in '' + if [ -x '${introspectionPy}' ] ; then + wrapProgram '${introspectionPy}' \ + --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0" + fi + ''; + + passthru = { + tests = { + installedTests = nixosTests.installed-tests.graphene; + }; + + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A thin layer of graphic data types"; + homepage = "https://github.com/ebassi/graphene"; + license = licenses.mit; + maintainers = teams.gnome.members ++ (with maintainers; [ ]); + platforms = platforms.unix; + }; +} |