Commit Graph

88 Commits

Author SHA1 Message Date
silverqx 20ee32bbc5 tom whitespaces 2024-09-13 09:11:20 +02:00
silverqx e74286585f suppressed Clang Tidy warnings (Clang v19) 2024-09-13 09:10:35 +02:00
silverqx afcd883df3 tom used off constant 2024-09-02 10:29:18 +02:00
silverqx e5054fdeba tom used u""_s, ""_L1, and ''_L1 in all cpp files
Instead of QStringLiteral() and QLatin1String/Char().
2024-09-02 10:29:17 +02:00
silverqx a823d2285e qmake prefer LLD linker for Clang
- updated comments
 - updated docs
2024-08-31 17:46:07 +02:00
silverqx ea71bdfdb9 qmake MSYS2 disabled LLD linker override for g++
LLD isn't faster than bfd, I also did linking when bfd was faster than
LLD.

 - also updated docs

[skip ci]
2024-08-26 20:08:23 +02:00
silverqx efa0c4e96c qmake/docs updated comments
[skip ci]
2024-08-26 20:05:21 +02:00
silverqx ad3d3aa414 cmake/vcpkg updated comment 2024-07-09 23:09:03 +02:00
silverqx 44f034d6a2 vcpkg moved detection logic to portfile
This is vcpkg thing so also it resposibility.
2024-07-09 21:54:59 +02:00
silverqx d17b85af85 cmake fixtypo 2024-07-09 21:53:57 +02:00
silverqx e24064b7fd qmake moved all feature to private/ folder
Moved all features which aren't used through CONFIG+=xyz and are loaded
using the load(private/xyz) function to the qmake/features/private/
folder.

Currently, the qmake/features/ folder contains only features which
should be used using the CONFIG+= qmake variable.
2024-06-25 13:44:52 +02:00
silverqx 1c2f17facf removed deprecated up to Qt v6.9 (Qt::TimeSpec) 🎉
- removed using of QDateTime methods using plain Qt::TimeSpec
 - set QT_DISABLE_DEPRECATED_UP_TO to 0x060900 (also 0x061000 works)
 - maintained Qt v5 and <v6.5 code still 😬 (next step will be to drop
   Qt v5 🎉)
 - updated auto tests
 - updated docs
 - updated comments

