blob: 26da7ff1818806efe41d8b2a1ffcd97df4ba13b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
cmake_minimum_required(VERSION 3.16)
project(bsa_ffi)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CARGO_BUILD_TYPE "debug")
set(CARGO_BUILD_FLAGS "")
else()
set(CARGO_BUILD_TYPE "release")
set(CARGO_BUILD_FLAGS "--release")
endif()
set(BSA_FFI_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(BSA_FFI_LIB ${BSA_FFI_DIR}/target/${CARGO_BUILD_TYPE}/libbsa_ffi.so)
add_custom_command(
OUTPUT ${BSA_FFI_LIB}
COMMAND cargo build ${CARGO_BUILD_FLAGS}
WORKING_DIRECTORY ${BSA_FFI_DIR}
COMMENT "Building BSA FFI library (Rust)"
DEPENDS
${BSA_FFI_DIR}/Cargo.toml
${BSA_FFI_DIR}/src/lib.rs
)
add_custom_target(bsa_ffi_build DEPENDS ${BSA_FFI_LIB})
add_library(bsa_ffi_wrapper INTERFACE)
target_link_libraries(bsa_ffi_wrapper INTERFACE ${BSA_FFI_LIB})
target_include_directories(bsa_ffi_wrapper INTERFACE ${BSA_FFI_DIR}/include)
add_dependencies(bsa_ffi_wrapper bsa_ffi_build)
add_library(mo2::bsa_ffi ALIAS bsa_ffi_wrapper)
install(FILES ${BSA_FFI_LIB} DESTINATION lib)
install(DIRECTORY ${BSA_FFI_DIR}/include/ DESTINATION include)
|