Commit Graph

455 Commits

Author SHA1 Message Date
silverqx fd2b4694e9 forced LEAN_HEADERS=ON everywhere
For tools, vcpkg port, and Gentoo ebuild-s.
2024-09-13 10:47:24 +02:00
silverqx 3a8917b096 orm enhanced model comparison
The comparison will not be done twice if the user-defined operator==()
in the Derived model is defined.

Also, added the u_skipCompareDerived that allows to explicitly skip
the Derived comparison logic, it allows to have overloaded operator==().

 - added functional tests
 - added a new models
2024-09-11 20:38:11 +02:00
silverqx f586844bb2 cmake enhanced option() helper function
Added the (default: ON/OFF) text to the description.
2024-09-07 19:28:28 +02:00
silverqx c5f012ceb2 cmake used set(xyz "") to initialize variable 2024-09-07 18:30:18 +02:00
silverqx e3091c3641 cmake added section comments 2024-09-07 16:27:16 +02:00
silverqx 4559636ced qmake/cmake added QT_LEAN_HEADERS support
The QT_LEAN_HEADERS compile definition can be controlled by the build
system and if enabled it will be set to QT_LEAN_HEADERS=2.

 - qmake it can be controlled using the CONFIG*=lean_headers
 - CMake it can be controlled using the LEAN_HEADERS CMake option

This feature is disabled by default and the default value can be set
using the TINYORM_QT_LEAN_HEADERS environment variable.

With CMake, the TINYORM_QT_LEAN_HEADERS environment variable is only
considered during the initial configuration.
2024-09-07 15:24:17 +02:00
silverqx 045d0619c5 cmake formatting 2024-09-07 14:35:15 +02:00
silverqx d8116d7366 cmake added section comments 2024-09-07 14:35:01 +02:00
silverqx b003febf80 cmake fixed/updated function comment 2024-09-07 14:34:42 +02:00
silverqx 7d4edd7666 cmake fixtypo 2024-09-07 14:33:26 +02:00
silverqx 78ffeae6bd cmake changed functions order 2024-09-07 13:37:27 +02:00
silverqx 77b1a8b2ef cmake moved function to TinyFeatureOptions 2024-09-06 18:09:18 +02:00
silverqx 0adc2a41bb tom commented unused header file 2024-09-05 17:42:41 +02:00
silverqx f0c1440d90 testdata_tom bugfix qmake/cmake missing migration 2024-08-30 12:53:17 +02:00
silverqx 363e91ee82 models fixed all #include-s 🙌
I finally found a solution for these recursive #include-s.

I removed all #include-s in all models and defined forward declarations
instead of them. This way I ensured that no #include is defined twice.

Consequently, all needed #include-s must be defined in the final
executable or library where these models are used.

Because of this, I have created so-called Includes Lists. They contain
all #include-s that are needed to properly #include all the models in
terms of their relationships. This means these Includes Lists can be
used instead of #include-ing all models one by one in the final
executable or library.

Other changes

 - added missing forward declarations
 - removed useless u_ data members in some models
 - renamed many models to more general names like Xyz_NoRelations
 - added a new models with no relationships if the given test case
   doesn't need these relationships (greatly speeds up compilation and
   decreases memory usage during compilation;
   eg. ~50% for the tst_Model_Return_Relation test case))

In this commit, it was practically impossible to preserve the git commit
history for some models, so I'm going to lose it, I tried to preserve
it, but it's not worth the effort.
2024-08-29 12:52:00 +02:00
silverqx ecf93f1d84 qmake/cmake MSYS2 commented linker security
Commented all linker security features on MSYS2 and MinGW-w64 as they
are all enabled by default.

 - added detailed comments
 - added todo task

[skip ci]
2024-08-26 20:14:23 +02:00
silverqx af83468a71 updated vcpkg REF and SHA512
[skip ci]
2024-08-22 11:15:47 +02:00
silverqx d568759812 bump version to TinyORM v0.38.1
Not bumped:

 - tom v0.10.0
 - TinyDrivers v0.2.0
 - TinyMySql v0.2.0
 - TinyUtils v0.5.0

Bugfixes

 - cmake revisited all if() conditions 🤔
 - cmake removed hard-coded -fuse-ld=lld on MinGW 🙃
2024-08-22 11:10:25 +02:00
silverqx 4dc3a70f74 cmake revisited all if() conditions 🙃 2024-08-21 17:27:57 +02:00
silverqx 384e54d799 cmake handled edge case for MSVC_RUNTIME_DYNAMIC 2024-08-21 17:27:14 +02:00
silverqx 0cc3a4544d cmake updated function comment 2024-08-21 17:25:42 +02:00
silverqx 47bbea9669 cmake renamed local variable 2024-08-21 17:25:20 +02:00
silverqx 249d523103 cmake enhanced tiny_to_bool() 2024-08-21 17:24:52 +02:00
silverqx 16be71504a cmake fixtypo 2024-08-21 14:55:35 +02:00
silverqx c5b02a5f71 cmake removed hard-coded -fuse-ld=lld on MinGW 🙃 2024-08-18 22:25:26 +02:00
silverqx 7a012672d9 cmake prepared for QT_SKIP_DEFAULT_TESTCASE_DIRS
Prepared code for QT_SKIP_DEFAULT_TESTCASE_DIRS that should be released
in the Qt v6.9.

