From 7bcf86e4c3a29c0bae02837174bd3cbb5e09e3c7 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Sun, 22 Apr 2018 23:23:04 +0200 Subject: meson: Install generated headers without needing a script This script dates from a long time ago when Meson lacked ways to install generated headers. This fixes an issue where `ninja install` in tracker.git triggers a rebuild of lots of stuff from tracker-miners.git, which happened because the mtime of the installed generated headers would become newer than the build files in tracker-miners.git and cause ninja to rebuild them all. --- src/install-generated-header.sh | 12 ------------ src/libtracker-miner/meson.build | 7 ++----- src/libtracker-sparql/meson.build | 10 +++------- 3 files changed, 5 insertions(+), 24 deletions(-) delete mode 100644 src/install-generated-header.sh diff --git a/src/install-generated-header.sh b/src/install-generated-header.sh deleted file mode 100644 index 0078aaf53..000000000 --- a/src/install-generated-header.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Script to install generated .h files. This only exists to workaround -# a Meson bug: https://github.com/mesonbuild/meson/issues/705 - -set -e - -HEADER="$1" -TARGET_DIR="$2" - -mkdir -p "$DESTDIR$2" -cp $1 "$DESTDIR$2" diff --git a/src/libtracker-miner/meson.build b/src/libtracker-miner/meson.build index d3a8c7ac6..7036860a9 100644 --- a/src/libtracker-miner/meson.build +++ b/src/libtracker-miner/meson.build @@ -6,6 +6,8 @@ miner_enums = gnome.mkenums('tracker-miner-enum-types', sources: 'tracker-miner-enums.h', c_template: 'tracker-miner-enum-types.c.template', h_template: 'tracker-miner-enum-types.h.template', + install_header: true, + install_dir: join_paths(get_option('includedir'), 'tracker-@0@'.format(tracker_api_version), 'libtracker-miner'), ) private_sources = [ @@ -97,8 +99,3 @@ configure_file( install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')) install_headers(miner_headers, subdir: 'tracker-@0@/libtracker-miner'.format(tracker_api_version)) - -# Work around https://github.com/mesonbuild/meson/issues/705 -meson.add_install_script('../install-generated-header.sh', - join_paths(meson.current_build_dir(), 'tracker-miner-enum-types.h'), - join_paths(get_option('prefix'), get_option('includedir'), 'tracker-@0@'.format(tracker_api_version), 'libtracker-miner')) diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build index fc2b9b5a8..fa7d45f72 100644 --- a/src/libtracker-sparql/meson.build +++ b/src/libtracker-sparql/meson.build @@ -50,7 +50,9 @@ tracker_sparql_generated_header = custom_target('tracker-sparql-generated-header # output: 'tracker-generated.h', command: [join_paths(meson.current_source_dir(), 'tracker-sparql-add-include-guards.sh'), join_paths(meson.current_build_dir(), 'tracker-generated-no-checks.h'), '@OUTPUT@'], - depends: libtracker_sparql_intermediate_vala) + depends: libtracker_sparql_intermediate_vala, + install: true, + install_dir: join_paths(get_option('prefix'), get_option('includedir'), 'tracker-@0@'.format(tracker_api_version), 'libtracker-sparql')) # Now build the C parts ... @@ -95,12 +97,6 @@ install_headers( 'tracker-sparql.h', subdir: 'tracker-@0@/libtracker-sparql'.format(tracker_api_version)) -# FIXME: we need a custom script to install generated Vala headers; see -# . -meson.add_install_script('../install-generated-header.sh', - join_paths(meson.current_build_dir(), 'tracker-generated.h'), - join_paths(get_option('prefix'), get_option('includedir'), 'tracker-@0@'.format(tracker_api_version), 'libtracker-sparql')) - # FIXME: we can't depend properly on the generated .vapi to do this. custom_target('tracker-sparql-' + tracker_api_version + '.vapi', #input: 'tracker-sparql-intermediate-vala.vapi', -- cgit v1.2.1