inexorgame / vulkan-renderer

A new 3D game engine for Linux and Windows using C++20 and Vulkan API 1.3, in very early but ongoing development
https://inexor.org
MIT License
757 stars 33 forks source link

[conan|cmake] Migrate to Conan 2.0 #512

Closed IceflowRE closed 1 year ago

IceflowRE commented 1 year ago

How i hate these settings.yml check. This is such a design failure.

IAmNotHanni commented 1 year ago

I can't really follow what you are doing there. I don't have enough conan and CMake knowledge. I can test though.

IceflowRE commented 1 year ago

Haha right some explanation:

This will make that we do not have to use conan to get dependencies. For example if someone has it installed and do not want to use conan this allows him to do so. We just tell conan to give us FindXXX cmake files which do we use. Which configures everything.

This also prepares us for Conan 2.0. Who is planned to be less intrusive in CMake.

Of course for CI and bug reports we have to insist on conan due to reproducable builds.

IceflowRE commented 1 year ago

On Ubuntu the output folder is example and not bin anymore?

IAmNotHanni commented 1 year ago

Hmm, no it shouldn't be example, it should be bin?

IAmNotHanni commented 1 year ago

This is working fine on m Linux Mint using cmake 3.22.4, conan 1.53.0, and clang++14.

IAmNotHanni commented 1 year ago

Ok let's start with this:

 -- Conan executing: /usr/local/bin/conan install /__w/vulkan-renderer/vulkan-renderer --remote conancenter --build outdated --options build_benchmarks=False --options build_tests=False --profile default --settings build_type=Release --settings compiler=gcc --settings compiler.version=12.2 --settings compiler.libcxx=libstdc++11 --settings compiler.libcxx=libstdc++11
ERROR: Invalid setting '12.2' is not a valid 'settings.compiler.version' value.
Possible values are ['4.1', '4.4', '4.5', '4.6', '4.7', '4.8', '4.9', '5', '5.1', '5.2', '5.3', '5.4', '5.5', '6', '6.1', '6.2', '6.3', '6.4', '6.5', '7', '7.1', '7.2', '7.3', '7.4', '7.5', '8', '8.1', '8.2', '8.3', '8.4', '9', '9.1', '9.2', '9.3', '9.4', '10', '10.1', '10.2', '10.3', '11', '11.1', '11.2', '11.3', '12']
Read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-invalid-setting"
CMake Error at build/conan.cmake:655 (message):
  Conan install failed='1'
Call Stack (most recent call first):
  cmake/conan_setup.cmake:51 (conan_cmake_install)
  CMakeLists.txt:38 (include)
IAmNotHanni commented 1 year ago

This is working fine on m Linux Mint using cmake 3.22.4, conan 1.53.0, and clang++14.

Still works with updated dependencies after you pushed Iceflower :)

IceflowRE commented 1 year ago

This is working fine on m Linux Mint using cmake 3.22.4, conan 1.53.0, and clang++14.

Still works with updated dependencies after you pushed Iceflower :)

Could you try it on windows but delete rename with appending an underscore beforehand

IAmNotHanni commented 1 year ago

I removed this code part because it's not necessary to have it anymore:

find_program(GLSL_VALIDATOR glslangValidator REQUIRED)
if(NOT GLSL_VALIDATOR)
    message(FATAL_ERROR "glslangValidator not found!")
endif()

I get the following errors now:

[1/49] Generating ../../shaders/main.frag.spv
FAILED: ../shaders/main.frag.spv /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.frag.spv 
cd /home/johannes/Inexor/conan-fix/vulkan-renderer/build/shaders && -V /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.frag -o /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.frag.spv
/bin/sh: 1: -V: not found
[2/49] Generating ../../shaders/main.vert.spv
FAILED: ../shaders/main.vert.spv /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.vert.spv 
cd /home/johannes/Inexor/conan-fix/vulkan-renderer/build/shaders && -V /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.vert -o /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/main.vert.spv
/bin/sh: 1: -V: not found
[3/49] Generating ../../shaders/ui.frag.spv
FAILED: ../shaders/ui.frag.spv /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.frag.spv 
cd /home/johannes/Inexor/conan-fix/vulkan-renderer/build/shaders && -V /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.frag -o /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.frag.spv
/bin/sh: 1: -V: not found
[4/49] Generating ../../shaders/ui.vert.spv
FAILED: ../shaders/ui.vert.spv /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.vert.spv 
cd /home/johannes/Inexor/conan-fix/vulkan-renderer/build/shaders && -V /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.vert -o /home/johannes/Inexor/conan-fix/vulkan-renderer/shaders/ui.vert.spv
/bin/sh: 1: -V: not found
ninja: build stopped: subcommand failed.

We have glslang/1.3.236.0 in our conanfile.py. The question is now: how to use it for compiling the shaders?

IceflowRE commented 1 year ago

Superseded by #528