Age | Commit message (Collapse) | Author | Files | Lines |
|
cairo and sigc++ can be subprojects of cairomm.
|
|
This makes the built DLL and .lib's contain the toolset version if
the build is carried out using Visual Studio 2017 or later, unless
the 'msvc14x-parallel-installable' option is set to be false during
configuration.
The reasoning behind this change is that there may be subtle problems
when, for instance, one tries to link to a Visual Studio 2017-built
cairomm with Visual Studio 2019. This is unfortunate as Microsoft
did try hard to make interoperating between binaries built with Visual
Studio 2017 and 2019 as easy as possible in terms of ABI and API, but
unfortunately this may hit the corner cases where this compatibility
does not work.
As the name suggests, this attempts to make Visual Studio 2017
and 2019 builds share a single set of underlying C DLLs easier,
while avoiding possible breakages caused by such subtle differences.
|
|
We need to search for the headers and/or functions manually if the pkg-config
files for Cairo are not found.
|
|
We only put Cairo as a required package if Cairo was found via pkg-config, but
if Cairo was found manually, we make the pkg-config file link to the cairo
library directly (-lcairo).
|
|
cairomm can be built with either Autotools or Meson.
Fixes #20
|
|
* configure.ac: Update the call to AC_CONFIG_FILES() with the new file names.
* data/*.pc.in: Don't include the API version (1.16) in the file names.
This makes it easier to change the API name in the future. This is how .pc.in
files are named in libsigc++, glibmm, etc.
The API version is still included in the names of the generated .pc files.
|
|
So we can have one more stable release cycle to get a little new API
out before the (parallel-installing) ABI break.
|
|
|
|
* autogen.sh: Pass --enable-maintainer-mode to ./configure since the
automatic rebuild of the reference documentation is only enabled in
maintainer mode. AM_MAINTAINER_MODE is already in configure.ac.
* configure.ac (AC_CONFIG_HEADERS): Prepend build/config.h to the
list of header files, because the first file in the list has its .in
file generated by autoheader, and will thus include every AC_DEFINE
from every Autoconf macro that is used. The macros defined in the
installed cairommconfig.h header should be namespaced and limited to
meta information about the installed cairomm library.
Also move cairommconfig.h to the top-level directory, in order to
avoid the need to add the cairomm/ subdirectory to the include path.
(PKG_CHECK_MODULES): Collapse the checks for optional cairo modules
into a loop, and use PKG_CHECK_EXISTS() instead of the full-blown
PKG_CHECK_MODULES(). Also, be a bit cleverer about the lists of .pc
files and module names generated along the way.
(AC_CONFIG_FILES): List all potentially installed files literally,
instead of creating the list of output files dynamically. This is
much simpler and also gets us free shipping. Remove data/Makefile.
* cairommconfig.h.in: Add file to repository, as it should not be
autogenerated. Of the content, keep only the CAIROMM_ namespaced
macros.
* cairomm/context*.cc: Remove cairomm/ prefix from cairommconfig.h
include statements. This was already wrong before, but moving the
file around made it visible.
* Makefile.am: Clean up a bit.
(DIST_SUBDIRS): Have Automake figure it out automatically.
(cairomm_include_HEADERS): Remove, as cairomm/cairomm.h is already
installed in cairomm/Makefile.am.
(nodist_cairomm_libinclude_HEADERS): Relocate cairommconfig.h to
the top-level directory.
(nodist_pkgconfig_DATA): Use $(CAIROMM_INSTALL_PC) substitution from
configure.ac to install the appropriate pkg-config data files.
* cairomm/Makefile.am: Rewrite without using compile-binding.am, as
it is not really the appropriate tool for the cairomm job.
* cairomm/filelist.am (cairomm_cc): Rename from $(files_extra_cc).
(cairomm_public_h): Rename variable from $(files_extra_h) and remove
cairommconfig.h from the list.
(cairomm_private_h): Rename variable from $(files_extra_ph).
* docs/Makefile.am (doc_input): Adjust variable names.
(dist_noinst_DATA): Add reference/cairomm.css to the list.
(pubdocbase): Define for completeness.
(htmlrefpub): Correct documentation URL.
* docs/Doxyfile.in: Strip trailing whitespace from every line.
(STRIP_FROM_PATH), (STRIP_FROM_INC_PATH), (INCLUDE_PATH): Do not
strip the cairomm/ subdirectory prefix from the displayed filenames.
(EXCLUDE): Remove list of files to exclude, since the list of input
files is specified explicitly with the new build organization.
(EXPAND_AS_DEFINED): Expand version number macros, although at the
moment they are probably not used anywhere in the public headers.
* data/cairomm-*.pc.in: Use @PACKAGE_VERSION@ instead of @VERSION@.
* data/cairomm-1.0.pc.in (htmlrefpub): Correct documentation URL.
(Cflags): Add missing -I${libdir}/@CAIROMM_MODULE_NAME@/include.
* data/Makefile.am: Delete now unused build file.
* docs/reference/Makefile.am: Delete left-over build file.
|
|
* .gitignore: Add new generated documentation files.
* Makefile.am: Remove old documentation generation build.
* configure.ac:
* docs/reference/Makefile.am: Remove, with switch to non-recursive
documentation build.
* data/cairomm-1.0.pc.in:
* docs/Makefile.am: Switch to new documentation build infrastructure
from mm-common.
* docs/reference/Doxyfile.in: Modernise and disable several unused
features of the Doxygen output.
|
|
|
|
|