Merge branch 'edelhirsch-feature/webassembly' into webassembly
This commit is contained in:
commit
e058886fcb
@ -47,10 +47,16 @@ function(qsk_add_plugin target TYPE CLASS_NAME)
|
|||||||
# So for the moment better don't do:
|
# So for the moment better don't do:
|
||||||
# qt6_add_plugin(${target} SHARED ${CLASS_NAME} )
|
# qt6_add_plugin(${target} SHARED ${CLASS_NAME} )
|
||||||
|
|
||||||
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
if(BUILD_QSKDLL)
|
||||||
qt6_add_library(${target} SHARED )
|
set(library_type SHARED)
|
||||||
else()
|
else()
|
||||||
add_library(${target} SHARED )
|
set(library_type STATIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
||||||
|
qt6_add_library(${target} ${library_type})
|
||||||
|
else()
|
||||||
|
add_library(${target} ${library_type})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(${target} PROPERTIES
|
set_target_properties(${target} PROPERTIES
|
||||||
@ -118,4 +124,10 @@ function(qsk_add_shaders target)
|
|||||||
qt6_add_shaders( ${target} "qskshaders" BATCHABLE PRECOMPILE QUIET
|
qt6_add_shaders( ${target} "qskshaders" BATCHABLE PRECOMPILE QUIET
|
||||||
PREFIX "/qskinny/shaders" ${ARGV} OUTPUTS ${outfiles} )
|
PREFIX "/qskinny/shaders" ${ARGV} OUTPUTS ${outfiles} )
|
||||||
|
|
||||||
|
# pass on OUTPUT_TARGETS to the caller of this function
|
||||||
|
cmake_parse_arguments(PARSE_ARGV 1 arg "" "OUTPUT_TARGETS" "")
|
||||||
|
if (arg_OUTPUT_TARGETS)
|
||||||
|
set(${arg_OUTPUT_TARGETS} ${${arg_OUTPUT_TARGETS}} PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -17,7 +17,12 @@ set(SOURCES
|
|||||||
QskQml.cpp)
|
QskQml.cpp)
|
||||||
|
|
||||||
set(target qskqmlexport)
|
set(target qskqmlexport)
|
||||||
|
|
||||||
|
if(BUILD_QSKDLL)
|
||||||
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS})
|
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS})
|
||||||
|
else()
|
||||||
|
qsk_add_library(${target} STATIC ${SOURCES} ${HEADERS})
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${target} PRIVATE qskinny)
|
target_link_libraries(${target} PRIVATE qskinny)
|
||||||
target_include_directories(${target} PUBLIC
|
target_include_directories(${target} PUBLIC
|
||||||
|
@ -482,17 +482,14 @@ set(target qskinny)
|
|||||||
|
|
||||||
if(BUILD_QSKDLL)
|
if(BUILD_QSKDLL)
|
||||||
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS} ${PRIVATE_HEADERS})
|
qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS} ${PRIVATE_HEADERS})
|
||||||
|
target_compile_definitions(${target} PUBLIC QSK_DLL )
|
||||||
|
set_target_properties(${target} PROPERTIES DEFINE_SYMBOL QSK_MAKEDLL)
|
||||||
else()
|
else()
|
||||||
qsk_add_library(${target} STATIC ${SOURCES} ${HEADERS} ${PRIVATE_HEADERS})
|
qsk_add_library(${target} STATIC ${SOURCES} ${HEADERS} ${PRIVATE_HEADERS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_QSKDLL)
|
|
||||||
target_compile_definitions(${target} PUBLIC QSK_DLL )
|
|
||||||
set_target_properties(${target} PROPERTIES DEFINE_SYMBOL QSK_MAKEDLL)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
||||||
qsk_add_shaders( ${target} FILES ${SHADERS} )
|
qsk_add_shaders( ${target} FILES ${SHADERS} OUTPUT_TARGETS shader_target)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(${target} PUBLIC
|
target_include_directories(${target} PUBLIC
|
||||||
@ -542,8 +539,14 @@ set_target_properties(${target} PROPERTIES
|
|||||||
# packaging
|
# packaging
|
||||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||||
|
|
||||||
|
set(exported_targets ${target})
|
||||||
|
if(NOT BUILD_QSKDLL)
|
||||||
|
list(APPEND exported_targets ${shader_target})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# setup destination file paths for qskinny target
|
# setup destination file paths for qskinny target
|
||||||
install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets
|
install(TARGETS ${exported_targets} EXPORT ${PACKAGE_NAME}Targets
|
||||||
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
||||||
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
|
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
|
||||||
RUNTIME DESTINATION ${QSK_INSTALL_LIBS}
|
RUNTIME DESTINATION ${QSK_INSTALL_LIBS}
|
||||||
|
@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
#include <qobject.h>
|
#include <qobject.h>
|
||||||
|
#if QT_CONFIG(thread)
|
||||||
#include <qsemaphore.h>
|
#include <qsemaphore.h>
|
||||||
|
#endif
|
||||||
#include <qthread.h>
|
#include <qthread.h>
|
||||||
|
|
||||||
QSK_QT_PRIVATE_BEGIN
|
QSK_QT_PRIVATE_BEGIN
|
||||||
@ -188,6 +190,8 @@ void QskMetaFunction::invoke( QObject* object,
|
|||||||
? Qt::QueuedConnection : Qt::DirectConnection;
|
? Qt::QueuedConnection : Qt::DirectConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto argc = parameterCount() + 1; // return value + arguments
|
||||||
|
|
||||||
switch ( invokeType )
|
switch ( invokeType )
|
||||||
{
|
{
|
||||||
case Qt::DirectConnection:
|
case Qt::DirectConnection:
|
||||||
@ -206,10 +210,13 @@ void QskMetaFunction::invoke( QObject* object,
|
|||||||
|
|
||||||
#if QT_CONFIG(thread)
|
#if QT_CONFIG(thread)
|
||||||
QSemaphore semaphore;
|
QSemaphore semaphore;
|
||||||
#endif
|
|
||||||
|
|
||||||
auto event = new QMetaCallEvent(
|
auto event = new QMetaCallEvent(
|
||||||
m_functionCall, nullptr, 0, argv, &semaphore );
|
m_functionCall, nullptr, 0, argv, &semaphore );
|
||||||
|
#else
|
||||||
|
auto event = new QMetaCallEvent(
|
||||||
|
m_functionCall, nullptr, 0, argc );
|
||||||
|
#endif
|
||||||
|
|
||||||
QCoreApplication::postEvent( receiver, event );
|
QCoreApplication::postEvent( receiver, event );
|
||||||
|
|
||||||
@ -224,8 +231,6 @@ void QskMetaFunction::invoke( QObject* object,
|
|||||||
if ( receiver.isNull() )
|
if ( receiver.isNull() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const auto argc = parameterCount() + 1; // return value + arguments
|
|
||||||
|
|
||||||
auto event = new QMetaCallEvent( m_functionCall, nullptr, 0, argc );
|
auto event = new QMetaCallEvent( m_functionCall, nullptr, 0, argc );
|
||||||
|
|
||||||
auto types = event->types();
|
auto types = event->types();
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
#include <qmetaobject.h>
|
#include <qmetaobject.h>
|
||||||
#include <qobject.h>
|
#include <qobject.h>
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
|
#if QT_CONFIG(thread)
|
||||||
#include <qsemaphore.h>
|
#include <qsemaphore.h>
|
||||||
|
#endif
|
||||||
#include <qthread.h>
|
#include <qthread.h>
|
||||||
|
|
||||||
QSK_QT_PRIVATE_BEGIN
|
QSK_QT_PRIVATE_BEGIN
|
||||||
@ -163,6 +165,12 @@ static void qskInvokeMetaCall(
|
|||||||
? Qt::QueuedConnection : Qt::DirectConnection;
|
? Qt::QueuedConnection : Qt::DirectConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// should be doable without QMetaMethod. TODO ...
|
||||||
|
const auto method = metaObject->method( offset + index );
|
||||||
|
#endif
|
||||||
|
const int argc = method.parameterCount() + 1;
|
||||||
|
|
||||||
switch ( invokeType )
|
switch ( invokeType )
|
||||||
{
|
{
|
||||||
case Qt::DirectConnection:
|
case Qt::DirectConnection:
|
||||||
@ -194,11 +202,15 @@ static void qskInvokeMetaCall(
|
|||||||
|
|
||||||
#if QT_CONFIG(thread)
|
#if QT_CONFIG(thread)
|
||||||
QSemaphore semaphore;
|
QSemaphore semaphore;
|
||||||
#endif
|
|
||||||
|
|
||||||
auto event = new MetaCallEvent( call, metaObject,
|
auto event = new MetaCallEvent( call, metaObject,
|
||||||
offset, index, args, &semaphore );
|
offset, index, args, &semaphore );
|
||||||
|
|
||||||
|
#else
|
||||||
|
auto event = new MetaCallEvent( call, metaObject,
|
||||||
|
offset, index, argc );
|
||||||
|
#endif
|
||||||
|
|
||||||
QCoreApplication::postEvent( receiver, event );
|
QCoreApplication::postEvent( receiver, event );
|
||||||
|
|
||||||
#if QT_CONFIG(thread)
|
#if QT_CONFIG(thread)
|
||||||
@ -216,12 +228,6 @@ static void qskInvokeMetaCall(
|
|||||||
|
|
||||||
if ( call == QMetaObject::InvokeMetaMethod )
|
if ( call == QMetaObject::InvokeMetaMethod )
|
||||||
{
|
{
|
||||||
#if 1
|
|
||||||
// should be doable without QMetaMethod. TODO ...
|
|
||||||
const auto method = metaObject->method( offset + index );
|
|
||||||
#endif
|
|
||||||
const int argc = method.parameterCount() + 1;
|
|
||||||
|
|
||||||
event = new MetaCallEvent( call, metaObject, offset, index, argc );
|
event = new MetaCallEvent( call, metaObject, offset, index, argc );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "QskTreeNode.h"
|
#include "QskTreeNode.h"
|
||||||
|
|
||||||
static constexpr auto extraFlag =
|
static const auto extraFlag =
|
||||||
static_cast< QSGNode::Flag >( QSGNode::IsVisitableNode << 1 );
|
static_cast< QSGNode::Flag >( QSGNode::IsVisitableNode << 1 );
|
||||||
|
|
||||||
static inline QSGNode* qskCheckedNode( const QSGNode* node, QSGNode::NodeType type )
|
static inline QSGNode* qskCheckedNode( const QSGNode* node, QSGNode::NodeType type )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user