diff mbox series

[v4,02/12] meson: Allow optional target/${ARCH}/Kconfig

Message ID 20200929224355.1224017-3-philmd@redhat.com
State New
Headers show
Series Support disabling TCG on ARM (part 2) | expand

Commit Message

Philippe Mathieu-Daudé Sept. 29, 2020, 10:43 p.m. UTC
Extend the generic Meson script to pass optional target Kconfig
file to the minikconf script.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
We could use fs.exists() but is_file() is more specific
(can not be a directory).

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Claudio Fontana <cfontana@suse.de>
---
 meson.build | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Claudio Fontana Sept. 30, 2020, 12:50 p.m. UTC | #1
On 9/30/20 12:43 AM, Philippe Mathieu-Daudé wrote:
> Extend the generic Meson script to pass optional target Kconfig

> file to the minikconf script.

> 

> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---

> We could use fs.exists() but is_file() is more specific

> (can not be a directory).

> 

> Cc: Paolo Bonzini <pbonzini@redhat.com>

> Cc: Claudio Fontana <cfontana@suse.de>

> ---

>  meson.build | 8 +++++++-

>  1 file changed, 7 insertions(+), 1 deletion(-)

> 

> diff --git a/meson.build b/meson.build

> index d36dd085b5..9ab5d514d7 100644

> --- a/meson.build

> +++ b/meson.build

> @@ -529,6 +529,7 @@ kconfig_external_symbols = [

>  ]

>  ignored = ['TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_DIRS']

>  

> +fs = import('fs')

>  foreach target : target_dirs

>    config_target = keyval.load(meson.current_build_dir() / target / 'config-target.mak')

>  

> @@ -569,8 +570,13 @@ foreach target : target_dirs

>      endforeach

>  

>      config_devices_mak = target + '-config-devices.mak'

> +    target_kconfig = 'target' / config_target['TARGET_BASE_ARCH'] / 'Kconfig'

> +    minikconf_input = ['default-configs' / target + '.mak', 'Kconfig']

> +    if fs.is_file(target_kconfig)

> +      minikconf_input += [target_kconfig]

> +    endif

>      config_devices_mak = configure_file(

> -      input: ['default-configs' / target + '.mak', 'Kconfig'],

> +      input: minikconf_input,

>        output: config_devices_mak,

>        depfile: config_devices_mak + '.d',

>        capture: true,

> 


I can't say I understand it, but the general idea seems right to me.

Ciao,

Claudio
Richard Henderson Oct. 3, 2020, 9:13 a.m. UTC | #2
On 9/29/20 5:43 PM, Philippe Mathieu-Daudé wrote:
> +++ b/meson.build

> @@ -529,6 +529,7 @@ kconfig_external_symbols = [

>  ]

>  ignored = ['TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_DIRS']

>  

> +fs = import('fs')


Note that I have this in the capstone update, and I placed it closer to the top
of the file with some other imports.


>  foreach target : target_dirs

>    config_target = keyval.load(meson.current_build_dir() / target / 'config-target.mak')

>  

> @@ -569,8 +570,13 @@ foreach target : target_dirs

>      endforeach

>  

>      config_devices_mak = target + '-config-devices.mak'

> +    target_kconfig = 'target' / config_target['TARGET_BASE_ARCH'] / 'Kconfig'

> +    minikconf_input = ['default-configs' / target + '.mak', 'Kconfig']

> +    if fs.is_file(target_kconfig)


Missing a meson.current_source_dir()?
Leastwise that was a comment that Paolo had for me.


r~
Paolo Bonzini Oct. 3, 2020, 9:15 a.m. UTC | #3
On 03/10/20 11:13, Richard Henderson wrote:
>> +    target_kconfig = 'target' / config_target['TARGET_BASE_ARCH'] / 'Kconfig'

>> +    minikconf_input = ['default-configs' / target + '.mak', 'Kconfig']

>> +    if fs.is_file(target_kconfig)

> Missing a meson.current_source_dir()?

> Leastwise that was a comment that Paolo had for me.


Not sure, but it was the only way I thought the BSD build could fail;
unless the capstone submodule really was not present in Peter's checkout
and submodule update was disabled.

Paolo
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index d36dd085b5..9ab5d514d7 100644
--- a/meson.build
+++ b/meson.build
@@ -529,6 +529,7 @@  kconfig_external_symbols = [
 ]
 ignored = ['TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_DIRS']
 
+fs = import('fs')
 foreach target : target_dirs
   config_target = keyval.load(meson.current_build_dir() / target / 'config-target.mak')
 
@@ -569,8 +570,13 @@  foreach target : target_dirs
     endforeach
 
     config_devices_mak = target + '-config-devices.mak'
+    target_kconfig = 'target' / config_target['TARGET_BASE_ARCH'] / 'Kconfig'
+    minikconf_input = ['default-configs' / target + '.mak', 'Kconfig']
+    if fs.is_file(target_kconfig)
+      minikconf_input += [target_kconfig]
+    endif
     config_devices_mak = configure_file(
-      input: ['default-configs' / target + '.mak', 'Kconfig'],
+      input: minikconf_input,
       output: config_devices_mak,
       depfile: config_devices_mak + '.d',
       capture: true,