Skip to content

Commit

Permalink
QtJambi 6.7.2 release
Browse files Browse the repository at this point in the history
  • Loading branch information
omix committed Jun 25, 2024
1 parent 809d882 commit 34ee3f8
Show file tree
Hide file tree
Showing 239 changed files with 14,892 additions and 4,485 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ buildlogs
5.*
6.*
7.*
src/cpp/QtJambiGenerator/QtJambiGenerator.pro.user
src/cpp/autotests/autotests.pro.user
src/cpp/QtJambi.pro.user
src/cpp/QtJambiGenerator/.qmake.stash
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ to your project:
<version>$VERSION</version>
</dependency>
```
(exchange `$VERSION` either by `6.5.7` or by `6.7.1`).
(exchange `$VERSION` either by `6.5.8` or by `6.7.2`).

Otherwise, download QtJambi JAR file from [Maven Central Repository](https://search.maven.org/artifact/io.qtjambi/qtjambi/).

Expand All @@ -165,7 +165,7 @@ public class Test {
Compile the file:

``` powershell
javac -cp qtjambi-6.5.7.jar Test.java
javac -cp qtjambi-6.5.8.jar Test.java
```

### Execute Example
Expand All @@ -184,15 +184,15 @@ By default, on Windows Qt libraries are located in `bin` directory and on Linux

The example program can be executed this way on Windows:
``` powershell
java -cp qtjambi-6.5.7.jar;. -Djava.library.path=C:\Qt\6.5.3\msvc2019_64\bin Test
java -cp qtjambi-6.5.8.jar;. -Djava.library.path=C:\Qt\6.5.3\msvc2019_64\bin Test
```
On Linux it looks this way:
``` bash
java -cp qtjambi-6.5.7.jar:. -Djava.library.path=<path to>/Qt/6.5.3/gcc_64/lib Test
java -cp qtjambi-6.5.8.jar:. -Djava.library.path=<path to>/Qt/6.5.3/gcc_64/lib Test
```
On macOS you additionally need to use the start parameter `-XstartOnFirstThread`:
``` bash
java -cp qtjambi-6.5.7.jar:. -Djava.library.path=<path to>/Qt/6.5.3/macos/lib -XstartOnFirstThread Test
java -cp qtjambi-6.5.8.jar:. -Djava.library.path=<path to>/Qt/6.5.3/macos/lib -XstartOnFirstThread Test
```

On Linux of your distribution provides Qt (of correct version) as system library you don't need to specify library path at all.
Expand Down
36 changes: 29 additions & 7 deletions antfiles/autotests.xml
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@
<exclude name="io/qt/**/Test*XmlPatterns.java" unless="${qtjambi.xmlpatterns.any.true}"/>
<exclude name="io/qt/**/Test*Charts.java" unless="${qtjambi.charts.any.true}"/>
<exclude name="io/qt/**/Test*Graphs.java" unless="${qtjambi.graphs.any.true}"/>
<exclude name="io/qt/**/Test*GraphsWidgets.java" unless="${qtjambi.graphswidgets.any.true}"/>
<exclude name="io/qt/**/Test*InsightTracker.java" unless="${qtjambi.insighttracker.any.true}"/>
<exclude name="io/qt/**/Test*DataVis.java" unless="${qtjambi.datavisualization.any.true}"/>
<exclude name="io/qt/**/Test*DataVisualization.java" unless="${qtjambi.datavisualization.any.true}"/>
<exclude name="io/qt/**/Test*SpatialAudio.java" unless="${qtjambi.spatialaudio.any.true}"/>
Expand Down Expand Up @@ -220,6 +222,8 @@
<exclude name="io/qt/**/TestSpatialAudio*.java" unless="${qtjambi.spatialaudio.any.true}"/>
<exclude name="io/qt/**/TestCharts*.java" unless="${qtjambi.charts.any.true}"/>
<exclude name="io/qt/**/TestGraphs*.java" unless="${qtjambi.graphs.any.true}"/>
<exclude name="io/qt/**/TestGraphsWidgets*.java" unless="${qtjambi.graphswidgets.any.true}"/>
<exclude name="io/qt/**/TestInsightTracker*.java" unless="${qtjambi.insighttracker.any.true}"/>
<exclude name="io/qt/**/TestDataVis*.java" unless="${qtjambi.datavisualization.any.true}"/>
<exclude name="io/qt/**/TestQuick3D*.java" unless="${qtjambi.quick3d.any.true}"/>
<exclude name="io/qt/**/TestQml*.java" unless="${qtjambi.qml.any.true}"/>
Expand Down Expand Up @@ -530,6 +534,7 @@
<compilerarg value="-Xlint:deprecation" />
<compilerarg value="-Xlint:unchecked" />
<compilerarg value="-Xlint:-options" />
<compilerarg value="-Xlint:-preview" />
<compilerarg value="--enable-preview" />
<classpath>
<fileset dir="${deploymentdir}">
Expand Down Expand Up @@ -838,6 +843,24 @@
<condition property="enablepreview" value="-Dx" else="--enable-preview">
<equals arg1="${jdk-exec-version}" arg2="8"/>
</condition>
<condition property="Dqtjambi.log-level" value="-Dqtjambi.log-level=${qtjambi.log-level}" else="-Dx">
<isset property="qtjambi.log-level"/>
</condition>
<condition property="Dio.qt.verbose-loading" value="-Dio.qt.verbose-loading=${io.qt.verbose-loading}" else="-Dx">
<isset property="io.qt.verbose-loading"/>
</condition>
<condition property="Dio.qt.enable-dangling-pointer-check" value="-Dio.qt.enable-dangling-pointer-check=${io.qt.enable-dangling-pointer-check}" else="-Dx">
<isset property="io.qt.enable-dangling-pointer-check"/>
</condition>
<condition property="Dio.qt.enable-thread-affinity-check" value="-Dio.qt.enable-thread-affinity-check=${io.qt.enable-thread-affinity-check}" else="-Dx">
<isset property="io.qt.enable-thread-affinity-check"/>
</condition>
<condition property="Dio.qt.enable-event-thread-affinity-check" value="-Dio.qt.enable-event-thread-affinity-check=${io.qt.enable-event-thread-affinity-check}" else="-Dx">
<isset property="io.qt.enable-event-thread-affinity-check"/>
</condition>
<condition property="Dio.qt.enable-method-logs" value="-Dio.qt.enable-method-logs=${io.qt.enable-method-logs}" else="-Dx">
<isset property="io.qt.enable-method-logs"/>
</condition>
<trycatch>
<try>
<mkdir dir="${outputDir}/${qtjambi.osname}/tests/junitxml-${kind}${jdk-exec-version}"/>
Expand All @@ -854,20 +877,19 @@
<pathelement path="${outputDir}/${qtjambi.osname}/tests/qtjambi-autotests-${qtjambi.jar.version}.jar" />
</classpath>
<jvmarg value="-Dio.qt.library-path-override=${qtPath}${psep}${qtJambiPath}${psep}${testLibPath}"/>
<jvmarg value="-Dio.qt.verbose-loading=${io.qt.verbose-loading}"/>
<jvmarg value="${Dio.qt.verbose-loading}"/>
<jvmarg value="-Dio.qt.debug=${kind}"/><!-- This should not be needed now, it loads default from MANIFEST.MF -->
<jvmarg value="-Dio.qt.log-messages=ALL"/>
<jvmarg value="-Dqtjambi.log-level=${qtjambi.log-level}"/>
<jvmarg value="${Dqtjambi.log-level}"/>
<jvmarg value="-Dio.qt.no-deployment-spec=true"/>
<jvmarg value="-Dio.qt.enable-dangling-pointer-check=${qtjambi.enable-dangling-pointer-check}"/>
<jvmarg value="-Dio.qt.enable-thread-affinity-check=${qtjambi.enable-thread-affinity-check}"/>
<jvmarg value="-Dio.qt.enable-event-thread-affinity-check=${qtjambi.enable-event-thread-affinity-check}"/>
<jvmarg value="-Dio.qt.enable-method-logs=${qtjambi.enable-method-logs}"/>
<jvmarg value="${Dio.qt.enable-dangling-pointer-check}"/>
<jvmarg value="${Dio.qt.enable-thread-affinity-check}"/>
<jvmarg value="${Dio.qt.enable-event-thread-affinity-check}"/>
<jvmarg value="${Dio.qt.enable-method-logs}"/>
<jvmarg value="-Dio.qt.qml-imports=${testQmlPath}"/>
<jvmarg value="-Dio.qt.pluginpath=${qtjambiPluginPath}${psep}${testPluginPath}"/>
<jvmarg value="${XstartOnFirstThread}"/>
<jvmarg value="-Dqtjambi.deployer.test.jdbc=${testJdbcPath}"/>
<jvmarg value="-Djava.util.logging.config.file=${basedir}/logging.properties"/>
<jvmarg value="-Dqtjambi.antcontrib=${ant.library.dir}/ant.jar"/>
<!--jvmarg value="-Xrs"/-->
<!-- This stops JVM intercepting SIGSEGV
Expand Down
2 changes: 1 addition & 1 deletion releases.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
6.5.0=14
6.6.0=17
6.7.0=20
current=21
current=22
32 changes: 32 additions & 0 deletions src/cpp/QtJambi/ModelAPI
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/****************************************************************************
**
** Copyright (C) 2009-2024 Dr. Peter Droste, Omix Visualization GmbH & Co. KG. All rights reserved.
**
** This file is part of Qt Jambi.
**
** $BEGIN_LICENSE$
**
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** $END_LICENSE$
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/

#include "modelapi.h"
2 changes: 2 additions & 0 deletions src/cpp/QtJambi/QtJambi.pro
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ SOURCES += \
jobjectwrapper.cpp \
messagehandler.cpp \
metainfo.cpp \
modelapi.cpp \
objectdata.cpp \
paint.cpp \
plugin.cpp \
Expand Down Expand Up @@ -118,6 +119,7 @@ HEADERS += \
jnienvironment.h \
jobjectwrapper.h \
metainfo.h \
modelapi.h \
paint.h \
qmlapi.h \
qtjambi_cast_array.h \
Expand Down
39 changes: 25 additions & 14 deletions src/cpp/QtJambi/cast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,26 +297,37 @@ void test(JNIEnv *env){
Q_STATIC_ASSERT(!QtJambiPrivate::supports_stream_operators<QList<UnknownClass>>::value);
}
{
QHashFunction hashFunction1;
QHashFunction hashFunction2 = [](const void*, hash_type)->hash_type{ return 0; };
QHashFunction hashFunction3 = hashFunction2;
QtJambiUtils::QHashFunction hashFunction1;
QtJambiUtils::QHashFunction hashFunction2 = [](const void*, hash_type)->hash_type{ return 0; };
QtJambiUtils::QHashFunction hashFunction3 = hashFunction2;
hashFunction3 = [](const void*, hash_type)->hash_type{ return 0; };
QHashFunction hashFunction4(QHashFunction([](const void*, hash_type)->hash_type{ return 0; }));
QtJambiUtils::QHashFunction hashFunction4(QtJambiUtils::QHashFunction([](const void*, hash_type)->hash_type{ return 0; }));
hashFunction3(nullptr,0);
QtJambiUtils::QHashFunction hashFunction5 = nullptr;
}
{
InternalToExternalConverter c1;
InternalToExternalConverter c2 = c1;
InternalToExternalConverter c3 = [](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;};
InternalToExternalConverter c4([](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;});
InternalToExternalConverter c5(InternalToExternalConverter([](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;}));
QtJambiUtils::InternalToExternalConverter c1;
QtJambiUtils::InternalToExternalConverter c2 = c1;
QtJambiUtils::InternalToExternalConverter c3 = [](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;};
QtJambiUtils::InternalToExternalConverter c4([](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;});
QtJambiUtils::InternalToExternalConverter c5(QtJambiUtils::InternalToExternalConverter([](JNIEnv*, QtJambiScope*, const void*, jvalue&, bool)->bool{return false;}));
QtJambiUtils::InternalToExternalConverter c6 = nullptr;
}
{
ExternalToInternalConverter c1;
ExternalToInternalConverter c2 = c1;
ExternalToInternalConverter c3 = [](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;};
ExternalToInternalConverter c4([](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;});
ExternalToInternalConverter c5(ExternalToInternalConverter([](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;}));
QtJambiUtils::ExternalToInternalConverter c1;
QtJambiUtils::ExternalToInternalConverter c2 = c1;
QtJambiUtils::ExternalToInternalConverter c3 = [](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;};
QtJambiUtils::ExternalToInternalConverter c4([](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;});
QtJambiUtils::ExternalToInternalConverter c5(QtJambiUtils::ExternalToInternalConverter([](JNIEnv*, QtJambiScope*, jvalue, void* &, jValueType)->bool{return false;}));
QtJambiUtils::ExternalToInternalConverter c6 = nullptr;
}
{
QtJambiUtils::Runnable c1;
QtJambiUtils::Runnable c2 = c1;
QtJambiUtils::Runnable c3 = [](){};
QtJambiUtils::Runnable c4([](){});
QtJambiUtils::Runnable c5(QtJambiUtils::Runnable([](){}));
QtJambiUtils::Runnable c6 = nullptr;
}
{
QStringList l;
Expand Down
24 changes: 12 additions & 12 deletions src/cpp/QtJambi/containeraccess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2084,9 +2084,9 @@ AbstractContainerAccess* AbstractContainerAccess::create(JNIEnv* env, Sequential
bool isStaticType,
#endif
bool isPointer,
const QHashFunction& hashFunction,
const InternalToExternalConverter& memberConverter,
const ExternalToInternalConverter& memberReConverter){
const QtJambiUtils::QHashFunction& hashFunction,
const QtJambiUtils::InternalToExternalConverter& memberConverter,
const QtJambiUtils::ExternalToInternalConverter& memberReConverter){
if(isPointer){
size = 0;
align = 0;
Expand Down Expand Up @@ -2171,15 +2171,15 @@ AbstractContainerAccess* AbstractContainerAccess::create(JNIEnv* env, Associativ
const QMetaType& memberMetaType1,
size_t align1, size_t size1,
bool isPointer1,
const QHashFunction& hashFunction1,
const InternalToExternalConverter& memberConverter1,
const ExternalToInternalConverter& memberReConverter1,
const QtJambiUtils::QHashFunction& hashFunction1,
const QtJambiUtils::InternalToExternalConverter& memberConverter1,
const QtJambiUtils::ExternalToInternalConverter& memberReConverter1,
const QMetaType& memberMetaType2,
size_t align2, size_t size2,
bool isPointer2,
const QHashFunction& hashFunction2,
const InternalToExternalConverter& memberConverter2,
const ExternalToInternalConverter& memberReConverter2){
const QtJambiUtils::QHashFunction& hashFunction2,
const QtJambiUtils::InternalToExternalConverter& memberConverter2,
const QtJambiUtils::ExternalToInternalConverter& memberReConverter2){
if(isPointer1){
size1 = 0;
align1 = 0;
Expand Down Expand Up @@ -2356,7 +2356,7 @@ AbstractContainerAccess* createPreparedContainerAccess(JNIEnv* env, SequentialCo
align = size_t(memberMetaType.alignOf());
#endif
}
QHashFunction hashFunction = QtJambiTypeManager::findHashFunction(isPointer, memberMetaType.id());
QtJambiUtils::QHashFunction hashFunction = QtJambiTypeManager::findHashFunction(isPointer, memberMetaType.id());
containerAccess = AbstractContainerAccess::create(env, containerType,
memberMetaType,
align, size,
Expand Down Expand Up @@ -2413,8 +2413,8 @@ AbstractContainerAccess* createPreparedContainerAccess(JNIEnv* env, AssociativeC
align2 = size_t(memberMetaType2.alignOf());
#endif
}
QHashFunction hashFunction1 = QtJambiTypeManager::findHashFunction(isPointer1, memberMetaType1.id());
QHashFunction hashFunction2 = QtJambiTypeManager::findHashFunction(isPointer2, memberMetaType2.id());
QtJambiUtils::QHashFunction hashFunction1 = QtJambiTypeManager::findHashFunction(isPointer1, memberMetaType1.id());
QtJambiUtils::QHashFunction hashFunction2 = QtJambiTypeManager::findHashFunction(isPointer2, memberMetaType2.id());
QMetaType voidPtr(QMetaType::VoidStar);
containerAccess = AbstractContainerAccess::create(
env, mapType,
Expand Down
Loading

0 comments on commit 34ee3f8

Please sign in to comment.