mirror of
https://github.com/chatmail/core.git
synced 2026-09-22 04:58:47 +03:00
61 lines
1.8 KiB
CMake
61 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(deltachat LANGUAGES C)
|
|
include(GNUInstallDirs)
|
|
|
|
option(WITH_JSONRPC_BINDINGS "Generate jsonrpc bindings" OFF)
|
|
|
|
find_program(CARGO cargo)
|
|
|
|
if(APPLE)
|
|
set(DYNAMIC_EXT "dylib")
|
|
elseif(UNIX)
|
|
set(DYNAMIC_EXT "so")
|
|
else()
|
|
set(DYNAMIC_EXT "dll")
|
|
endif()
|
|
|
|
if(DEFINED ENV{CARGO_BUILD_TARGET})
|
|
set(CARGO_OUT_DIR "${CMAKE_BINARY_DIR}/target/$ENV{CARGO_BUILD_TARGET}/release")
|
|
else()
|
|
set(CARGO_OUT_DIR "${CMAKE_BINARY_DIR}/target/release")
|
|
endif()
|
|
|
|
if(WITH_JSONRPC_BINDINGS)
|
|
set(JSONRPC_ARGS --package deltachat-jsonrpc-bindings)
|
|
endif()
|
|
|
|
add_custom_target(
|
|
lib_deltachat
|
|
ALL
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E env
|
|
CARGO_TARGET_DIR="${CMAKE_BINARY_DIR}/target"
|
|
PREFIX="${CMAKE_INSTALL_PREFIX}"
|
|
LIBDIR="${CMAKE_INSTALL_FULL_LIBDIR}"
|
|
INCLUDEDIR="${CMAKE_INSTALL_FULL_INCLUDEDIR}"
|
|
${CARGO} build --release --package deltachat_ffi ${JSONRPC_ARGS}
|
|
WORKING_DIRECTORY
|
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
|
)
|
|
|
|
install(FILES "deltachat-ffi/deltachat.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
|
install(FILES "${CARGO_OUT_DIR}/libdeltachat.a" DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
install(FILES "${CARGO_OUT_DIR}/libdeltachat.${DYNAMIC_EXT}" DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
install(FILES "${CARGO_OUT_DIR}/pkgconfig/deltachat.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
|
|
|
if(WITH_JSONRPC_BINDINGS)
|
|
install(
|
|
FILES
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/types.hpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/generated/client.hpp"
|
|
DESTINATION
|
|
"${CMAKE_INSTALL_INCLUDEDIR}/deltachat-jsonrpc/generated"
|
|
)
|
|
install(
|
|
FILES
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/deltachat-jsonrpc-bindings/qt/deltachat-jsonrpc/cffi_client.hpp"
|
|
DESTINATION
|
|
"${CMAKE_INSTALL_INCLUDEDIR}/deltachat-jsonrpc"
|
|
)
|
|
endif()
|