<div dir="ltr"><div dir="ltr">On Wed, 19 May 2021 at 16:24, John Emmas <<a href="mailto:john@creativepost.co.uk" target="_blank">john@creativepost.co.uk</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <div>On 19/05/2021 15:50, Emmanuele Bassi
      wrote:</div>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote"><br>
          <div>Yes, it's generated by the `configure` script in
            Autotools, just like Meson.</div>
          <div> <br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
    Ah... in my case I'm building with (my own) Visual C++ build
    projects.  At one time, some libraries could generate VC project
    files either using Meson or CMake but I never really found them
    satisfactory.  Could you maybe attach a copy of config.h so I can at
    least see what kinda stuff it needs to contain?  Thanks,<br></div></blockquote></div><div><br></div><div>The `config.h` file is just a list of `#define FOO` symbols that are discovered at configuration time depending on your platform, like:</div><div><br></div><div>```</div><div>/* Define to 1 if the PS backend can be tested (needs ghostscript) */<br>#define CAIRO_CAN_TEST_PS_SURFACE 1<br><br>/* Define to 1 if the SVG backend can be tested */<br>#define CAIRO_CAN_TEST_SVG_SURFACE 1<br><br>/* Define to 1 if the Win32 Printing backend can be tested (needs ghostscript)<br>   */<br>/* #undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE */<br><br>/* Define to 1 if dlsym is available */<br>#define CAIRO_HAS_DLSYM 1<br><br>/* Define to 1 to enable cairo's cairo-script-interpreter feature */<br>#define CAIRO_HAS_INTERPRETER 1<br><br>/* Define to 1 to enable cairo's pthread feature */<br>#define CAIRO_HAS_PTHREAD 1<br><br>/* Define to 1 if we have full pthread support */<br>#define CAIRO_HAS_REAL_PTHREAD 1<br></div><div>```<br></div><div><br></div><div>If you're using your own build system, unsanctioned by the Cairo project, then I'm afraid you're on your own. The reason why `HAVE_CONFIG_H` was removed was because all the build systems supported by Cairo—i.e. the in tree ones—generated a `config.h`, so there's literally no point in defining `HAVE_CONFIG_H` to guard the `config.h` inclusion.</div><div><br></div><div>Incidentally, if you relied on that to build Cairo, you probably have been building a fairly broken version of it—unless, of course, you've also been injecting symbols like `CAIRO_HAS_DLSYM` or `HAVE_OS_ATOMIC_OPS` or `HAVE_UINT64_T` in your build environment.</div><div><br></div><div>Personally, I'd ask you to use the build system provided by the project you're building, instead of going at it in your own way.<br></div><div><br></div><div>Ciao,</div><div> Emmanuele.<br></div><div><br></div>-- <br><div dir="ltr"><a href="https://www.bassi.io" target="_blank">https://www.bassi.io</a><br>[@] ebassi [@<a href="http://gmail.com" target="_blank">gmail.com</a>]</div></div>