1
0
Fork 0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-05-28 05:26:04 +02:00

Make blake3 C library usable as meson subproject

The meson build system[1] support subprojects - a way to use another
project in your build. The blake3 C library can be used like this, but
meson requires that the subproject root directory has either
`meson.build` (for meson projects) or `CMakeLists.txt` (meson can build
cmake projects).

Add `CMakeLists.txt` in the root directory with the project info,
including the `c` subdirectory. With this you can add blake3 as
subproject to a meson project.

Example wrap file (using test release from my fork):

    % cat subprojects/blake3.wrap
    [wrap-file]
    directory = BLAKE3-1.4.1-cmake
    source_url = https://github.com/nirs/BLAKE3/archive/refs/tags/1.4.1-cmake.tar.gz
    source_filename = BLAKE3-1.4.1-cmake.tar.gz
    source_hash = 6c6f053ede700d76d12a7ced7bbd640e7a47f97122fe4cbe718aa9406251d043

With this wrap file, you can use blake3 in your meson project[2] like this:

    % cat meson.build
    project('blake3-meson', 'c', default_options: ['buildtype=release'])
    cmake = import('cmake')
    blake3_subproj = cmake.subproject('blake3')
    blake3_dep = blake3_subproj.dependency('blake3')
    executable(example, ['example.c'], dependencies: blake3_dep)

[1] https://mesonbuild.com/
[2] https://github.com/nirs/blake3-meson
This commit is contained in:
Nir Soffer 2023-06-17 04:22:29 +03:00 committed by Nir Soffer
parent 5aa53f07f7
commit 8c7ccb424c
3 changed files with 13 additions and 11 deletions

View File

@ -331,6 +331,6 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: CMake generation
run: cmake -S c -B c/build -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/target
run: cmake -S . -B build -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/target
- name: CMake build / install
run: cmake --build c/build --target install
run: cmake --build build --target install

10
CMakeLists.txt Normal file
View File

@ -0,0 +1,10 @@
cmake_minimum_required(VERSION 3.9)
project(libblake3
VERSION 1.5.0
DESCRIPTION "BLAKE3 C implementation"
LANGUAGES C ASM
)
include_directories(c)
add_subdirectory(c)

View File

@ -1,11 +1,3 @@
cmake_minimum_required(VERSION 3.9)
project(libblake3
VERSION 1.5.0
DESCRIPTION "BLAKE3 C implementation"
LANGUAGES C ASM
)
include(FeatureSummary)
include(GNUInstallDirs)
@ -167,7 +159,7 @@ install(FILES
)
configure_file(libblake3.pc.in libblake3.pc @ONLY)
install(FILES "${CMAKE_BINARY_DIR}/libblake3.pc"
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libblake3.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
# print feature summary