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 $@ $^
This commit is contained in:
John Bartholomew 2012-01-10 21:08:20 +00:00
parent adca58059c
commit 2ac7653608
7 changed files with 85 additions and 0 deletions

View File

@ -127,6 +127,26 @@ if(MACOSX)
endif() endif()
endif() endif()
if(LINUX)
if(BUILD_SHARED_LIBS)
sfml_set_option(INSTALL_PKGCONFIG_FILES TRUE BOOL "TRUE to automatically install pkg-config files so other projects can find SFML")
if(INSTALL_PKGCONFIG_FILES)
foreach(sfml_module IN ITEMS all system window graphics audio network)
CONFIGURE_FILE(
"tools/pkg-config/sfml-${sfml_module}.pc.in"
"tools/pkg-config/sfml-${sfml_module}.pc"
@ONLY)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/tools/pkg-config/sfml-${sfml_module}.pc"
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig")
endforeach()
endif()
else()
if(INSTALL_PKGCONFIG_FILES)
message(WARNING "No pkg-config files are provided for the static SFML libraries (INSTALL_PKGCONFIG_FILES will be ignored).")
endif()
endif()
endif()
# add the subdirectories # add the subdirectories
add_subdirectory(src/SFML) add_subdirectory(src/SFML)
if(BUILD_EXAMPLES) if(BUILD_EXAMPLES)

View File

@ -0,0 +1,10 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-all
Description: The Simple and Fast Multimedia Library, all modules.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Requires: sfml-system, sfml-window, sfml-graphics, sfml-audio, sfml-network

View File

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-audio
Description: The Simple and Fast Multimedia Library, audio module.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Libs: -L${libdir} -lsfml-audio
Cflags: -I${includedir}

View File

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-graphics
Description: The Simple and Fast Multimedia Library, graphics module.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Libs: -L${libdir} -lsfml-graphics
Cflags: -I${includedir}

View File

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-network
Description: The Simple and Fast Multimedia Library, network module.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Libs: -L${libdir} -lsfml-network
Cflags: -I${includedir}

View File

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-system
Description: The Simple and Fast Multimedia Library, system module.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Libs: -L${libdir} -lsfml-system
Cflags: -I${includedir}

View File

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib@LIB_SUFFIX@
includedir=${prefix}/include
Name: SFML-window
Description: The Simple and Fast Multimedia Library, window module.
URL: http://www.sfml-dev.org
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
Libs: -L${libdir} -lsfml-window
Cflags: -I${includedir}