diff --git a/documentation/source/development/benchmarking.rst b/documentation/source/development/benchmarking.rst index b1dcf3b15..4435d186b 100644 --- a/documentation/source/development/benchmarking.rst +++ b/documentation/source/development/benchmarking.rst @@ -2,6 +2,5 @@ Benchmarking ============ - Inexor will use `Google Benchmark `__ in the future. -- Google Benchmark is also `available in conan center `__, just as `Google Test `__. - Benchmarks can also not run in GitHub actions since testing Vulkan features would require a graphics card. - The tests will run locally on the developer's machine along with the tests. diff --git a/documentation/source/development/building.rst b/documentation/source/development/building.rst index f6756ea73..f4f6c4392 100644 --- a/documentation/source/development/building.rst +++ b/documentation/source/development/building.rst @@ -53,9 +53,6 @@ The following CMake targets and options are available: * - INEXOR_BUILD_BENCHMARKS - Builds inexor-renderer-benchmarks. - ``OFF`` - * - INEXOR_CONAN_PROFILE - - To adjust the conan profile, use ``-DINEXOR_CONAN_PROFILE=``. - - ``default`` * - INEXOR_BUILD_DOC - Builds the documentation with `Sphinx `__. - ``OFF`` @@ -68,17 +65,17 @@ The following CMake targets and options are available: Windows ^^^^^^^ -Example: Create Visual Studio 2019 project map for Debug mode including docs, tests, and benchmarks: +Example: Create Visual Studio 2022 project map for Debug mode including docs, tests, and benchmarks: .. code-block:: shell - cmake -G "Visual Studio 16 2019" -A x64 -B./cmake-build-debug-vs/ -DCMAKE_BUILD_TYPE=Debug -DINEXOR_BUILD_DOC=ON -DINEXOR_BUILD_TESTS=ON -DINEXOR_BUILD_BENCHMARKS=ON ./ + cmake -G "Visual Studio 17 2022" -A x64 -B./cmake-build-debug-vs/ -DCMAKE_BUILD_TYPE=Debug -DINEXOR_BUILD_DOC=ON -DINEXOR_BUILD_TESTS=ON -DINEXOR_BUILD_BENCHMARKS=ON ./ -Example: Create Visual Studio 2019 project map for Release mode but without docs, tests, and benchmarks: +Example: Create Visual Studio 2022 project map for Release mode but without docs, tests, and benchmarks: .. code-block:: shell - cmake -G "Visual Studio 16 2019" -A x64 -B./cmake-build-release-vs/ -DCMAKE_BUILD_TYPE=Release ./ + cmake -G "Visual Studio 17 2022" -A x64 -B./cmake-build-release-vs/ -DCMAKE_BUILD_TYPE=Release ./ If you have `Ninja build system `__ installed, you can use it like this: @@ -86,23 +83,20 @@ If you have `Ninja build system `__ installed, you can # executing from project root assumed # Ninja generator and Debug type - \> cmake -DINEXOR_CONAN_PROFILE=default -G Ninja -B./cmake-build-debug/ -DCMAKE_BUILD_TYPE=Debug ./ + \> cmake -G Ninja -B./cmake-build-debug/ -DCMAKE_BUILD_TYPE=Debug ./ # Ninja generator and Release type \> cmake -G Ninja -B./cmake-build-release/ -DCMAKE_BUILD_TYPE=Release ./ # Create Visual Studio Solution - \> cmake -G "Visual Studio 16 2019" -A x64 -B./cmake-build-debug-vs/ -DCMAKE_BUILD_TYPE=Debug ./ + \> cmake -G "Visual Studio 17 2022" -A x64 -B./cmake-build-debug-vs/ -DCMAKE_BUILD_TYPE=Debug ./ # Build all targets \> cmake --build ./cmake-build-debug/ -.. note:: - If you use CMake GUI add `CMAKE_BUILD_TYPE` with value `Debug` or `Release`. `#228 `__. - -- Choose any IDE that CMake can generate a project map for. If in doubt use `Visual Studio 2019 `__. +- Choose any IDE that CMake can generate a project map for. If in doubt use `Visual Studio 2022 `__. - Clone the source code. Free and good tools are `GitHub Desktop `__ or `GitKraken Git GUI `__. - Open CMake and select the root folder which contains ``CMakeLists.txt`` (not just ``src`` folder!). - You can choose any location for the ``build`` folder. -- Click "Configure" and select your IDE (in doubt ``Visual Studio 16 2019``). Click "Finish". -- CMake will now set up dependencies automatically for you using conan package manager. This might take a while. If this fails, you really should open a ticket! +- Click "Configure" and select your IDE (in doubt ``Visual Studio 17 2022``). Click "Finish". +- CMake will now set up dependencies automatically for you. This might take a while. If this fails, you really should open a ticket! - Click "Generate". You can now open the Visual Studio project file in your ``build`` folder. - For debugging, please check that the root directory of the repository is set as working directory in Visual Studio. Usually, CMake should take care of this already. - You are now ready to start debugging! Our main branch must be stable at all cost. @@ -142,19 +136,12 @@ Install dependencies and tools: | | ninja-build \ | | | clang-tidy \ | | | vulkan-sdk \ | -| | python3 \ | -| | python3-pip | -| | $ pip3 install \ | -| | wheel \ | -| | setuptools \ | -| | conan | | | | +--------+---------------------------------------+ | Gentoo | .. code-block:: shell-session | | | | | | # emerge \ | | | dev-util/cmake \ | -| | dev-util/conan \ | | | dev-util/vulkan-headers \ | | | dev-util/vulkan-tools \ | | | dev-vcs/git \ | @@ -202,12 +189,6 @@ Install dependencies and tools: | | ninja-build \ | | | clang-tidy \ | | | vulkan-sdk \ | -| | python3 \ | -| | python3-pip | -| | $ pip3 install \ | -| | wheel \ | -| | setuptools \ | -| | conan | | | | +--------+---------------------------------------+ | Arch | Follow the | @@ -241,12 +222,6 @@ Install dependencies and tools: | | vulkan-headers \ | | | vulkan-tools \ | | | vulkan-validation-layers \ | -| | python3 \ | -| | python-pip | -| | $ pip3 install \ | -| | wheel \ | -| | setuptools \ | -| | conan | | | | +--------+---------------------------------------+ | Fedora | Install the required packages: | @@ -289,12 +264,6 @@ Install dependencies and tools: | | xkeyboard-config-devel \ | | | glslang-devel | | | | -| | Install conan: [#f1]_ [#f2]_ | -| | | -| | .. code-block:: shell-session | -| | | -| | $ pip install conan | -| | | +--------+---------------------------------------+ | Other | Planned. `We would love to see a | | | pull request on this file if you get | @@ -335,8 +304,3 @@ If you have any trouble please `open a ticket `__ diff --git a/documentation/source/development/engine-design/main.rst b/documentation/source/development/engine-design/main.rst index 86d49ec9e..c0506aed2 100644 --- a/documentation/source/development/engine-design/main.rst +++ b/documentation/source/development/engine-design/main.rst @@ -22,7 +22,6 @@ Source code ├── CHANGELOG.rst ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md - ├── conanfile.py «Conan configuration» ├── CONTRIBUTING.md ├── LICENSE.md ├── README.rst @@ -63,21 +62,8 @@ Dependency management ===================== - In general we try to keep the number of dependencies at a minimum. -- We avoid to add dependencies directly to the project repository because they increase the size of the repository and we have to update them manually. +- Dependencies are downloaded directly by CMake. -- Instead, we prefer to use `conan package manager `__ which allows us to get most dependencies from `conan center `__. - -Conan package manager ---------------------- - -- The list of currently used dependencies can be found in ``conanfile.py`` in the root folder of the repository. -- You must have installed `CMake `__ and `conan package manager `__ in oder to download the dependencies automatically from conan center when running CMake. -- For details please read :ref:`building Instructions` (:ref:`BUILDING Windows`/:ref:`BUILDING Linux`). - -Dependency folder ------------------ - -- If we really need a dependency which is not yet available through conan center, we add it manually to the ``third_party`` folder. Criteria for library selection ------------------------------ diff --git a/documentation/source/development/getting-started.rst b/documentation/source/development/getting-started.rst index a492865fb..09c9effbc 100644 --- a/documentation/source/development/getting-started.rst +++ b/documentation/source/development/getting-started.rst @@ -14,9 +14,6 @@ Required Software `Python `__ with `pip `__ Required for generating the documentation and the C++ package manager. -`Conan `__ - C++ package manager to get the required libraries (dependencies). - `CMake `__ The build generator which generates project files for various IDEs. diff --git a/documentation/source/development/static-code-analysis.rst b/documentation/source/development/static-code-analysis.rst index f4034376e..c48f7af1e 100644 --- a/documentation/source/development/static-code-analysis.rst +++ b/documentation/source/development/static-code-analysis.rst @@ -6,5 +6,5 @@ We analyze our source code regularly using `static code analysis `__. -- `Microsoft Visual Studio code analysis `__. +- `Microsoft Visual Studio code analysis `__. - `Valgrind `__, `Callgrind `__ and `Cachegrind `__. diff --git a/documentation/source/development/test-automation.rst b/documentation/source/development/test-automation.rst index f5d0f1b1d..70fb89499 100644 --- a/documentation/source/development/test-automation.rst +++ b/documentation/source/development/test-automation.rst @@ -2,7 +2,6 @@ Test automation =============== - Inexor will use `Google Test `__ for `automated software testing `__ in the future. -- Because Google Test is `available in conan center `__, we will be able to add this to our list of dependencies easily. - Running automatic tests using GitHub actions is not possible for Vulkan features since this requires a graphics card to be present. - There are some services which offer test automation for rendering, but they are not free. - The tests would have to run on the developer's machine locally. diff --git a/documentation/source/faq/main.rst b/documentation/source/faq/main.rst index 9f3da9b7a..34fedf657 100644 --- a/documentation/source/faq/main.rst +++ b/documentation/source/faq/main.rst @@ -48,7 +48,7 @@ Inexor is a MIT-licensed open-source project which develops a new 3D octree game - Automatic `unit testing `__ and `benchmarking `__. - `Static code analysis `__ with `clang-tidy `__. - `Automatic code formatting `__ using `clang-format `__. -- `CMake `__ project setup with `conan package manager `__ integration. +- `CMake `__ project setup. You can find Vulkan example code online which follows the mantra "don't use this in production - it's tutorial code". Inexor disagrees with this as we believe that defeats its own purpose. If example code is not meant to be used in some other projects then there's something wrong with that example code. Many projects don't use a proper memory management library like `VMA `__ or they do not abstract their code using `RAII `__, but use a lot of code duplication instead. Inexor is designed to be used in production. Bear in mind however that Inexor is also still far away from being a finished game engine. @@ -70,7 +70,7 @@ What is the current state of the project? We are still in very early development, but this project can already offer: -- A modern C++17 codebase with a setup for CMake and conan package manager. +- A modern C++20 codebase with CMake setup. - Stable builds for Windows and Linux using `Continuous Integration (CI) `__. - A `rendergraph `__ in early development. - `ImGui `__ integration using separate renderpasses.