mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
build: add pkg-config support
The CMake build script now generates a simple pkg-config files that can be easily used by non-CMake users. The file is generated from a template file that gets filled in at configure time. As CMake doesn't have anything similar to Meson's pkg-config generator the file is quite static, i.e. new simdjson public defines/dependencies won't be picked up automatically. This approach also suffers from one minor issue, mentioned in [jtojnar/cmake-snips][]; in short, it doesn't work well when users specify CMAKE_INSTALL_INCLUDEDIR and similar as absolute paths. It's not a big deal, and it will easily fixable once you'll require CMake >=3.20. Fixes #1763 [jtojnar/cmake-snips]: https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
This commit is contained in:
@@ -152,6 +152,20 @@ install(
|
||||
COMPONENT example_Development
|
||||
)
|
||||
|
||||
# pkg-config
|
||||
if(SIMDJSON_ENABLE_THREADS)
|
||||
set(PKGCONFIG_CFLAGS "-DSIMDJSON_THREADS_ENABLED=1")
|
||||
if(CMAKE_THREAD_LIBS_INIT)
|
||||
set(PKGCONFIG_LIBS_PRIVATE "Libs.private: ${CMAKE_THREAD_LIBS_INIT}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file("simdjson.pc.in" "simdjson.pc" @ONLY)
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/simdjson.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
|
||||
)
|
||||
|
||||
#
|
||||
# CPack
|
||||
#
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
||||
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
|
||||
Name: @PROJECT_NAME@
|
||||
Description: @PROJECT_DESCRIPTION@
|
||||
URL: @PROJECT_HOMEPAGE_URL@
|
||||
Version: @PROJECT_VERSION@
|
||||
Cflags: -I${includedir} @PKGCONFIG_CFLAGS@
|
||||
Libs: -L${libdir} -l@PROJECT_NAME@
|
||||
@PKGCONFIG_LIBS_PRIVATE@
|
||||
Reference in New Issue
Block a user