freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Time for a new FreeType release


From: Nikolaus Waxweiler
Subject: Re: [ft-devel] Time for a new FreeType release
Date: Tue, 3 Apr 2018 00:51:46 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

Actually, regarding ftconfig.h generation. There are two files (plus two more for Amiga and VMS...):

./include/freetype/config/ftconfig.h
./builds/unix/ftconfig.in

The first is called "ANSI-specific configuration file", the second "UNIX [...]". Why are there two files? The configure/Makefile system seems to always install the second on Linux. Why do we need the first then, for everything else? There are various #define differences between the two -- is this... intended? What would it take to unify the config.h files for all platforms?

Is it necessary to have HAVE_UNISTD_H, HAVE_FCNTL_H and HAVE_STDINT_H #define'd in ftconfig.h (I know the Makefiles do this) or would this suffice:
```
if (UNIX)
  if (HAVE_UNISTD_H)
    target_compile_definitions(freetype PRIVATE HAVE_UNISTD_H=1)
  endif ()
  if (HAVE_FCNTL_H)
    target_compile_definitions(freetype PRIVATE HAVE_FCNTL_H=1)
  endif ()
  if (HAVE_STDINT_H)
    target_compile_definitions(freetype PRIVATE HAVE_STDINT_H=1)
  endif ()
endif ()
```

Also, CMake comes with the configure_file() command[1], which substitutes ${VAR} or @VAR@ with stuff or (un)defines things with #cmakedefine. We can't really use it here because the ftconfig.* files don't contain variables to expand. I guess because we aren't using the (full) Autotools stack? I'd like to have one config.h for all platforms that I can fill in from all build systems.

Also also, do we still need the macOS Framework stuff? Is it maybe redundant in later versions?


[1]: https://cmake.org/cmake/help/v3.11/command/configure_file.html



reply via email to

[Prev in Thread] Current Thread [Next in Thread]