Skip to content

Commit 4fd00f4

Browse files
Merge #1422: cmake: Install libsecp256k1.pc file
421d848 ci: Align Autotools/CMake `CI_INSTALL` directory names (Hennadii Stepanov) 9f005c6 cmake: Install `libsecp256k1.pc` file (Hennadii Stepanov) Pull request description: This PR allows downstream projects to use pkg-config to search for the libsecp256k1 library that is built with CMake. Addressed #1419 (comment): > We could just ship the pkg-config file also in CMake builds. ACKs for top commit: real-or-random: ACK 421d848 I compared the generated pc files and they match in autotools and CMake Tree-SHA512: 8e54eb7c76bc727ab18715258c06cc2a419c6c04892a2bd7bfe34392f9a3223f673ff84d2d21b00b3c222b357f02296ec49c872532d98ea0a2f17ef1ed6b6ac1
2 parents b10ddd2 + 421d848 commit 4fd00f4

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,7 @@ jobs:
792792

793793
- name: Check installation with Autotools
794794
env:
795-
CI_INSTALL: ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}
795+
CI_INSTALL: ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}/install
796796
run: |
797797
./autogen.sh && ./configure --prefix=${{ env.CI_INSTALL }} && make clean && make install && ls -RlAh ${{ env.CI_INSTALL }}
798798
gcc -o ecdsa examples/ecdsa.c $(PKG_CONFIG_PATH=${{ env.CI_INSTALL }}/lib/pkgconfig pkg-config --cflags --libs libsecp256k1) -Wl,-rpath,"${{ env.CI_INSTALL }}/lib" && ./ecdsa

cmake/GeneratePkgConfigFile.cmake

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function(generate_pkg_config_file in_file)
2+
set(prefix ${CMAKE_INSTALL_PREFIX})
3+
set(exec_prefix \${prefix})
4+
set(libdir \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
5+
set(includedir \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
6+
set(PACKAGE_VERSION ${PROJECT_VERSION})
7+
configure_file(${in_file} ${PROJECT_NAME}.pc @ONLY)
8+
endfunction()

src/CMakeLists.txt

+9-1
Original file line numberDiff line numberDiff line change
@@ -161,5 +161,13 @@ if(SECP256K1_INSTALL)
161161
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
162162
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
163163
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
164-
)
164+
)
165+
166+
include(GeneratePkgConfigFile)
167+
generate_pkg_config_file(${PROJECT_SOURCE_DIR}/libsecp256k1.pc.in)
168+
install(
169+
FILES
170+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
171+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
172+
)
165173
endif()

0 commit comments

Comments
 (0)