See:
https://github.com/qt/qtbase/commit/8c8d6ff7b6e2e6b1b673051685f1499ae4d65e05?diff=unified&w=0
2024-06-25 12:13:07 +02:00
silverqx 07513aa377 used utf8mb4_uca1400_ai_ci for MariaDB 2024-06-05 10:22:06 +02:00
silverqx 1c67da6b7d qmake used ccache instead tiny_ccache_win32
- updated docs
2024-06-03 13:50:10 +02:00
silverqx 1f3f814f6d cmake fixtypo 2024-05-21 15:53:34 +02:00
silverqx 8331a792c2 cmake/qmake bugfix pragma system_header
- updated NOTES.txt
2024-05-01 14:46:58 +02:00
silverqx 2e88965159 tom bugfix missing defined 2024-04-23 18:04:41 +02:00
silverqx f7a36ca237 tom built MySQL connection only with TinyDrivers 2024-04-23 16:30:11 +02:00
silverqx 2c3def6dce vcpkg added workaround for static builds
vcpkg workaround bugfix for QtSql module and static builds (need on
Windows and Linux too, MSYS2 doesn't support compiling libmysql).

Source of this problem starts in the QtSql6 QMYSQL driver package config
file at:
packages/qtbase_x64-windows-static/share/Qt6Sql/Qt6QMYSQLDriverPluginTargets.cmake

QMYSQL driver uses FindMySQL.cmake find module instead of the
unofficial-libmysql CMake package. The libmysql provided by vcpkg is
de-vendored so it doesn't contain OpenSSL, zstd, zlib inside.
2024-04-22 18:24:10 +02:00
silverqx 018f9d70ee drivers initial qmake build 2024-04-07 18:11:34 +02:00
silverqx 2114fe014e updated comments
- also updated in docs
2024-02-25 16:50:10 +01:00
silverqx b1fa8cc8e1 qmake used DEFINE *= where possible 2024-02-24 11:16:31 +01:00
silverqx 1d6d219d68 vcpkg enabled tom example on Linux
Disabled versioned tom executable on Linux because of
vcpkg/issues/33551.
2023-10-19 11:56:50 +02:00
silverqx 744cc2449c cmake formatting 2023-10-17 15:26:15 +02:00
silverqx ec70b893e7 cmake added $<BUILD_INTERFACE:...> everywhere 2023-10-17 15:26:15 +02:00
silverqx 16fc03eb04 cmake tom example link PRIVATE against TinyORM 2023-10-17 15:26:14 +02:00
silverqx a5752eb5ca cmake bugfix PUBLIC vs PRIVATE in linkage 2023-09-10 12:06:44 +02:00
silverqx 002889d65e cmake added STRICT_MODE option
It propagate strict compiler/linker options and Qt definitions using the
TinyOrm::CommonConfig interface library to the user code (highly
recommended; can also be set with the TINYORM_STRICT_MODE environment
variable).

 - updated vcpkg ports
 - updated docs
2023-09-10 12:06:44 +02:00
silverqx 57a33e503a qmake updated comment 2023-09-09 09:15:53 +02:00
silverqx 1a3dc45221 qmake commented useless load() 2023-09-09 09:15:52 +02:00
silverqx 76b652522c qmake added disable_autoconf
Removed the tiny_autoconf, it's still enabled by default, and instead
added the disable_autoconf qmake configuration feature.

This change was made to follow name and logic convention of another
qmake configuration options.

 - updated docs
2023-09-09 09:15:51 +02:00
silverqx e5ac7df7b9 qmake removed duplicate QT *= core sql 2023-09-09 09:13:34 +02:00
silverqx 892e153b75 qmake moved include(tom.pri) few lines up
- also added section comment
2023-09-09 09:13:34 +02:00
silverqx 7780c91f9d qmake removed forgotten tiny_autoconf blocks 2023-09-09 09:13:33 +02:00
silverqx 26a6c17587 qmake updated conf.pri error messages
- also formatting
2023-09-09 09:13:32 +02:00
silverqx 11693e32a3 tom renamed local function 2023-08-19 13:09:44 +02:00
silverqx e044979429 updated tom.exe description
Updated to - Tom console application for TinyORM C++ library
2023-08-18 17:52:42 +02:00
silverqx 84c6da09f6 tom fixtypo 2023-08-18 17:52:42 +02:00
silverqx 54dee94e91 qmake bugfix tiny_autoconf
Throw conf.pri error only if the tiny_autoconf is disabled.

 - also moved the User Configuration to the bottom, as the last thing
2023-08-18 17:52:42 +02:00
silverqx 24fb2d395e qmake bugix missing load() and CONFIG 2023-08-18 17:52:40 +02:00
silverqx 1c1beb990f qmake removed vcpkgconf.pri
It was used in the vcpkg port file to build the TinyORM using qmake
build system, it's not used anymore as the CMake build is used instead.
2023-08-11 18:42:33 +02:00
silverqx 01fc5af3b0 qmake renamed to tiny_ccache_win32 2023-08-11 18:42:32 +02:00
silverqx d0d4e2b628 qmake added tiny_autoconf feature
The tiny_autoconf and tiny_dotenv qmake CONFIG were added in the TinyORM
v0.34.0. These new features allow to auto-configure TinyORM, and with
their help, the conf.pri files can be skipped entirely. The
tiny_autoconf is designed to find the vcpkg installation and tiny_dotenv
to include the .env and .env.$$QMAKE_PLATFORM files in the project's
root folder. They can be configured using qmake and environment
variables, and they also contain some guessing logic if these variables
are not defined.

These are qmake and environment variables that affect the
auto-configuration feature:

- TINY_VCPKG_ROOT - path to the vcpkg installation folder (if not
  defined then it tries to use the VCPKG_ROOT environment variable)
- TINY_VCPKG_TRIPLET - vcpkg triplet to use
  (vcpkg/installed/$$TINY_VCPKG_TRIPLET/); if not defined then it tries
  to guess the vcpkg triplet on the base of the current compiler and OS
  (QMAKESPEC)
- TINY_MYSQL_ROOT - path to the MySQL installation folder (if not
  defined then it tries to guess the MySQL installation folder:
  $$(ProgramFiles)/MySQL/MySQL Server (8.1|8.0|5.7)/)

You can set these variables in the .env or .conf files (recommended), in
the qmake file (or wherever you want), or as environment variables.

These variables are set after the auto-configuration is done:

- TINY_VCPKG_INCLUDE - path to vcpkg include folder
  (vcpkg/installed/<triplet>/include/)
- TINY_MYSQL_INCLUDE - path to the MySQL include folder (MySQL Server
  8.1/include/)
- TINY_MYSQL_LIB - path to the MySQL lib folder (MySQL Server
  8.1/include/)

The TINY_MYSQL_INCLUDE and TINY_MYSQL_LIB are only set on win32 except
mingw.
2023-08-09 20:34:18 +02:00
silverqx 9bc35edae6 qmake removed useless code
The same logic is done in the qmake/common.pri file.
2023-08-02 20:04:35 +02:00
silverqx 09227e2013 qmake/cmake renamed to PROJECT_TOM_EXAMPLE 2023-08-02 18:53:10 +02:00
silverqx 31453c32db qmake updated error message
- used the $$TARGET instead of a hardcoded target
2023-08-02 18:53:09 +02:00
silverqx 51a4a0a54b qmake used cmdline everywhere
Used instead of the console configuration option.

 - also updated docs
2023-08-02 18:30:10 +02:00
silverqx aad52a89c8 changed qt_timezone default to Qt::UTC
Previously, it was the QtTimeZoneType::DontConvert that implied the
Qt::LocalTime timezone spec.

Setting this to the Qt::UTC by default is the only way to have the
maximum level of interoperability between TinyORM and other libraries
and services.

 - updated comments in docs and source code
2023-06-29 12:07:42 +02:00
silverqx e74d987bf5 added mold linker to conf.pri.example
[skip ci]
2023-04-02 13:26:31 +02:00
silverqx b97818b67a forced TLS connection for MariaDB
Everywhere, tom, tom_testdata, and tests.
2023-03-14 12:48:22 +01:00