See: https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-126729
2024-08-18 21:38:28 +02:00
silverqx 7aaea4c9f6 cmake bugfix in condition 2024-08-18 21:36:20 +02:00
silverqx 0b27f96f19 cmake bugfix quoted $ENV/CACHE{} var. references 2024-08-18 21:32:30 +02:00
silverqx 5113bb75c2 cmake fixtypo
[skip ci]
2024-08-18 21:30:31 +02:00
silverqx 58beb3d0f1 cmake bugfix TINYORM_USING_PCH set too late 2024-08-18 21:30:30 +02:00
silverqx b8fab2eb61 cmake workaround for REUSE_FROM
Using the TINY_QT_TEST_TARGET_PATCHED environment variable.
2024-08-18 21:30:27 +02:00
silverqx d1c4909c51 updated vcpkg REF and SHA512
[skip ci]
2024-08-16 08:55:52 +02:00
silverqx 65abb5410f bump version to TinyORM v0.38.0 and tom v0.10.0
Also bumped to:

 - TinyDrivers v0.2.0
 - TinyMySql v0.2.0
 - TinyUtils v0.5.0

 - removed Qt v5 support (since TinyORM v0.38.0) 🎉🕺🙌 eda9df9f
   - renamed all occurrences of QVector to QList 8a71078f
   - renamed all occurrences of toVector to toList (Model) 118acd88
 - renamed all getQtQuery and similar to getSqlQuery 7f897b33
 - drivers populate Default Column Values

 - added MySQL v9.0 support
 - increased min. GCC version to v11.2
 - upgraded everything to latest versions 😁

 - qmake/cmake added support for ccache >=4.10 (on Windows with PCH) 🙌👌
 - Qt removed deprecated API-s up to Qt v6.9
 - bugfix in String::snake() 🤔
 - vcpkg bugfix /MT vs /MD

 - docs added API Stability boxes and a new page
 - fixed all Visual Studio 2022 analyzer warnings (Recommended Rules Profile)
 - greatly optimized PCH
 - cmake added support for ctest --parallel 🎉
 - workflows added LTO to matrix (Linux/Windows)
 - tools added deploy scripts 👌
 - ~500 more improvements and bugfix-es 😮😎
2024-08-16 08:22:58 +02:00
silverqx 323cb37507 cmake fixtypo 2024-08-15 00:44:13 +02:00
silverqx bf9d0853b8 cmake tests updated comment 2024-08-14 20:11:06 +02:00
silverqx 6add06e395 cmake added commented /analyze for MSVC 2024-08-03 18:39:57 +02:00
silverqx 43e7d8708e cmake updated comment 2024-07-24 20:09:40 +02:00
silverqx 39b15ad1ef cmake vcpkg bugfix in deploy/install 2024-07-24 20:05:01 +02:00
silverqx f1a06b81b1 cmake updated comment 2024-07-24 20:04:23 +02:00
silverqx 750d8ddb11 cmake updated FATAL_ERROR message 2024-07-22 15:35:28 +02:00
silverqx 072d0492f8 cmake added ${CMAKE_CURRENT_FUNCTION}
Added to all message(FATAL_ERROR).
2024-07-22 15:32:49 +02:00
silverqx a6fdb791cf cmake fixtypo 2024-07-22 15:31:50 +02:00
silverqx 9a12b007db cmake bugfix missing \ 2024-07-22 15:31:36 +02:00
silverqx 887d82b15e cmake unified if() AND/OR at the end 2024-07-22 13:55:50 +02:00
silverqx ade98d5f44 tests cmake reuse PCH
The databasemanager test case that will provide PCH for all other test
cases, what means all other test cases will use this PCH without
compilation.

 - added a new PROVIDES_PCH for tiny_configure_test()
 - this new implementation will be enabled from Qt v6.8.0 because of
   https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-126729
2024-07-22 13:44:05 +02:00
silverqx 39cafde1d6 cmake renamed function 2024-07-22 13:26:15 +02:00
silverqx 12248e1b54 cmake added cs_print_source_properties() 2024-07-22 13:18:24 +02:00
silverqx 0d8d53fb4c cmake whitespaces 2024-07-22 13:17:58 +02:00
silverqx 146c40e085 cmake updated comment 2024-07-22 13:17:28 +02:00
silverqx 1c039e72d4 cmake updated message 2024-07-22 13:17:11 +02:00