summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2021-02-07 21:02:49 +0200
committerJuha Vuolle <juha.vuolle@insta.fi>2021-02-08 13:21:05 +0200
commit4e2636dee3751b764e84b9f328f6dac3c60ce2d8 (patch)
tree3d55b0122c727585e806309169cec212a0efafea /src
parent6b910889c1c3f519f649389b4025f3d08d22b28e (diff)
Add qscxmlc qmake options also for cmake
qmake provides QSCXMLC_NAMESPACE, QSCXMLC_DIR and QSCXMLC_ARGUMENTS options as documented in https://doc.qt.io/qt-5/qtscxml-instantiating-state-machines.html and https://doc.qt.io/qt-5/qscxmlc.html Pick-to: 6.1 Task-number: QTBUG-89828 Change-Id: I866807d2b74eec1dcab361e99c3f39ae6fdad25f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/scxml/Qt6ScxmlMacros.cmake22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/scxml/Qt6ScxmlMacros.cmake b/src/scxml/Qt6ScxmlMacros.cmake
index 6710f50..4ced82e 100644
--- a/src/scxml/Qt6ScxmlMacros.cmake
+++ b/src/scxml/Qt6ScxmlMacros.cmake
@@ -38,31 +38,41 @@
function(qt6_add_statecharts target_or_outfiles)
set(options)
- set(oneValueArgs)
- set(multiValueArgs OPTIONS)
+ set(oneValueArgs OUTPUT_DIR NAMESPACE)
+ set(multiValueArgs QSCXMLC_ARGUMENTS)
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(scxml_files ${ARGS_UNPARSED_ARGUMENTS})
set(outfiles)
+ if (ARGS_NAMESPACE)
+ set(namespace "--namespace" ${ARGS_NAMESPACE})
+ endif()
+
+ set(qscxmlcOutputDir ${CMAKE_CURRENT_BINARY_DIR})
+ if (ARGS_OUTPUT_DIR)
+ set(qscxmlcOutputDir ${ARGS_OUTPUT_DIR})
+ endif()
+
foreach(it ${scxml_files})
get_filename_component(outfilename ${it} NAME_WE)
get_filename_component(infile ${it} ABSOLUTE)
- set(outfile ${CMAKE_CURRENT_BINARY_DIR}/${outfilename})
- set(outfile_cpp ${CMAKE_CURRENT_BINARY_DIR}/${outfilename}.cpp)
- set(outfile_h ${CMAKE_CURRENT_BINARY_DIR}/${outfilename}.h)
+ set(outfile ${qscxmlcOutputDir}/${outfilename})
+ set(outfile_cpp ${qscxmlcOutputDir}/${outfilename}.cpp)
+ set(outfile_h ${qscxmlcOutputDir}/${outfilename}.h)
add_custom_command(OUTPUT ${outfile_cpp} ${outfile_h}
${QT_TOOL_PATH_SETUP_COMMAND}
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qscxmlc
- ARGS ${ARGS_OPTIONS} --output ${outfile} ${infile}
+ ARGS ${namespace} ${ARGS_QSCXMLC_ARGUMENTS} --output ${outfile} ${infile}
MAIN_DEPENDENCY ${infile}
VERBATIM)
list(APPEND outfiles ${outfile_cpp})
endforeach()
set_source_files_properties(${outfiles} PROPERTIES SKIP_AUTOMOC TRUE)
if (TARGET ${target_or_outfiles})
+ target_include_directories(${target_or_outfiles} PRIVATE ${qscxmlcOutputDir})
target_sources(${target_or_outfiles} PRIVATE ${outfiles})
else()
set(${target_or_outfiles} ${outfiles} PARENT_SCOPE)