From a0d6ec07c91801859aa1c92f65ee6a924a306e0a Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fl.fischer@fau.de>
Date: Thu, 18 Feb 2021 12:14:18 +0100
Subject: [PATCH] [meson] fix version header custom target for meson >= 0.57

Apparently custom_target no longer supports the @CURRENT_SOURCE_DIR@
and @SOURCE_DIR@ substitutions.
We now locate the script using find_program().
Since meson.project_source_dir() is not available in older meson version
there is a version check.
---
 emper/include/meson.build | 41 ++++++++++++++++++++++++++++-----------
 1 file changed, 30 insertions(+), 11 deletions(-)

diff --git a/emper/include/meson.build b/emper/include/meson.build
index 286ccd77..b86f7920 100644
--- a/emper/include/meson.build
+++ b/emper/include/meson.build
@@ -1,14 +1,33 @@
 emper_include = include_directories('.')
 
-emper_version_h = custom_target(
-  'emper-version.h',
-  output: 'emper-version.h',
-  command: [
-	'@CURRENT_SOURCE_DIR@/generateVersionHeader.sh',
-	'generate',
-	meson.project_version(),
-	'@OUTPUT@',
-	'@SOURCE_DIR@',
-  ]
-)
+versionHeaderScript = find_program('generateVersionHeader.sh')
+
+meson_version = meson.version().split('.')
+major = meson_version[0].to_int()
+minor = meson_version[1].to_int()
+if major > 0 or minor > 56
+	emper_version_h = custom_target(
+		'emper-version.h',
+		output: 'emper-version.h',
+		command: [
+			versionHeaderScript,
+			'generate',
+			meson.project_version(),
+			'@OUTPUT@',
+			meson.project_source_root(),
+		]
+	)
+else
+	emper_version_h = custom_target(
+		'emper-version.h',
+		output: 'emper-version.h',
+		command: [
+			versionHeaderScript,
+			'generate',
+			meson.project_version(),
+			'@OUTPUT@',
+			'@SOURCE_DIR@',
+		]
+	)
+endif
 emper_generated_files += emper_version_h
-- 
GitLab