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()