cmake: make headers optional

This commit is contained in:
d2weber
2026-06-18 08:14:12 +02:00
parent 772b0a6a6a
commit ff15e02bd5

View File

@@ -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()