Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmake] Remove conan package manager and use only CMake instead #528

Merged
merged 9 commits into from
May 11, 2023

Conversation

IAmNotHanni
Copy link
Member

@IAmNotHanni IAmNotHanni commented Apr 11, 2023

Please test this!

Closes #522
Closes #512
Closes #501

History

Conan package manager is no longer required, as all dependencies can be downloaded simply through CMake by now. While in my personal opinion CMake has improved a lot over time, conan has not. It has been a constant source of frustration and broken build setups, most importantly our broken CI. Furthermore, I get the impression that almost nobody who comes into our project has any experience with conan, while most people have heard or use CMake. Using CMake+conan is just some thing in our project that has grown over time, but I think it's justified to say goodbye to it.

Note: Because we will no longer use conan to install Vulkan tools, this pull request will reverse #491

  • Check if there is a way to run all checks only once (not duplicate) when opening a pull request
  • Check if all build artifacts are being uploaded correctly
  • Build both debug and release configuration in CI
  • Remove INEXOR_USE_VMA_RECORDING option (deprecated in VMA 3.0.0)
  • Build tests and benchmarks in CI as well
  • Integrate volk Vulkan metaloader (Use volk meta-loader library #501)
  • Get Vulkan headers through CMake
  • Fix code style (clang-format)
  • Remove unused and irrelevant MeshBuffer template
  • Mark Windows clang build as required for passing checks!
  • Fix static code analysis (clang-tidy)
  • Fix Windows MSVC build
  • Fix Windows clang build
  • Rebase onto main
  • Pick required changes from branch iceflower/conan_cmake
  • Test on Windows
  • Test on Linux
  • Update documentation
  • Use actions/upload-artifact@v3
  • Squash commits

Outlook

  • Run tests in CI as well (tests and benchmarks don't require a gpu)
  • Disable warnings from third party libs when building (yeetari's fix)
  • Turn on tests and benchmarks in Windows CI again (Fix gest and benchmark in Windows CI #529)

@IAmNotHanni IAmNotHanni added the cat:dev tools building/ compiling the program, cmake configuration and general development tools label Apr 11, 2023
@IAmNotHanni IAmNotHanni self-assigned this Apr 11, 2023
@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni

This comment was marked as outdated.

@IAmNotHanni IAmNotHanni force-pushed the yeetari/no-conan branch 2 times, most recently from b9b297d to 45158e8 Compare April 11, 2023 20:43
@IAmNotHanni
Copy link
Member Author

IAmNotHanni commented Apr 11, 2023

On Windows, VMA must be configured with VMA_DYNAMIC_VULKAN_FUNCTIONS 1 and VMA_STATIC_VULKAN_FUNCTIONS 0

EDIT: This is only the case if your (my) outdated graphics card does not support Vulkan 1.3 hahah. I guess it's also time for my new machine to arrive :)

Read more here: GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#280

Oh man it's really about time we use volk metaloader!

@IAmNotHanni IAmNotHanni force-pushed the yeetari/no-conan branch 5 times, most recently from d10c009 to cd73c2c Compare April 12, 2023 23:14
@IAmNotHanni IAmNotHanni marked this pull request as ready for review April 12, 2023 23:26
@IAmNotHanni IAmNotHanni changed the title Remove conan and use only CMake instead [cmake] Remove conan package manager and use only CMake instead Apr 12, 2023
@IAmNotHanni IAmNotHanni added the prio:blocker this issue cannot be moved to a later milestone, also this label cannot be removed label Apr 12, 2023
.devcontainer/Dockerfile Outdated Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
benchmarks/CMakeLists.txt Outdated Show resolved Hide resolved
example/CMakeLists.txt Show resolved Hide resolved
src/vulkan-renderer/world/collision_query.cpp Outdated Show resolved Hide resolved
example/CMakeLists.txt Show resolved Hide resolved
@IAmNotHanni IAmNotHanni force-pushed the yeetari/no-conan branch 5 times, most recently from fa76daf to 269cd4c Compare May 8, 2023 23:51
@IAmNotHanni
Copy link
Member Author

IAmNotHanni commented May 9, 2023

  • Fix Ubuntu Clang (Release)
  • Fix Uploading of artifacts for Windows MSVC (both Debug & Release)

@IAmNotHanni IAmNotHanni force-pushed the yeetari/no-conan branch 10 times, most recently from e13a263 to ada50ed Compare May 11, 2023 08:54
@yeetari yeetari merged commit 3b91644 into main May 11, 2023
@IAmNotHanni IAmNotHanni deleted the yeetari/no-conan branch May 11, 2023 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat:dev tools building/ compiling the program, cmake configuration and general development tools prio:blocker this issue cannot be moved to a later milestone, also this label cannot be removed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate to Conan 2.0 Use volk meta-loader library
4 participants