use Diplomat for FFI #4

Open
noteuclid wants to merge 4 commits from diplomat into master
3 changed files with 8 additions and 4 deletions
Showing only changes of commit 9742916bd6 - Show all commits

View File

@ -13,4 +13,5 @@ include(diplomat.cmake)
qt_standard_project_setup() qt_standard_project_setup()
add_subdirectory(src)
add_subdirectory(ui) add_subdirectory(ui)

View File

@ -32,7 +32,7 @@ add_custom_target(build_impl
DEPENDS "${impl_basename}.a" DEPENDS "${impl_basename}.a"
) )
add_library(PROJECT_NAME_impl STATIC IMPORTED) add_library(PROJECT_NAME_impl STATIC IMPORTED GLOBAL)
set_target_properties(PROJECT_NAME_impl PROPERTIES set_target_properties(PROJECT_NAME_impl PROPERTIES
IMPORTED_LOCATION "${impl_basename}.a" IMPORTED_LOCATION "${impl_basename}.a"
@ -48,11 +48,16 @@ set(bindings
add_custom_command( add_custom_command(
OUTPUT ${bindings} OUTPUT ${bindings}
COMMAND ${diplomat} cpp "${bindings_dir}" COMMAND ${diplomat} cpp "${bindings_dir}"
MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/src/lib.rs" MAIN_DEPENDENCY "lib.rs"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
VERBATIM VERBATIM
${diplomat_cmake_args} ${diplomat_cmake_args}
) )
# HACK ensure CMake *actually adds* the command above
add_custom_target(codegen_impl
DEPENDS ${bindings}
)
target_sources(PROJECT_NAME_impl INTERFACE ${bindings}) target_sources(PROJECT_NAME_impl INTERFACE ${bindings})
target_include_directories(PROJECT_NAME_impl INTERFACE "${bindings_dir}") target_include_directories(PROJECT_NAME_impl INTERFACE "${bindings_dir}")

View File

@ -1,5 +1,3 @@
include(impl.cmake)
qt_add_executable(PROJECT-NAME qt_add_executable(PROJECT-NAME
src/main.cxx src/main.cxx
src/main_window.cxx src/main_window.cxx