@eli-schwartz commented on this pull request.


In doc/meson.build:

> +    dep_doxygen = declare_dependency(sources: ['plugins.dox',
+                                               'pluginsignals.c',
+                                               'pluginsymbols.c',
+                                               'stash-example.c',
+                                               'stash-gui-example.c'])
+
+    custom_target('doxygen.stamp',
+                  input: dox,
+                  output: ['doxygen.stamp'],
+                  command: [doxygen, '@INPUT@', '&&', 'touch', '@OUTPUT@'],
+                  depends: libgeany,
+                  build_by_default: true)
+    doxy_xml = custom_target('doxygen-gi.stamp',
+                             input: doxgi,
+                             output: ['doxygen-gi.stamp'],
+                             command: [doxygen, '@INPUT@', '&&', 'touch', '@OUTPUT@'],

Please do not pass arguments by embedding them inside a shell script. There is no shellquote('@OUTPUT@'), you cannot guarantee it has a shell-safe name like that.

Instead, use

command: [sh, '-c', 'doxygen "$1" && touch "$2"', '_argv0', '@INPUT@', '@OUTPUT@'],

Which will safely pass the filenames as command line arguments, and allow the shell to reference those filenames using variables, since variables can be safely quoted regardless of their content.

This also means that meson has a much more accurate understanding of how to replace those strings.

Specifically, you cannot replace both INPUT and OUTPUT in the same string. mesonbuild/meson#1864


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/pull/2761/review/860387876@github.com>