Update to CMake 3.10 so that AUTOMOC scans generated files

master
Jos van den Oever 2018-08-05 14:42:14 +02:00
parent c5b09ca04c
commit c4d9b04083
2 changed files with 5 additions and 10 deletions

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
project (rust_qt_binding_generator)
@ -14,9 +14,8 @@ if (ECM_FOUND)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMPoQmTools)
else()
if (POLICY CMP0063)
cmake_policy(SET CMP0063 NEW)
endif()
cmake_policy(SET CMP0063 NEW)
cmake_policy(SET CMP0071 NEW)
enable_testing()
set(CMAKE_AUTOMOC ON)
endif()

View File

@ -8,16 +8,15 @@ function(rust_test NAME DIRECTORY)
set(SRC "${CMAKE_CURRENT_SOURCE_DIR}")
set(DIR "${SRC}/${DIRECTORY}")
set_property(SOURCE "${SRC}/${NAME}_rust.h" PROPERTY SKIP_AUTOGEN OFF)
add_custom_command(
OUTPUT "${DIR}/src/interface.rs"
"${SRC}/${NAME}_rust.h"
# if the cpp file is marked GENERATED, CMake will not check it for moc
# "${SRC}/${NAME}_rust.cpp"
"${SRC}/${NAME}_rust.cpp"
COMMAND "${GENERATOR}" "${SRC}/${NAME}.json"
MAIN_DEPENDENCY "${NAME}.json"
DEPENDS rust_qt_binding_generator
)
add_custom_command(
OUTPUT "${DIR}/${RUST_TARGET_DIR}/librust.a"
COMMAND ${Cargo_EXECUTABLE} build ${RUST_BUILD_FLAG}
@ -41,9 +40,6 @@ function(rust_test NAME DIRECTORY)
"${DIR}/${RUST_TARGET_DIR}/librust.a"
Threads::Threads ${DL_LIBRARY}
)
set_property(TARGET ${NAME}
APPEND PROPERTY AUTOGEN_TARGET_DEPENDS "${SRC}/${NAME}_rust.h"
APPEND PROPERTY AUTOGEN_TARGET_DEPENDS "${SRC}/${NAME}_rust.cpp")
add_test("build_${NAME}"
"${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target "${NAME}")