summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Ivlev <tomskside@gmail.com>2018-10-05 17:41:02 +0700
committerJames Zern <jzern@google.com>2018-10-08 16:02:12 -0700
commiteee00b662781abe7d45610cc5847438224db8c6b (patch)
treed067559dbd996e3e2bb8d0445a301212d07427f0
parent5c395f1d71f8e753a23f1e256544bf96cb349e3e (diff)
downloadlibwebp-eee00b662781abe7d45610cc5847438224db8c6b.tar.gz
- install pkg-config files during the CMake build
Signed-off-by: Konstantin Ivlev <tomskside@gmail.com> Change-Id: I88b1a22b19dd9ecdb2ae38082fa9580dbc66d98c
-rw-r--r--CMakeLists.txt29
1 files changed, 29 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ed1f432..ccd1b48b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,6 +41,12 @@ if(WEBP_ENABLE_SWAP_16BIT_CSP)
add_definitions(-DWEBP_SWAP_16BIT_CSP=1)
endif()
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(exec_prefix "\$\{prefix\}")
+set(libdir "\$\{prefix\}/lib")
+set(includedir "\$\{prefix\}/include")
+set(PTHREAD_LIBS ${CMAKE_THREAD_LIBS_INIT})
+
# ##############################################################################
# Android only.
if(ANDROID)
@@ -57,6 +63,23 @@ else()
set(HAVE_CPU_FEATURES_H 0)
endif()
+function(configure_pkg_config FILE)
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/${FILE}")
+
+ if(HAVE_MATH_LIBRARY)
+ # MSVC doesn't have libm
+ file(READ ${CMAKE_CURRENT_BINARY_DIR}/${FILE} data)
+ string(REPLACE "-lm" "" data ${data})
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${FILE} ${data})
+ endif()
+
+ install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/${FILE}"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+endfunction()
+
# ##############################################################################
# WebP source files. Read the Makefile.am to get the source files.
@@ -151,6 +174,8 @@ set_target_properties(
PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/webp/decode.h;\
${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h")
+configure_pkg_config("src/libwebpdecoder.pc")
+
# Build the webp library.
add_library(webpencode OBJECT ${WEBP_ENC_SRCS})
target_include_directories(webpencode
@@ -197,6 +222,7 @@ set_target_properties(webpdecode
webpdsp
webputils
PROPERTIES POSITION_INDEPENDENT_CODE ON)
+configure_pkg_config("src/libwebp.pc")
# Build the webp demux library.
add_library(webpdemux ${WEBP_DEMUX_SRCS})
@@ -212,6 +238,8 @@ ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/demux.h;\
${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux_types.h;\
${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h")
+configure_pkg_config("src/demux/libwebpdemux.pc")
+
# Set the version numbers.
function(parse_version FILE NAME VAR)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/${FILE} SOURCE_FILE)
@@ -367,6 +395,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux_types.h;\
${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h;")
set_target_properties(libwebpmux PROPERTIES OUTPUT_NAME webpmux)
list(APPEND INSTALLED_LIBRARIES libwebpmux)
+ configure_pkg_config("src/mux/libwebpmux.pc")
endif()
if(WEBP_BUILD_GIF2WEBP)