From ff15e02bd513133f8bef100b77130488d8410429 Mon Sep 17 00:00:00 2001 From: d2weber <29163905+d2weber@users.noreply.github.com> Date: Thu, 18 Jun 2026 08:14:12 +0200 Subject: [PATCH] cmake: make headers optional --- CMakeLists.txt | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index abab9d5ec..41d89a6c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.16) project(deltachat LANGUAGES C) include(GNUInstallDirs) +option(BUILD_JSONRPC_BINDINGS "Build jsonrpc bindings" OFF) + find_program(CARGO cargo) if(APPLE) @@ -13,12 +15,11 @@ else() endif() if(DEFINED ENV{CARGO_BUILD_TARGET}) - set(ARCH_DIR "$ENV{CARGO_BUILD_TARGET}") + set(CARGO_OUT_DIR "${CMAKE_BINARY_DIR}/target/$ENV{CARGO_BUILD_TARGET}/release") else() - set(ARCH_DIR "./") + set(CARGO_OUT_DIR "${CMAKE_BINARY_DIR}/target/release") endif() -# Keep same env for all cargo calls to enable caching set(CARGO_BUILD ${CMAKE_COMMAND} -E env CARGO_TARGET_DIR="${CMAKE_BINARY_DIR}/target" @@ -28,10 +29,8 @@ set(CARGO_BUILD ${CMAKE_COMMAND} ${CARGO} build --release ) -set(CARGO_OUT_DIR "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release") - add_custom_target( - deltachat_ffi + lib_deltachat ALL COMMAND ${CARGO_BUILD} --package deltachat_ffi @@ -45,19 +44,24 @@ install(FILES "${CARGO_OUT_DIR}/libdeltachat.${DYNAMIC_EXT}" DESTINATION "${CMAK install(FILES "${CARGO_OUT_DIR}/pkgconfig/deltachat.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") -add_custom_target( - deltachat_jsonrpc_bindings - COMMAND - ${CARGO_BUILD} --package deltachat-jsonrpc-bindings - WORKING_DIRECTORY - "${CMAKE_CURRENT_SOURCE_DIR}" -) +if(BUILD_JSONRPC_BINDINGS) + add_custom_target( + jsonrpc_bindings + ALL + COMMAND + ${CARGO_BUILD} --package deltachat-jsonrpc-bindings + WORKING_DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}" + ) -install( - FILES - "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/types.hpp" - "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/client.hpp" - "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/transport.hpp" - DESTINATION - "${CMAKE_INSTALL_INCLUDEDIR}/deltachat-jsonrpc" -) + install( + FILES + "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/types.hpp" + "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/client.hpp" + "${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/transport.hpp" + DESTINATION + "${CMAKE_INSTALL_INCLUDEDIR}/deltachat-jsonrpc" + COMPONENT + jsonrpc_bindings + ) +endif()