pan_bindings 1.0.11

FFI bindings for the SCION PAN Path Aware Networking library


#todo 'cargo test'

set( RUST_BINDINGS bindings.rs )

set(SOURCES
  build.rs
  Cargo.toml 
  src/lib.rs 
  wrapper.h
 )


add_custom_target(pan-crate ALL DEPENDS  
pan pan_cpp
${RUST_BINDINGS}
)

set(CARGO_FLAGS "-vv")


#if( CARGO_BUILD)
#list(APPEND CARGO_FLAGS "--target-dir ../target" )
#endif()

if( BUILD_EXAMPLES)
list(APPEND CARGO_FLAGS "--examples" )
endif()

add_custom_command(
    OUTPUT ${RUST_BINDINGS}
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMAND cargo build ${CARGO_FLAGS}# --release
    DEPENDS ${SOURCES}
)

file(GLOB_RECURSE ACTUAL_BINDINGS
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/target"

bindings.rs #apparently cmake cant match out/bindings.rs :(

)

#message(STATUS "actual-bindings: ${ACTUAL_BINDINGS}")

#list(GET ACTUAL_BINDINGS 1 TRUE_BINDINGS) # how to select the newest one of all the candidates here ??

#message(STATUS "${TRUE_BINDINGS}")

#get_filename_component(ABSOLUTE_BINDING "${TRUE_BINDINGS}"
#                       ABSOLUTE 
#                       BASE_DIR  "${CMAKE_CURRENT_SOURCE_DIR}/target"                       
#                       )

#message(STATUS ${ABSOLUTE_BINDING}) 



#file(COPY_FILE  "${ABSOLUTE_BINDING}"
# "${CMAKE_CURRENT_SOURCE_DIR}/src/bindings.rs" )

# target_compile_definitions(pan-crate PRIVATE BUILDING_RUST )