Commit Graph

3 Commits

Author SHA1 Message Date
Rafael Kitover
5fe5e5d6d7 packaging support improvements
This grew out of my work creating an sfml port for macports, but should
be helpful for package maintainers of various distributions:

* add an SFML_USE_SYSTEM_DEPS option to ignore everything in extlibs/
  except for headers/stb_image, and use the system versions

* install pkg-config files if a pkg-config program is found
  and either lib/pkgconfig or libdata/pkgconfig exists under the
  INSTALL_PREFIX, or the SFML_INSTALL_PKGCONFIG_FILES flag is set
  explicitly

* install pkg-config files for static libs too, add the necessary
  Requires.private and Libs.private entries to the .pc files to support
  static linking

* on OS X, honor all INSTALL_NAME and RPATH related cmake variables and
  only set the INSTALL_NAME_DIR to "@rpath" if none of them is set, this
  preserves the default behavior of using @rpath but also allows
  overriding by the usual cmake mechanisms
2017-02-28 10:03:14 +01:00
Alex Charron
655a4dc33d Added dependencies to pkg-config files. 2012-08-02 12:05:27 -04:00
John Bartholomew
2ac7653608 Add pkg-config files, optionally installed by CMake on Linux builds.
The modules provided are:

  - sfml-system
  - sfml-graphics
  - sfml-window
  - sfml-audio
  - sfml-network
  - sfml-all (depends on all the above modules)

They are installed to ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig/
which is the standard location for pkg-config files on Linux.

An example use if using autotools:

    # configure.ac
    AC_INIT([sfml-example],[1.0],[example@example.com])
    AM_INIT_AUTOMAKE([foreign])
    AC_PROG_CXX
    PKG_CHECK_MODULES([sfml],
        [sfml-all >= 2.0.0],
        [], [AC_MSG_ERROR([SFML is required])])
    AC_CONFIG_FILES([Makefile])
    AC_OUTPUT

    # Makefile.am
    bin_PROGRAMS = sfml_example
    sfml_example_SOURCES = src/sfml_example.cpp
    sfml_example_CFLAGS = $(sfml_CFLAGS)
    sfml_example_LIBS = $(sfml_LIBS)

An example if using hand-written Makefiles:

    # Makefile
    sfml-example: src/sfml-example.cpp
        g++ `pkg-config --cflags --libs sfml-all` -o $@ $^
2012-01-10 21:08:20 +00:00