diff options
-rw-r--r-- | src/animation/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 47 | ||||
-rw-r--r-- | src/input/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/logic/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/render/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/render/framegraph/qframegraphnode_p.h | 2 |
6 files changed, 58 insertions, 9 deletions
diff --git a/src/animation/CMakeLists.txt b/src/animation/CMakeLists.txt index fcfb527fd..d74d331e0 100644 --- a/src/animation/CMakeLists.txt +++ b/src/animation/CMakeLists.txt @@ -74,14 +74,17 @@ qt_add_module(3DAnimation frontend LIBRARIES Qt::CorePrivate - PUBLIC_LIBRARIES Qt::3DCorePrivate - Qt::3DRender Qt::3DRenderPrivate + PUBLIC_LIBRARIES + Qt::3DCore + Qt::3DRender Qt::Core Qt::Gui PRIVATE_MODULE_INTERFACE Qt::CorePrivate + Qt::3DCorePrivate + Qt::3DRenderPrivate ) #### Keys ignored in scope 1:.:.:animation.pro:<TRUE>: diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 570233ac3..de3e1d1f1 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -107,15 +107,56 @@ qt_extend_target(3DCore CONDITION gcov "-ftest-coverage" ) +function(qt3d_add_simd_part target) + qt_parse_all_arguments(arg "qt3d_add_simd_part" "" "" + "NAME;SIMD;${__default_private_args};COMPILE_FLAGS" ${ARGN}) + if ("x${arg_SIMD}" STREQUAL x) + message(FATAL_ERROR "qt3d_add_simd_part needs a SIMD type to be set.") + endif() + + set(condition "QT_FEATURE_${arg_SIMD}") + if("${arg_SIMD}" STREQUAL arch_haswell) + set(condition "TEST_subarch_avx2 AND TEST_subarch_bmi AND TEST_subarch_bmi2 AND TEST_subarch_f16c AND TEST_subarch_fma AND TEST_subarch_lzcnt AND TEST_subarch_popcnt") + elseif("${arg_SIMD}" STREQUAL avx512common) + set(condition "TEST_subarch_avx512cd") + elseif("${arg_SIMD}" STREQUAL avx512core) + set(condition "TEST_subarch_avx512cd AND TEST_subarch_avx512bw AND TEST_subarch_avx512dq AND TEST_subarch_avx512vl") + endif() + + qt_evaluate_config_expression(result ${condition}) + if(${result}) + if(QT_CMAKE_DEBUG_EXTEND_TARGET) + message("qt3d_add_simd_part(${target} SIMD ${arg_SIMD} ...): Evaluated") + endif() + string(TOUPPER "QT_CFLAGS_${arg_SIMD}" simd_flags) + + foreach(source IN LISTS arg_SOURCES) + set_property(SOURCE "${source}" APPEND + PROPERTY COMPILE_OPTIONS + ${${simd_flags}} + ${arg_COMPILE_FLAGS} + ) + endforeach() + set_source_files_properties(${arg_SOURCES} PROPERTIES SKIP_PRECOMPILE_HEADERS TRUE) + target_sources(${target} PRIVATE ${arg_SOURCES}) + target_compile_options("${target}Private" INTERFACE ${${simd_flags}} ${arg_COMPILE_FLAGS}) + target_compile_definitions("${target}Private" INTERFACE ${simd_flags}) + else() + if(QT_CMAKE_DEBUG_EXTEND_TARGET) + message("qt3d_add_simd_part(${target} SIMD ${arg_SIMD} ...): Skipped") + endif() + endif() +endfunction() + if(QT_FEATURE_qt3d_simd_sse2) - qt_add_simd_part(3DCore SIMD sse2 + qt3d_add_simd_part(3DCore SIMD sse2 SOURCES transforms/matrix4x4_sse.cpp transforms/matrix4x4_sse_p.h ) endif() if(QT_FEATURE_qt3d_simd_sse2 AND NOT QT_FEATURE_qt3d_simd_avx2) - qt_add_simd_part(3DCore SIMD sse2 + qt3d_add_simd_part(3DCore SIMD sse2 SOURCES transforms/vector3d_sse.cpp transforms/vector3d_sse_p.h transforms/vector4d_sse.cpp transforms/vector4d_sse_p.h @@ -123,7 +164,7 @@ if(QT_FEATURE_qt3d_simd_sse2 AND NOT QT_FEATURE_qt3d_simd_avx2) endif() if(QT_FEATURE_qt3d_simd_avx2) - qt_add_simd_part(3DCore SIMD avx2 + qt3d_add_simd_part(3DCore SIMD avx2 SOURCES transforms/matrix4x4_avx2.cpp transforms/matrix4x4_avx2_p.h transforms/vector3d_sse.cpp transforms/vector3d_sse_p.h diff --git a/src/input/CMakeLists.txt b/src/input/CMakeLists.txt index d1038028e..1b14d09b1 100644 --- a/src/input/CMakeLists.txt +++ b/src/input/CMakeLists.txt @@ -82,12 +82,14 @@ qt_add_module(3DInput frontend LIBRARIES Qt::CorePrivate - PUBLIC_LIBRARIES Qt::3DCorePrivate + PUBLIC_LIBRARIES + Qt::3DCore Qt::Core Qt::Gui PRIVATE_MODULE_INTERFACE Qt::CorePrivate + Qt::3DCorePrivate ) #### Keys ignored in scope 1:.:.:input.pro:<TRUE>: diff --git a/src/logic/CMakeLists.txt b/src/logic/CMakeLists.txt index 753c2c504..beae98e84 100644 --- a/src/logic/CMakeLists.txt +++ b/src/logic/CMakeLists.txt @@ -21,14 +21,15 @@ qt_add_module(3DLogic LIBRARIES Qt::CorePrivate Qt::GuiPrivate + Qt::3DCorePrivate PUBLIC_LIBRARIES Qt::3DCore - Qt::3DCorePrivate Qt::Core Qt::Gui PRIVATE_MODULE_INTERFACE Qt::CorePrivate Qt::GuiPrivate + Qt::3DCorePrivate ) #### Keys ignored in scope 1:.:.:logic.pro:<TRUE>: diff --git a/src/render/CMakeLists.txt b/src/render/CMakeLists.txt index 79bcbd97b..a6c1b260b 100644 --- a/src/render/CMakeLists.txt +++ b/src/render/CMakeLists.txt @@ -290,13 +290,15 @@ qt_add_module(3DRender LIBRARIES Qt::Concurrent Qt::CorePrivate - PUBLIC_LIBRARIES Qt::3DCorePrivate + PUBLIC_LIBRARIES + Qt::3DCore Qt::Core Qt::OpenGL PRIVATE_MODULE_INTERFACE Qt::Concurrent Qt::CorePrivate + Qt::3DCorePrivate ) # Resources: diff --git a/src/render/framegraph/qframegraphnode_p.h b/src/render/framegraph/qframegraphnode_p.h index b9a60d79a..95c50bbf7 100644 --- a/src/render/framegraph/qframegraphnode_p.h +++ b/src/render/framegraph/qframegraphnode_p.h @@ -52,7 +52,7 @@ // #include <QtCore/QtGlobal> -#include <private/qnode_p.h> +#include <Qt3DCore/private/qnode_p.h> #include <Qt3DRender/qframegraphnode.h> QT_BEGIN_NAMESPACE |