diff --git a/docs/building/hello-world.mdx b/docs/building/hello-world.mdx
index ce2c6d0b7..763bf120a 100644
--- a/docs/building/hello-world.mdx
+++ b/docs/building/hello-world.mdx
@@ -513,9 +513,11 @@ Create the `.qmake.conf` file in the `HelloWorld` project root folder with the f
```qmake
# Path to the PARENT folder of the TinyORM source folder
-TINY_MAIN_DIR = $$clean_path($$PWD/../../TinyORM/)
+TINY_MAIN_DIR = $$clean_path($$PWD/../../TinyORM/)
# To find .env and .env.$$QMAKE_PLATFORM files
TINY_DOTENV_ROOT = $$PWD
+# Path to the current build tree (used to guess the TinyORM build tree)
+#TINY_BUILD_TREE = $$shadowed($$PWD)
# To find .prf files, needed by eg. CONFIG += tiny_system_headers inline/extern_constants
QMAKEFEATURES *= $$quote($$TINY_MAIN_DIR/TinyORM/qmake/features)
@@ -593,8 +595,10 @@ QMAKE_LFLAGS *= -fuse-ld=lld
Don't forget to update the `TINYORM_BUILD_TREE` and `TINY_VCPKG_ROOT` folder paths to your needs if you are not using the recommended [`Folders structure`](tinyorm.mdx#folders-structure).
+You can use the [Partial guessing of the `TINYORM_BUILD_TREE`](tinyorm.mdx#partial-guessing-of-the-tinyorm_build_tree) if you don't like to specify it manually. Just comment out the `TINYORM_BUILD_TREE` and uncomment the `TINY_BUILD_TREE = $$shadowed($$PWD)` in the `.qmake.conf` file.
+
:::tip
-You can entirely avoid the `.env` files, just move the `TINYORM_BUILD_TREE` to the `.qmake.conf` and set the `VCPKG_ROOT` at system level as is described in [`Set up vcpkg environment`](tinyorm.mdx#set-up-vcpkg-environment).
+You can entirely avoid the `.env` files, just move the `TINYORM_BUILD_TREE` to the `.qmake.conf` or remove it by help of [Partial guessing of the `TINYORM_BUILD_TREE`](tinyorm.mdx#partial-guessing-of-the-tinyorm_build_tree) and set the `VCPKG_ROOT` environment variable at system level as is described in [`Set up vcpkg environment`](tinyorm.mdx#set-up-vcpkg-environment).
:::
:::info
diff --git a/docs/building/migrations.mdx b/docs/building/migrations.mdx
index 72fe29013..309c569ab 100644
--- a/docs/building/migrations.mdx
+++ b/docs/building/migrations.mdx
@@ -724,11 +724,13 @@ Read the [Consume TinyOrm library (qmake)](tinyorm.mdx#consume-tinyorm-library-q
Create the `.qmake.conf` file in the `tom` application root folder with the following content.
-```qmake
+```qmake title='.qmake.conf'
# Path to the PARENT folder of the TinyORM source folder
-TINY_MAIN_DIR = $$clean_path($$PWD/../../TinyORM/)
+TINY_MAIN_DIR = $$clean_path($$PWD/../../TinyORM/)
# To find .env and .env.$$QMAKE_PLATFORM files
TINY_DOTENV_ROOT = $$PWD
+# Path to the current build tree (used to guess the TinyORM build tree)
+#TINY_BUILD_TREE = $$shadowed($$PWD)
# To find .prf files, needed by eg. CONFIG += tiny_system_headers inline/extern_constants
QMAKEFEATURES *= $$quote($$TINY_MAIN_DIR/TinyORM/qmake/features)
@@ -806,8 +808,10 @@ QMAKE_LFLAGS *= -fuse-ld=lld
Don't forget to update the `TINYORM_BUILD_TREE` and `TINY_VCPKG_ROOT` folder paths to your needs if you are not using the recommended [`Folders structure`](tinyorm.mdx#folders-structure).
+You can use the [Partial guessing of the `TINYORM_BUILD_TREE`](tinyorm.mdx#partial-guessing-of-the-tinyorm_build_tree) if you don't like to specify it manually. Just comment out the `TINYORM_BUILD_TREE` and uncomment the `TINY_BUILD_TREE = $$shadowed($$PWD)` in the `.qmake.conf` file.
+
:::tip
-You can entirely avoid the `.env` files, just move the `TINYORM_BUILD_TREE` to the `.qmake.conf` and set the `VCPKG_ROOT` at system level as is described in [`Set up vcpkg environment`](tinyorm.mdx#set-up-vcpkg-environment).
+You can entirely avoid the `.env` files, just move the `TINYORM_BUILD_TREE` to the `.qmake.conf` or remove it by help of [Partial guessing of the `TINYORM_BUILD_TREE`](tinyorm.mdx#partial-guessing-of-the-tinyorm_build_tree) and set the `VCPKG_ROOT` environment variable at system level as is described in [`Set up vcpkg environment`](tinyorm.mdx#set-up-vcpkg-environment).
:::
:::info
diff --git a/docs/building/tinyorm.mdx b/docs/building/tinyorm.mdx
index ad4c0220c..d46a93d97 100644
--- a/docs/building/tinyorm.mdx
+++ b/docs/building/tinyorm.mdx
@@ -804,6 +804,8 @@ It has a few requirements, you need to:
- specify path to the `TinyORM` qmake features (`.prf` files) using the `QMAKEFEATURES` variable that can only be set in the `.qmake.conf` file
- specify `qmake` or `environment` variables to find the `vcpkg` installation (`TINY_VCPKG_ROOT` and `TINY_VCPKG_TRIPLET`)
- specify path to the `TinyORM` build folder (`TINYORM_BUILD_TREE`)
+ - you can specify it __manually__
+ - or you can use [Partial guessing of the `TINYORM_BUILD_TREE`](#partial-guessing-of-the-tinyorm_build_tree)
- build your application with the same `CONFIG` `qmake` variables that were used when building the `TinyORM` library
Let's explain one by one.
@@ -832,6 +834,10 @@ You can move all `qmake` variables that are part of the `qmake` configuration pr
You can look at the [Auto-configure using .qmake.conf and .env](hello-world.mdx#auto-configure-using-qmake_conf-and-env) example for `Hello world` project of what must stay in the `qmake.conf` file and what can be moved to the `.env` files.
+:::tip
+You can use the [Partial guessing of the `TINYORM_BUILD_TREE`](#partial-guessing-of-the-tinyorm_build_tree) if you don't like to specify it manually.
+:::
+
##### Variables affecting `TinyOrm.pri`
You must define the following variables before the `TinyOrm.pri` is included:
@@ -1009,6 +1015,32 @@ The `tiny_dotenv` feature can be turned off using the [`disable_dotenv`](#disabl
`Environment files` don't work in the `CMake` builds.
:::
+#### Partial guessing of the `TINYORM_BUILD_TREE`
+
+You don't have to manually define the `TINYORM_BUILD_TREE` in `.env` or `.qmake.conf` files. The `TINYORM_BUILD_TREE` absolute path can be put together for you (this is happening inside the `variables.pri` file) and `TinyORM` build folder name can be guessed for you too.
+
+You must define the following variables before the `TinyOrm.pri` will be included to make this real (set them in the `.qmake.conf`):
+
+| Variable Name | Description |
+| ----------------- | ----------- |
+| `TINY_MAIN_DIR` | Path to the __PARENT__ folder of the `TinyORM` source folder. |
+| `TINY_BUILD_TREE` | Path to the __current__ build tree - `TINY_BUILD_TREE = $$shadowed($$PWD)`. |
+
+The `TINY_MAIN_DIR` is required for another features anyway (so it should already be set) and all that's left is to set the `TINY_BUILD_TREE`.
+
+```qmake title='.qmake.conf'
+# Path to the current build tree (used to guess the TinyORM build tree)
+TINY_BUILD_TREE = $$shadowed($$PWD)
+```
+
+If you will follow this pattern or logic then you can switch `QtCreator Kits` and the `TINYORM_BUILD_TREE` will be __auto-generated__ correctly and will always point to the correct `TinyORM` build tree.
+
+It works this way, all is happening inside the `variables.pri`, it takes a build folder name for the __current__ project eg. `build-HelloWorld-Desktop_Qt_6_5_3_MSVC2022_64bit-Debug`, replaces the `HelloWorld` with the `TinyORM` and as we already know the `TinyORM` build folder location we can simply concatenate these paths like `$$TINY_MAIN_DIR/TinyORM-builds-qmake/build-TinyORM-Desktop_Qt_6_5_3_MSVC2022_64bit-Debug`.
+
+:::caution
+This will only work if you follow the recommended [`Folders structure`](#folders-structure).
+:::
+
### Manual configuration internals
There is not much to say about the `Manual configuration` feature. It uses `conf.pri` files (there are four, one for every project or sub-project), and every project has prepared its own `conf.pri.example` file for faster initial configuration.