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

0001 cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
0002 
0003 project (rust_qt_binding_generator)
0004 
0005 set(QT_MIN_VERSION "5.6.0")
0006 set(KF5_MIN_VERSION "5.2.0")
0007 
0008 LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
0009 find_package(ECM 1.0.0 NO_MODULE)
0010 if (ECM_FOUND)
0011     LIST(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0012     include(KDEInstallDirs)
0013     include(KDECMakeSettings)
0014     include(KDECompilerSettings NO_POLICY_SCOPE)
0015     include(ECMPoQmTools)
0016 else()
0017     cmake_policy(SET CMP0063 NEW)
0018     cmake_policy(SET CMP0071 NEW)
0019     enable_testing()
0020     set(CMAKE_AUTOMOC ON)
0021 endif()
0022 
0023 set(CMAKE_AUTOUIC ON)
0024 
0025 include(FeatureSummary)
0026 
0027 find_package(Cargo REQUIRED)
0028 find_package(Rust REQUIRED)
0029 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
0030 find_package(Threads REQUIRED)
0031 
0032 # Runtime information library -- dl on Debian, execinfo on FreeBSD.
0033 # This quiets a warning from rustc about linking to native artifacts.
0034 if (CMAKE_SYSTEM MATCHES "FreeBSD")
0035     set(NEED_DL_LIBRARY true)
0036     find_library(DL_LIBRARY execinfo)
0037 elseif (DEFINED CMAKE_DL_LIBS)
0038     set(NEED_DL_LIBRARY true)
0039     find_library(DL_LIBRARY ${CMAKE_DL_LIBS})
0040 endif()
0041 
0042 # It would be neater to use set_package_properties() here and to
0043 # rely on feature_summary(), below, but that entails using find_package()
0044 # and moving this whole thing into a Find-module, which is over-wrought.
0045 if (NEED_DL_LIBRARY AND NOT DL_LIBRARY)
0046     message(FATAL_ERROR "No runtime information library (-ldl or -lexecinfo)")
0047 endif()
0048 
0049 # Find Qt modules
0050 find_package(Qt5 ${QT_MIN_VERSION} CONFIG
0051     REQUIRED COMPONENTS
0052         Core
0053         Test
0054     OPTIONAL_COMPONENTS
0055         Widgets
0056         Svg
0057         Quick
0058 )
0059 find_package(Qt5QuickControls2 EXACT ${Qt5Core_VERSION})
0060 find_package(Qt5Charts EXACT ${Qt5Core_VERSION})
0061 
0062 find_package(KF5Kirigami2)
0063 
0064 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0065 
0066 string(TOUPPER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_UPPER)
0067 if(CMAKE_BUILD_TYPE_UPPER STREQUAL DEBUG)
0068     set(RUST_TARGET_DIR target/debug/)
0069     set(RUST_BUILD_FLAG)
0070 else()
0071     set(RUST_TARGET_DIR target/release/)
0072     set(RUST_BUILD_FLAG --release)
0073 endif()
0074 
0075 set(RustQtBindingGenerator_EXECUTABLE "${CMAKE_CURRENT_SOURCE_DIR}/${RUST_TARGET_DIR}rust_qt_binding_generator")
0076 add_custom_command(
0077   OUTPUT "${RustQtBindingGenerator_EXECUTABLE}"
0078   COMMAND ${Cargo_EXECUTABLE} build ${RUST_BUILD_FLAG}
0079   DEPENDS src/lib.rs
0080           src/configuration.rs
0081           src/cpp.rs
0082           src/rust.rs
0083           src/util.rs
0084           src/bin/rust_qt_binding_generator.rs
0085   WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
0086 )
0087 add_custom_target(rust_qt_binding_generator DEPENDS "${RustQtBindingGenerator_EXECUTABLE}")
0088 
0089 add_subdirectory(tests)
0090 
0091 if(Qt5Widgets_FOUND AND Qt5Svg_FOUND)
0092     add_subdirectory(demo)
0093 endif()
0094 
0095 if (ECM_FOUND)
0096     install(FILES org.kde.rust_qt_binding_generator.appdata.xml
0097             DESTINATION ${KDE_INSTALL_METAINFODIR})
0098 endif()