From patchwork Sun Nov 26 19:57:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 10075527 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6C6FC602BD for ; Sun, 26 Nov 2017 19:57:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5556527F95 for ; Sun, 26 Nov 2017 19:57:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A2B628753; Sun, 26 Nov 2017 19:57:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, URIBL_BLACK autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C453D28B12 for ; Sun, 26 Nov 2017 19:57:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 47F7089C33; Sun, 26 Nov 2017 19:57:46 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40EB589C33 for ; Sun, 26 Nov 2017 19:57:45 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id y82so25854313wmg.1 for ; Sun, 26 Nov 2017 11:57:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lLmPH/nZb6evEHTffOPYNmKASFmy6km3Zz1YzqnNaUc=; b=eimZgl1WUtu/p2/wgGR9PBW263ghYsUM1fTaNlQWyykGJ6KbWlxjSP/qE5xJe3o28i 1Fxv2XZzSBdomNc08WQn03OIHH5pze4/+V8aqgkV6r81Gl8VnyWbu1bjgTApSD4/HjS/ IsiO+aX4UvsW1cnmOfqH8q1VW7sV2MtPIToPE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lLmPH/nZb6evEHTffOPYNmKASFmy6km3Zz1YzqnNaUc=; b=S6tWQ0vhA+DA5p7aI9c1t9GZbFBLbQBhefjrlerSn1WmeDPWgKZzZ3FFeeCvY5GsxF r2uPrLWsJhYqz9UzgMpKat8iMvP+dTTdyU9MBHHnStwHpf7ydEVr0m9C3y6JSURk53W1 ZaNMzUTjfImxzIxQiIf9139IUUvFIIIo+arj216KOBpIfL9i5cQPdVuvWuLtmSgd4Y0O gir9b42JluokxoTSJ4VtrC6WQWrSOaXCl81ITm+KrQK17gKyF45TcshRsaLVYdGCaHJJ 61HnngKeEaMUxtcXi3NybRadh0br7O+xvxriGAYDVKcZ2J0Ksr8rjq9dfIgetssWHL4M QXSw== X-Gm-Message-State: AJaThX4tLd+Ojtc8l9oO61WL/L8hW5aRG79zZouotRIVNJwDkEoferFd rfQql3vSH9p+JcdnTIE7xnx1jaPs X-Google-Smtp-Source: AGs4zMYgUSgH+M/OPO4UQY4Szfse5Ogr3EZFHV3g1hSgAyk1N9SNIk9WAnUUazXezEcSGK78xrYazQ== X-Received: by 10.80.170.136 with SMTP id q8mr31645843edc.134.1511726263375; Sun, 26 Nov 2017 11:57:43 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:5635:0:39d2:f87e:2033:9f6]) by smtp.gmail.com with ESMTPSA id v20sm15619742edm.10.2017.11.26.11.57.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Nov 2017 11:57:42 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Date: Sun, 26 Nov 2017 20:57:37 +0100 Message-Id: <20171126195737.16321-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171126194211.15849-4-daniel.vetter@ffwll.ch> References: <20171126194211.15849-4-daniel.vetter@ffwll.ch> Cc: Daniel Vetter Subject: [Intel-gfx] [PATCH i-g-t] meson: gtkdoc support X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP Bunch of neat improvements: - xml generates correctly depend upon the test binaries - no need to re-run autogen.sh when new chapters/functions get added, all handed by meson Still one issue: - the gtkdoc target doesn't depend upon the custom_target yet, hacked around using build_by_default: true v2: Bump meson version to 0.42, since that's the first release which adds the build dir when running the gtkdoc tools, and hence allows including generated files. Signed-off-by: Daniel Vetter --- docs/meson.build | 1 + .../intel-gpu-tools/generate_description_xml.sh | 44 +++++++++++++ .../intel-gpu-tools/generate_programs_xml.sh | 22 +++++++ docs/reference/intel-gpu-tools/meson.build | 76 ++++++++++++++++++++++ docs/reference/meson.build | 1 + meson.build | 5 +- meson.sh | 2 +- tests/meson.build | 6 +- 8 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 docs/meson.build create mode 100644 docs/reference/intel-gpu-tools/generate_description_xml.sh create mode 100755 docs/reference/intel-gpu-tools/generate_programs_xml.sh create mode 100644 docs/reference/intel-gpu-tools/meson.build create mode 100644 docs/reference/meson.build diff --git a/docs/meson.build b/docs/meson.build new file mode 100644 index 000000000000..ead14c4015d9 --- /dev/null +++ b/docs/meson.build @@ -0,0 +1 @@ +subdir('reference') diff --git a/docs/reference/intel-gpu-tools/generate_description_xml.sh b/docs/reference/intel-gpu-tools/generate_description_xml.sh new file mode 100644 index 000000000000..8e39e0c4c289 --- /dev/null +++ b/docs/reference/intel-gpu-tools/generate_description_xml.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +output=$1 +filter=$2 +testlist=$3 +testdir=$(dirname $testlist) + +echo "" > $output +echo "> $output +echo " \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"" >> $output +echo "[" >> $output +echo " " >> $output +echo " " >> $output +echo "]>" >> $output +echo "" >> $output +echo "Description" >> $output +for test in `cat $testlist | tr ' ' '\n' | grep "^$filter" | sort`; do + echo "" >> $output; + echo "$test" | perl -pe 's/(?<=_)$(KEYWORDS)(?=(_|\W))/<acronym>\1<\/acronym>/g' >> $output; + echo "> $output; + testprog=$testdir/$test; + ./$testprog --help-description >> $output; + echo "]]>" >> $output; + if ./$testprog --list-subtests > /dev/null ; then + echo "Subtests" >> $output; + subtest_list=`./$testprog --list-subtests`; + subtest_count=`echo $subtest_list | wc -w`; + if [ $subtest_count -gt 100 ]; then + echo "This test has over 100 subtests. " >> $output; + echo "Run $test to list them." >> $output; + else + echo "" >> $output; + for subtest in $subtest_list; do + echo "" >> $output; + echo "$subtest" | perl -pe 's/\b$(KEYWORDS)\b/\1<\/acronym>/g' >> $output; + echo "" >> $output; + done; + echo "" >> $output; + fi; + echo "" >> $output; + fi; + echo "" >> $output; +done; +echo "" >> $output diff --git a/docs/reference/intel-gpu-tools/generate_programs_xml.sh b/docs/reference/intel-gpu-tools/generate_programs_xml.sh new file mode 100755 index 000000000000..73adc8cc7bfc --- /dev/null +++ b/docs/reference/intel-gpu-tools/generate_programs_xml.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +output=$1 +filter=$2 +testlist=$3 + +echo "" > $output +echo "> $output +echo " \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"" >> $output +echo "[" >> $output +echo " " >> $output +echo " " >> $output +echo "]>" >> $output +echo "" >> $output +echo "Programs" >> $output +echo "" >> $output +for test in `cat $testlist | tr ' ' '\n' | grep "^$filter" | sort`; do + echo "" >> $output; + echo "$test" >> $output; +done; +echo "" >> $output +echo "" >> $output diff --git a/docs/reference/intel-gpu-tools/meson.build b/docs/reference/intel-gpu-tools/meson.build new file mode 100644 index 000000000000..38feff3bee5e --- /dev/null +++ b/docs/reference/intel-gpu-tools/meson.build @@ -0,0 +1,76 @@ +gnome = import('gnome') + +ignore_headers = [ + 'gen6_render.h', + 'gen7_media.h', + 'gen7_render.h', + 'gen8_media.h', + 'gen8_render.h', + 'gpgpu_fill.h', + 'i830_reg.h', + 'i915_3d.h', + 'i915_pciids.h', + 'i915_reg.h', + 'igt_edid_template.h', + 'intel_reg.h', + 'debug.h', + 'instdone.h', + 'media_fill.h', + 'rendercopy.h', + 'media_spin.h', + 'media_fill_gen9.h', + 'gen9_render.h', + 'version.h', +] + +test_groups = [ + 'amdgpu', + 'chamelium', + 'core', + 'debugfs', + 'drm', + 'drv', + 'gem', + 'gen3', + 'gen7', + 'gvt', + 'kms', + 'meta', + 'perf', + 'pm', + 'prime', + 'sw_sync', + 'testdisplay', + 'tools', + 'vgem', +] + +gen_description = find_program('generate_description_xml.sh') +gen_programs = find_program('generate_programs_xml.sh') + +test_list_files = [] + +foreach group : test_groups + programs_xml = 'igt_test_programs_' + group + '_programs.xml' + custom_target(programs_xml, + output : programs_xml, + build_by_default : true, + command : [ gen_programs, '@OUTPUT@', group, test_list ]) + + description_xml = 'igt_test_programs_' + group + '_description.xml' + custom_target(description_xml, + output : description_xml, + build_by_default : true, + depends : test_executables, + command : [ gen_description, '@OUTPUT@', group, test_list ]) +endforeach + +gnome.gtkdoc('intel-gpu-tools', + content_files : ['igt_test_programs.xml'], + dependencies : lib_igt, + install : true, + main_xml : 'intel-gpu-tools-docs.xml', + scan_args : '--rebuild-sections', + mkdb_args : '--output-format=xml', + ignore_headers : ignore_headers, + src_dir : inc_for_gtkdoc) diff --git a/docs/reference/meson.build b/docs/reference/meson.build new file mode 100644 index 000000000000..944f28a5615e --- /dev/null +++ b/docs/reference/meson.build @@ -0,0 +1 @@ +subdir('intel-gpu-tools') diff --git a/meson.build b/meson.build index 2361866b32d2..fa5d71f797e9 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,7 @@ project('IGT gpu tests', 'c', 'c_std=gnu99', ], license : 'MIT', - meson_version : '>0.40.0') + meson_version : '>0.42.0') cc = meson.get_compiler('c') @@ -28,6 +28,8 @@ endforeach inc = include_directories('include/drm-uapi', 'lib', '.') +inc_for_gtkdoc = include_directories('lib') + config = configuration_data() libdrm = dependency('libdrm', version : '>=2.4.82') @@ -139,3 +141,4 @@ if libdrm_intel.found() endif endif subdir('man') +subdir('docs') diff --git a/meson.sh b/meson.sh index cbf1a9326dbe..ae8e3488d962 100755 --- a/meson.sh +++ b/meson.sh @@ -28,7 +28,7 @@ install uninstall: echo "meson install support not yet completed" && false docs: - echo "meson gtkdoc support not yet completed" && false + ninja -C build intel-gpu-tools-doc EOF diff --git a/tests/meson.build b/tests/meson.build index 9030cf0d1b5e..5555d5886164 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -261,12 +261,14 @@ endif libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'), 'intel-gpu-tools') +test_executables = [] + foreach prog : test_progs link = [] if prog == 'perf_pmu' link += lib_igt_perf endif - executable(prog, prog + '.c', + test_executables += executable(prog, prog + '.c', dependencies : test_deps, install_dir : libexecdir, link_with : link, @@ -288,6 +290,8 @@ custom_target('testlist', install : true, install_dir : pkgdatadir) +test_list = files('test-list.txt') + test_script = find_program('igt_command_line.sh') foreach prog : test_progs test('testcase check: ' + prog, test_script,