Files
TinyORM/docs/supported-compilers.mdx
silverqx 5ff160dec5 use upsert alias on MySQL
The MySQL >=8.0.19 supports aliases in the VALUES and SET clauses
of INSERT INTO ... ON DUPLICATE KEY UPDATE statement for the row to be
inserted and its columns. It also generates warning from >=8.0.20 if
an old style used.

This enhancement detects the MySQL version and on the base of it uses
alias during the upsert call.

Also a user can override the version through the MySQL database
configuration. It helps to save/avoid one database query
(select version()) during the upsert method call or during connecting
to the MySQL database (version is needed if strict mode is enabled).

 - added unit and functional tests
 - updated number of unit tests to 1402
 - updated upsert docs
 - added ConfigUtils to avoid duplicates

Others:

 - added the version database configuration everywhere
 - docs added few lines about MySQL version configuration option
 - docs updated database configurations, added a new missing options
2022-08-12 15:37:56 +02:00

51 lines
1.5 KiB
Plaintext

---
sidebar_position: 2
sidebar_label: 🚀 Supported Compilers
hide_table_of_contents: true
description: Platform requirements, supported compilers and build systems for TinyORM c++ library.
keywords: [c++ orm, supported compilers, supported build systems, tinyorm]
---
# Supported Compilers
Following compilers are backed up by the GitHub Action [workflows](https://github.com/silverqx/TinyORM/tree/main/.github/workflows) (CI pipelines), these workflows also include more then __1402 unit tests__ 😮💥.
<div id="supported-compilers">
#### `Windows >=10` {#windows-10}
- MSVC 2019 >=16.9
- MSVC 2022 >=17
- MSYS2 UCRT64 GCC 10.2 - 12.1
- MSYS2 UCRT64 Clang 12 - 14
- clang-cl >=14 with MSVC 2019/2022
#### `Linux`
- GCC 10.2 - 12.1
- Clang 11 - 14
</div>
:::tip
You can compile TinyORM with the MSVC 2022 even if Qt doesn't provide binaries for the MSVC 2022, you can link against Qt MSVC 2019 binaries without any limitations.
:::
## Supported build systems
- `CMake` >=3.20 <small className='darker'>(policies <= CMP0120 default to NEW)</small>
- `qmake` distributed by the Qt Framework
##### Make tools
- `jom` - highly recommended with the `qmake` build system on Windows <small className='darker'>(replacement for nmake)</small>
- `ninja` - recommended for `CMake` as the make file generator
##### Parallel building
You can control parallel building using the following environment variables.
- CMake - `CMAKE_BUILD_PARALLEL_LEVEL` eg. to `10`
- jom - `JOMFLAGS` eg. to `j11`
- vcpkg - `VCPKG_MAX_CONCURRENCY` eg. to `10`