build: skip copying meson files for examples installation

Message ID 20210312145605.448017-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series build: skip copying meson files for examples installation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/travis-robot success travis build: passed
ci/github-robot success github build: passed
ci/iol-mellanox-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/intel-Testing success Testing PASS

Commit Message

Bruce Richardson March 12, 2021, 2:56 p.m. UTC
  The meson.build files in each example directory is simply to support
building the example as part of the main SDK build, and these should not
be installed with the example's source code and makefile. The exclude of
"meson.build" only filters out the top-level examples/meson.build file,
not the file in each subdirectory.

To fix this, we can build up the list of files to exclude based off the
list of all examples. With this change "find examples/ -name meson.build"
returns no hits when run on an installed instance.

Fixes: e5b95003f1df ("examples: fix flattening directory layout on install")
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

---

Including stable on CC for this patch because even though it's removing
files, those files are useless alone, since they must be part of a
larger DPDK build. Therefore I think the patch should be safe to
consider for backporting, especially since prior to the commit in
question the meson.build files were being properly filtered out.
---
 examples/meson.build | 6 ++++++
 meson.build          | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon March 15, 2021, 5:05 p.m. UTC | #1
12/03/2021 15:56, Bruce Richardson:
> The meson.build files in each example directory is simply to support
> building the example as part of the main SDK build, and these should not
> be installed with the example's source code and makefile. The exclude of
> "meson.build" only filters out the top-level examples/meson.build file,
> not the file in each subdirectory.
> 
> To fix this, we can build up the list of files to exclude based off the
> list of all examples. With this change "find examples/ -name meson.build"
> returns no hits when run on an installed instance.
> 
> Fixes: e5b95003f1df ("examples: fix flattening directory layout on install")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Applied, thanks
  

Patch

diff --git a/examples/meson.build b/examples/meson.build
index b9ab24223..3fe08d4ca 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -48,6 +48,12 @@  all_examples = [
 	'vmdq', 'vmdq_dcb',
 ]
 
+# on install, skip copying all meson.build files
+ex_file_excludes = ['meson.build']
+foreach ex:all_examples
+	ex_file_excludes += [ex + '/meson.build']
+endforeach
+
 if get_option('examples') == ''
 	subdir_done()
 endif
diff --git a/meson.build b/meson.build
index fcc4d4c90..7778e1820 100644
--- a/meson.build
+++ b/meson.build
@@ -61,7 +61,7 @@  subdir('doc')
 subdir('examples')
 install_subdir('examples',
 	install_dir: get_option('datadir') + '/dpdk',
-	exclude_files: 'meson.build')
+	exclude_files: ex_file_excludes)
 
 # build kernel modules if enabled
 if get_option('enable_kmods')