Add pkg-config metadata files for libraries (#2680)

Should core, ext, libm, and/or port libraries be properly installed
on some system, help compilation and linking against them by
providing standard `.pc` files, which can be picked up by
pkg-config.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
Akos Kiss
2019-01-21 09:38:05 +01:00
committed by Robert Sipka
parent 67ef396354
commit 77767c2161
9 changed files with 77 additions and 0 deletions
+8
View File
@@ -276,14 +276,22 @@ target_compile_definitions(${JERRY_CORE_NAME} PUBLIC ${DEFINES_JERRY})
target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE_PUBLIC})
target_include_directories(${JERRY_CORE_NAME} PRIVATE ${INCLUDE_CORE_PRIVATE})
set(JERRY_CORE_PKGCONFIG_REQUIRES)
set(JERRY_CORE_PKGCONFIG_LIBS)
if(JERRY_LIBM)
target_link_libraries(${JERRY_CORE_NAME} jerry-libm)
set(JERRY_CORE_PKGCONFIG_REQUIRES libjerry-libm)
endif()
separate_arguments(EXTERNAL_LINK_LIBS)
foreach(EXT_LIB ${EXTERNAL_LINK_LIBS})
target_link_libraries(${JERRY_CORE_NAME} ${EXT_LIB})
set(JERRY_CORE_PKGCONFIG_LIBS "${JERRY_CORE_PKGCONFIG_LIBS} -l${EXT_LIB}")
endforeach()
configure_file(libjerry-core.pc.in libjerry-core.pc @ONLY)
install(TARGETS ${JERRY_CORE_NAME} DESTINATION lib)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjerry-core.pc DESTINATION lib/pkgconfig)
install(DIRECTORY ${INCLUDE_CORE_PUBLIC}/ DESTINATION include)
+12
View File
@@ -0,0 +1,12 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libjerry-core
Description: JerryScript: lightweight JavaScript engine (core engine library)
URL: https://github.com/pando-project/jerryscript
Version: 1.0
Requires.private: @JERRY_CORE_PKGCONFIG_REQUIRES@ # NOTE: libjerry-port-default* is not added as a required package
Libs: -L${libdir} -ljerry-core
Libs.private: @JERRY_CORE_PKGCONFIG_LIBS@
Cflags: -I${includedir}
+6
View File
@@ -47,9 +47,15 @@ target_include_directories(${JERRY_EXT_NAME} PRIVATE ${INCLUDE_EXT_PRIVATE})
target_compile_definitions(${JERRY_EXT_NAME} PUBLIC ${DEFINES_EXT})
target_link_libraries(${JERRY_EXT_NAME} jerry-core)
set(JERRY_EXT_PKGCONFIG_LIBS)
if(USING_MSVC AND FEATURE_DEBUGGER)
target_link_libraries(${JERRY_EXT_NAME} ws2_32)
set(JERRY_EXT_PKGCONFIG_LIBS -lws2_32)
endif()
configure_file(libjerry-ext.pc.in libjerry-ext.pc @ONLY)
install(TARGETS ${JERRY_EXT_NAME} DESTINATION lib)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjerry-ext.pc DESTINATION lib/pkgconfig)
install(DIRECTORY ${INCLUDE_EXT_PUBLIC}/ DESTINATION include)
+12
View File
@@ -0,0 +1,12 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libjerry-ext
Description: JerryScript: lightweight JavaScript engine (extensions library)
URL: https://github.com/pando-project/jerryscript
Version: 1.0
Requires.private: libjerry-core
Libs: -L${libdir} -ljerry-ext
Libs.private: @JERRY_EXT_PKGCONFIG_LIBS@
Cflags: -I${includedir}
+3
View File
@@ -36,5 +36,8 @@ set_property(TARGET ${JERRY_LIBM_NAME}
target_include_directories(${JERRY_LIBM_NAME} PUBLIC ${INCLUDE_LIBM})
configure_file(libjerry-libm.pc.in libjerry-libm.pc @ONLY)
install(TARGETS ${JERRY_LIBM_NAME} DESTINATION lib)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjerry-libm.pc DESTINATION lib/pkgconfig)
install(DIRECTORY ${INCLUDE_LIBM}/ DESTINATION include/jerry-libm)
+10
View File
@@ -0,0 +1,10 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/lib
includedir=${prefix}/include/jerry-libm
Name: libjerry-libm
Description: JerryScript: lightweight JavaScript engine (minimal math library)
URL: https://github.com/pando-project/jerryscript
Version: 1.0
Libs: -L${libdir} -ljerry-libm
Cflags: -I${includedir}
+4
View File
@@ -64,5 +64,9 @@ endforeach()
target_compile_definitions(${JERRY_PORT_DEFAULT_NAME}-minimal PRIVATE DISABLE_EXTRA_API)
# Installation
configure_file(libjerry-port-default.pc.in libjerry-port-default.pc @ONLY)
configure_file(libjerry-port-default-minimal.pc.in libjerry-port-default-minimal.pc @ONLY)
install(TARGETS ${JERRY_PORT_DEFAULT_NAME} ${JERRY_PORT_DEFAULT_NAME}-minimal DESTINATION lib)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjerry-port-default.pc ${CMAKE_CURRENT_BINARY_DIR}/libjerry-port-default-minimal.pc DESTINATION lib/pkgconfig)
install(DIRECTORY ${INCLUDE_PORT_DEFAULT}/ DESTINATION include)
@@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libjerry-port-default-minimal
Description: JerryScript: lightweight JavaScript engine (default minimal port library)
URL: https://github.com/pando-project/jerryscript
Version: 1.0
Conflicts: libjerry-port-default
Libs: -L${libdir} -ljerry-port-default-minimal
Cflags: -I${includedir}
@@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libjerry-port-default
Description: JerryScript: lightweight JavaScript engine (default port library)
URL: https://github.com/pando-project/jerryscript
Version: 1.0
Conflicts: libjerry-port-default-minimal
Libs: -L${libdir} -ljerry-port-default
Cflags: -I${includedir}