Commit badf36a3 authored by Marcin Serwin's avatar Marcin Serwin Committed by David Reid

Generate and install pkg-config file

Signed-off-by: default avatarMarcin Serwin <marcin@serwin.dev>
parent c9d288c3
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(miniaudio project(miniaudio
VERSION 0.11 VERSION 0.11.22
) )
...@@ -588,12 +588,15 @@ function(is_backend_enabled NAME) ...@@ -588,12 +588,15 @@ function(is_backend_enabled NAME)
endif() endif()
endfunction() endfunction()
set(LINKED_LIBS)
if(MINIAUDIO_NO_RUNTIME_LINKING) if(MINIAUDIO_NO_RUNTIME_LINKING)
is_backend_enabled(PULSEAUDIO) is_backend_enabled(PULSEAUDIO)
if (PULSEAUDIO_ENABLED) if (PULSEAUDIO_ENABLED)
find_package(PulseAudio REQUIRED) find_package(PulseAudio REQUIRED)
target_link_libraries(miniaudio PRIVATE ${PULSEAUDIO_LIBRARY}) target_link_libraries(miniaudio PRIVATE ${PULSEAUDIO_LIBRARY})
target_include_directories(miniaudio SYSTEM PRIVATE ${PULSEAUDIO_INCLUDE_DIR}) target_include_directories(miniaudio SYSTEM PRIVATE ${PULSEAUDIO_INCLUDE_DIR})
list(APPEND LINKED_LIBS libpulse)
endif() endif()
is_backend_enabled(ALSA) is_backend_enabled(ALSA)
...@@ -615,6 +618,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING) ...@@ -615,6 +618,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING)
target_link_libraries(miniaudio PRIVATE ${ALSA_LIBRARY}) target_link_libraries(miniaudio PRIVATE ${ALSA_LIBRARY})
target_include_directories(miniaudio PRIVATE ${ALSA_INCLUDE_DIR}) target_include_directories(miniaudio PRIVATE ${ALSA_INCLUDE_DIR})
list(APPEND LINKED_LIBS alsa)
endif() endif()
is_backend_enabled(SNDIO) is_backend_enabled(SNDIO)
...@@ -630,6 +634,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING) ...@@ -630,6 +634,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING)
HINTS ${PC_SNDIO_LIBRARY_DIRS} HINTS ${PC_SNDIO_LIBRARY_DIRS}
) )
target_link_libraries(miniaudio PRIVATE ${SNDIO_LIBRARY}) target_link_libraries(miniaudio PRIVATE ${SNDIO_LIBRARY})
list(APPEND LINKED_LIBS sndio)
endif() endif()
is_backend_enabled(JACK) is_backend_enabled(JACK)
...@@ -652,6 +657,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING) ...@@ -652,6 +657,7 @@ if(MINIAUDIO_NO_RUNTIME_LINKING)
target_link_libraries(miniaudio PRIVATE ${JACK_LIBRARY}) target_link_libraries(miniaudio PRIVATE ${JACK_LIBRARY})
target_include_directories(miniaudio PRIVATE ${JACK_INCLUDE_DIR}) target_include_directories(miniaudio PRIVATE ${JACK_INCLUDE_DIR})
list(APPEND LINKED_LIBS jack)
endif() endif()
endif() endif()
...@@ -767,6 +773,25 @@ if (MINIAUDIO_BUILD_EXAMPLES) ...@@ -767,6 +773,25 @@ if (MINIAUDIO_BUILD_EXAMPLES)
add_miniaudio_example(miniaudio_simple_spatialization simple_spatialization.c) add_miniaudio_example(miniaudio_simple_spatialization simple_spatialization.c)
endif() endif()
if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
set(MINIAUDIO_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
else()
set(MINIAUDIO_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
endif()
if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
set(MINIAUDIO_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
else()
set(MINIAUDIO_PC_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
endif()
string(JOIN ", " MINIAUDIO_PC_REQUIRES_PRIVATE ${LINKED_LIBS})
list(TRANSFORM COMMON_LINK_LIBRARIES PREPEND "-l")
string(JOIN " " MINIAUDIO_PC_LIBS_PRIVATE ${COMMON_LINK_LIBRARIES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/miniaudio.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/miniaudio.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/miniaudio.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
message(STATUS "Library list: ${LIBS_TO_INSTALL}") message(STATUS "Library list: ${LIBS_TO_INSTALL}")
install(TARGETS ${LIBS_TO_INSTALL} install(TARGETS ${LIBS_TO_INSTALL}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
......
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
includedir=@MINIAUDIO_PC_INCLUDEDIR@
libdir=@MINIAUDIO_PC_LIBDIR@
Name: miniaudio
Description: An audio playback and capture library.
URL: https://miniaud.io/
License: Unlicense OR MIT-0
Version: @PROJECT_VERSION@
Requires.private: @MINIAUDIO_PC_REQUIRES_PRIVATE@
Cflags: -I${includedir} @MINIAUDIO_PC_CFLAGS@
Libs: -L${libdir} -lminiaudio
Libs.private: @MINIAUDIO_PC_LIBS_PRIVATE@
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment