Warning, /sdk/rust-qt-binding-generator/examples/todos/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 project (my_rust_qt_quick_project)
0002 
0003 cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
0004 cmake_policy(SET CMP0046 NEW)
0005 cmake_policy(SET CMP0063 NEW)
0006 cmake_policy(SET CMP0071 NEW)
0007 LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
0008 
0009 string(TOUPPER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_UPPER)
0010 if(CMAKE_BUILD_TYPE_UPPER STREQUAL DEBUG)
0011     set(RUST_TARGET_DIR target/debug/)
0012     set(RUST_BUILD_FLAG)
0013 else()
0014     set(RUST_TARGET_DIR target/release/)
0015     set(RUST_BUILD_FLAG --release)
0016 endif()
0017 
0018 ### find dependencies ###
0019 
0020 include(FeatureSummary)
0021 find_package(Cargo REQUIRED)
0022 find_package(Rust REQUIRED)
0023 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
0024 find_package(Threads REQUIRED)
0025 
0026 set(QT_MIN_VERSION "5.6.0")
0027 find_package(Qt5 ${QT_MIN_VERSION} CONFIG
0028     REQUIRED COMPONENTS Core Quick
0029 )
0030 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0031 set(CMAKE_AUTOMOC ON)
0032 set(CMAKE_AUTORCC ON)
0033 find_package(RustQtBindingGenerator REQUIRED)
0034 
0035 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0036 
0037 ### build commands ###
0038 
0039 SET(RUST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rust")
0040 if (MSVC)
0041   SET(RUST_LIB "${RUST_DIR}/${RUST_TARGET_DIR}/rust.lib")
0042 else()
0043   SET(RUST_LIB "${RUST_DIR}/${RUST_TARGET_DIR}/librust.a")
0044 endif()
0045 
0046 # generate c++ and rust code from bindings.json
0047 add_custom_command(
0048   OUTPUT "${RUST_DIR}/src/interface.rs"
0049          "${CMAKE_CURRENT_SOURCE_DIR}/src/Bindings.h"
0050          "${CMAKE_CURRENT_SOURCE_DIR}/src/Bindings.cpp"
0051   COMMAND "${RustQtBindingGenerator_EXECUTABLE}" #--overwrite-implementation
0052             "${CMAKE_CURRENT_SOURCE_DIR}/bindings.json"
0053   DEPENDS bindings.json
0054 )
0055 
0056 # compile the rust code into a static library
0057 add_custom_command(
0058   OUTPUT "${RUST_LIB}"
0059   COMMAND ${Cargo_EXECUTABLE} build ${RUST_BUILD_FLAG}
0060   DEPENDS rust/src/lib.rs
0061           rust/src/implementation.rs
0062           rust/src/interface.rs
0063   WORKING_DIRECTORY "${RUST_DIR}"
0064 )
0065 add_custom_target(rust_target DEPENDS "${RUST_LIB}")
0066 
0067 list(APPEND Libs "${RUST_LIB}")
0068 if (MSVC)
0069   list(APPEND Libs WS2_32.LIB Userenv.lib)
0070 endif()
0071 list(APPEND Libs Qt5::Core Qt5::Quick Threads::Threads ${CMAKE_DL_LIBS})
0072 set(SRCS src/main.cpp src/Bindings.cpp "qml.qrc")
0073 add_executable(todos ${SRCS})
0074 add_dependencies(todos rust_target)
0075 target_link_libraries(todos ${Libs})
0076 set_target_properties(todos PROPERTIES
0077     CXX_STANDARD 11
0078     CXX_STANDARD_REQUIRED ON
0079 )