summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/animation/CMakeLists.txt7
-rw-r--r--src/core/CMakeLists.txt47
-rw-r--r--src/input/CMakeLists.txt4
-rw-r--r--src/logic/CMakeLists.txt3
-rw-r--r--src/render/CMakeLists.txt4
-rw-r--r--src/render/framegraph/qframegraphnode_p.h2
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