--===============1772795547== Content-Type: multipart/alternative; boundary="00000000000045adc605c2b13502" --00000000000045adc605c2b13502 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 19 May 2021 at 16:24, John Emmas wrote: > On 19/05/2021 15:50, Emmanuele Bassi wrote: > > > Yes, it's generated by the `configure` script in Autotools, just like > Meson. > > > Ah... in my case I'm building with (my own) Visual C++ build projects. A= t > one time, some libraries could generate VC project files either using Mes= on > 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, > The `config.h` file is just a list of `#define FOO` symbols that are discovered at configuration time depending on your platform, like: ``` /* Define to 1 if the PS backend can be tested (needs ghostscript) */ #define CAIRO_CAN_TEST_PS_SURFACE 1 /* Define to 1 if the SVG backend can be tested */ #define CAIRO_CAN_TEST_SVG_SURFACE 1 /* Define to 1 if the Win32 Printing backend can be tested (needs ghostscript) */ /* #undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE */ /* Define to 1 if dlsym is available */ #define CAIRO_HAS_DLSYM 1 /* Define to 1 to enable cairo's cairo-script-interpreter feature */ #define CAIRO_HAS_INTERPRETER 1 /* Define to 1 to enable cairo's pthread feature */ #define CAIRO_HAS_PTHREAD 1 /* Define to 1 if we have full pthread support */ #define CAIRO_HAS_REAL_PTHREAD 1 ``` 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=E2=80=94i.e. t= he in tree ones=E2=80=94generated a `config.h`, so there's literally no point in = defining `HAVE_CONFIG_H` to guard the `config.h` inclusion. Incidentally, if you relied on that to build Cairo, you probably have been building a fairly broken version of it=E2=80=94unless, of course, you've al= so been injecting symbols like `CAIRO_HAS_DLSYM` or `HAVE_OS_ATOMIC_OPS` or `HAVE_UINT64_T` in your build environment. 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. Ciao, Emmanuele. --=20 https://www.bassi.io [@] ebassi [@gmail.com] --00000000000045adc605c2b13502 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Wed, 19 May 2021 at 16:24, John Emmas = <john@creat= ivepost.co.uk> wrote:
=20 =20 =20
On 19/05/2021 15:50, Emmanuele Bassi wrote:

Yes, it's generated by the `configure` script in Autotools, just like Meson.


Ah... in my case I'm building with (my own) Visual C++ build projects.=C2=A0 At one time, some libraries could generate VC project files either using Meson or CMake but I never really found them satisfactory.=C2=A0 Could you maybe attach a copy of config.h so I can = at least see what kinda stuff it needs to contain?=C2=A0 Thanks,
=

The `config.h` file is just a list o= f `#define FOO` symbols that are discovered at configuration time depending= on your platform, like:

```
/* Define t= o 1 if the PS backend can be tested (needs ghostscript) */
#define CAIRO= _CAN_TEST_PS_SURFACE 1

/* Define to 1 if the SVG backend can be test= ed */
#define CAIRO_CAN_TEST_SVG_SURFACE 1

/* Define to 1 if the = Win32 Printing backend can be tested (needs ghostscript)
=C2=A0 =C2=A0*/=
/* #undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE */

/* Define to = 1 if dlsym is available */
#define CAIRO_HAS_DLSYM 1

/* Define to= 1 to enable cairo's cairo-script-interpreter feature */
#define CAI= RO_HAS_INTERPRETER 1

/* Define to 1 to enable cairo's pthread fe= ature */
#define CAIRO_HAS_PTHREAD 1

/* Define to 1 if we have fu= ll pthread support */
#define CAIRO_HAS_REAL_PTHREAD 1
```=

If you're using your own build system, un= sanctioned 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 syst= ems supported by Cairo=E2=80=94i.e. the in tree ones=E2=80=94generated a `c= onfig.h`, so there's literally no point in defining `HAVE_CONFIG_H` to = guard the `config.h` inclusion.

Incidentally, if y= ou relied on that to build Cairo, you probably have been building a fairly = broken version of it=E2=80=94unless, of course, you've also been inject= ing symbols like `CAIRO_HAS_DLSYM` or `HAVE_OS_ATOMIC_OPS` or `HAVE_UINT64_= T` in your build environment.

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.

Ciao= ,
=C2=A0Emmanuele.

--
https://www.bassi.io
[@] ebassi [@
gmail.com= ]
--00000000000045adc605c2b13502-- --===============1772795547== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- cairo mailing list cairo@cairographics.org https://lists.cairographics.org/mailman/listinfo/cairo --===============1772795547==--