Skip to content

feat: fix cmake to use autoupdate vcpkg#6

Open
alexcu2718 wants to merge 1 commit intoalex_stufffrom
feat/fix_cmake
Open

feat: fix cmake to use autoupdate vcpkg#6
alexcu2718 wants to merge 1 commit intoalex_stufffrom
feat/fix_cmake

Conversation

@alexcu2718
Copy link
Copy Markdown
Collaborator

Fix to auto update vcpkg

@gituser12981u2
Copy link
Copy Markdown
Owner

I don't really understand the point of any of this. Even if this was changed to modify files before build, why have it? Makefile already submodule updates and bootstraps and git submodule handles version control for us. So what is the point?

@alexcu2718
Copy link
Copy Markdown
Collaborator Author

alexcu2718 commented Mar 18, 2026

Look at this example why.

λ  git clone https://github.com/gituser12981u2/quark-engine ~/test_example --branch feat/fix_cmake

󰣇 alexc test2  feat/fix_cmake !?   08:49 
λ  cd ~/test_example

󰣇 alexc test_example  feat/fix_cmake   08:49 
λ  make configure
cmake --preset linux-x64-gcc-debug

-- Bootstrapping vcpkg before install
-- Bootstrapping vcpkg before install - done
-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
The following packages will be built and installed:
    fmt:x64-linux@12.1.0
    glfw3:x64-linux@3.4#1
    spdlog[core,fmt,tz-offset]:x64-linux@1.17.0
    tl-expected:x64-linux@1.3.1
  * vcpkg-cmake:x64-linux@2024-04-23
  * vcpkg-cmake-config:x64-linux@2024-05-23
    vulkan:x64-linux@2023-12-17
  * vulkan-headers:x64-linux@1.4.328.0
    vulkan-loader[core,wayland,xcb,xlib]:x64-linux@1.4.328.0
Additional packages (*) will be modified to complete this operation.
Restored 9 package(s) from /home/alexc/.cache/vcpkg/archives in 123 ms. Use --debug to see more details.
Installing 1/9 vcpkg-cmake-config:x64-linux@2024-05-23...
Elapsed time to handle vcpkg-cmake-config:x64-linux: 282 us
vcpkg-cmake-config:x64-linux package ABI: 0917212f56fe2b64aadd7e9aa88dec8a59c14c048c991d4da5d3adb9626ee71e
Installing 2/9 vcpkg-cmake:x64-linux@2024-04-23...
Elapsed time to handle vcpkg-cmake:x64-linux: 173 us
vcpkg-cmake:x64-linux package ABI: eb17887f13c78dde7954ca48eb9359c9e5ea1e4e673dee1a76ff6d55f97bb0f4
Installing 3/9 fmt:x64-linux@12.1.0...
Elapsed time to handle fmt:x64-linux: 411 us
fmt:x64-linux package ABI: 33e773a97a412b6924245f638a12092b69349393813a516a4e310f04b4be44a1
Installing 4/9 glfw3:x64-linux@3.4#1...
Elapsed time to handle glfw3:x64-linux: 268 us
glfw3:x64-linux package ABI: c49aec44db50da148c622afcb789cd11ff3435be0043079df11b2bb81ed932fe
Installing 5/9 spdlog[core,fmt,tz-offset]:x64-linux@1.17.0...
Elapsed time to handle spdlog:x64-linux: 908 us
spdlog:x64-linux package ABI: f82177ffbe45d7c68841decab296045c93119b0a222468f947b0beef1c90b3b5
Installing 6/9 tl-expected:x64-linux@1.3.1...
Elapsed time to handle tl-expected:x64-linux: 266 us
tl-expected:x64-linux package ABI: 42d5568e83fd7d73cd15f28104a5c739583f97c77a371b108e94f9a7eed94641
Installing 7/9 vulkan-headers:x64-linux@1.4.328.0...
Elapsed time to handle vulkan-headers:x64-linux: 694 us
vulkan-headers:x64-linux package ABI: 80eabbb666c103f07de37a9487da9e2d210881b894ac70f2a2111e3d8758af19
Installing 8/9 vulkan-loader[core,wayland,xcb,xlib]:x64-linux@1.4.328.0...
Elapsed time to handle vulkan-loader:x64-linux: 491 us
vulkan-loader:x64-linux package ABI: 27959da00623af750ecd7daec380f89fa0a335c3f9311c1e1a7c073ae3d6f2cb
Installing 9/9 vulkan:x64-linux@2023-12-17...
Elapsed time to handle vulkan:x64-linux: 306 us
vulkan:x64-linux package ABI: 36cb90517534c12a468a6d29a77ca19d77e26c6d6ae31c02b29c660b82800f29
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Some packages did not declare an SPDX license. Check the `copyright` file for each package for more information about their licensing.
Packages installed in this vcpkg installation declare the following licenses:
(Apache-2.0 OR MIT)
CC0-1.0
MIT
Zlib
The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)

glfw3 provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(glfw3 CONFIG REQUIRED)
  target_link_libraries(main PRIVATE glfw)

glfw3 provides pkg-config modules:

  # A multi-platform library for OpenGL, window and input
  glfw3

The package spdlog provides CMake targets:

    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog)

    # Or use the header-only version
    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog_header_only)

tl-expected provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(tl-expected CONFIG REQUIRED)
  target_link_libraries(main PRIVATE tl::expected)

The package vulkan-loader provides the vulkan loader.
Please be aware of https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderApplicationInterface.md#bundling-the-loader-with-an-application

vulkan is compatible with built-in CMake targets:

    # https://cmake.org/cmake/help/latest/module/FindVulkan.html
    find_package(Vulkan REQUIRED)
    target_link_libraries(main PRIVATE Vulkan::Vulkan)

All requested installations completed successfully in: 4.23 ms
-- Running vcpkg install - done
-- The CXX compiler identification is GNU 15.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /home/alexc/test_example/build/linux-x64-gcc-debug/vcpkg_installed/x64-linux/debug/lib/libvulkan.so (found version "1.4.328") found components: glslc glslangValidator
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring done (23.6s)
-- Generating done (0.0s)
-- Build files have been written to: /home/alexc/test_example/build/linux-x64-gcc-debug
./scripts/sync_compile_commands.sh build/linux-x64-gcc-debug
copied build/linux-x64-gcc-debug/compile_commands.json -> compile_commands.json

󰣇 alexc test_example  feat/fix_cmake   08:50 
λ  cd .. && rm -rf ~/test_example

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ  git clone https://github.com/gituser12981u2/quark-engine ~/test_example_old --branch alex_stuff

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ  cd ~/test_example_old

󰣇 alexc test_example_old  alex_stuff   08:50 
λ  make configure
cmake --preset linux-x64-gcc-debug
-- Configuring incomplete, errors occurred!

󰣇 alexc test_example_old  alex_stuff   08:50 
λ  cd .. && rm -rf ~/test_example_old

@gituser12981u2
Copy link
Copy Markdown
Owner

Look at this example why.

λ  git clone https://github.com/gituser12981u2/quark-engine ~/test_example --branch feat/fix_cmake

󰣇 alexc test2  feat/fix_cmake !?   08:49 
λ  cd ~/test_example

󰣇 alexc test_example  feat/fix_cmake   08:49 
λ  make configure
cmake --preset linux-x64-gcc-debug

-- Bootstrapping vcpkg before install
-- Bootstrapping vcpkg before install - done
-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
The following packages will be built and installed:
    fmt:x64-linux@12.1.0
    glfw3:x64-linux@3.4#1
    spdlog[core,fmt,tz-offset]:x64-linux@1.17.0
    tl-expected:x64-linux@1.3.1
  * vcpkg-cmake:x64-linux@2024-04-23
  * vcpkg-cmake-config:x64-linux@2024-05-23
    vulkan:x64-linux@2023-12-17
  * vulkan-headers:x64-linux@1.4.328.0
    vulkan-loader[core,wayland,xcb,xlib]:x64-linux@1.4.328.0
Additional packages (*) will be modified to complete this operation.
Restored 9 package(s) from /home/alexc/.cache/vcpkg/archives in 123 ms. Use --debug to see more details.
Installing 1/9 vcpkg-cmake-config:x64-linux@2024-05-23...
Elapsed time to handle vcpkg-cmake-config:x64-linux: 282 us
vcpkg-cmake-config:x64-linux package ABI: 0917212f56fe2b64aadd7e9aa88dec8a59c14c048c991d4da5d3adb9626ee71e
Installing 2/9 vcpkg-cmake:x64-linux@2024-04-23...
Elapsed time to handle vcpkg-cmake:x64-linux: 173 us
vcpkg-cmake:x64-linux package ABI: eb17887f13c78dde7954ca48eb9359c9e5ea1e4e673dee1a76ff6d55f97bb0f4
Installing 3/9 fmt:x64-linux@12.1.0...
Elapsed time to handle fmt:x64-linux: 411 us
fmt:x64-linux package ABI: 33e773a97a412b6924245f638a12092b69349393813a516a4e310f04b4be44a1
Installing 4/9 glfw3:x64-linux@3.4#1...
Elapsed time to handle glfw3:x64-linux: 268 us
glfw3:x64-linux package ABI: c49aec44db50da148c622afcb789cd11ff3435be0043079df11b2bb81ed932fe
Installing 5/9 spdlog[core,fmt,tz-offset]:x64-linux@1.17.0...
Elapsed time to handle spdlog:x64-linux: 908 us
spdlog:x64-linux package ABI: f82177ffbe45d7c68841decab296045c93119b0a222468f947b0beef1c90b3b5
Installing 6/9 tl-expected:x64-linux@1.3.1...
Elapsed time to handle tl-expected:x64-linux: 266 us
tl-expected:x64-linux package ABI: 42d5568e83fd7d73cd15f28104a5c739583f97c77a371b108e94f9a7eed94641
Installing 7/9 vulkan-headers:x64-linux@1.4.328.0...
Elapsed time to handle vulkan-headers:x64-linux: 694 us
vulkan-headers:x64-linux package ABI: 80eabbb666c103f07de37a9487da9e2d210881b894ac70f2a2111e3d8758af19
Installing 8/9 vulkan-loader[core,wayland,xcb,xlib]:x64-linux@1.4.328.0...
Elapsed time to handle vulkan-loader:x64-linux: 491 us
vulkan-loader:x64-linux package ABI: 27959da00623af750ecd7daec380f89fa0a335c3f9311c1e1a7c073ae3d6f2cb
Installing 9/9 vulkan:x64-linux@2023-12-17...
Elapsed time to handle vulkan:x64-linux: 306 us
vulkan:x64-linux package ABI: 36cb90517534c12a468a6d29a77ca19d77e26c6d6ae31c02b29c660b82800f29
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Some packages did not declare an SPDX license. Check the `copyright` file for each package for more information about their licensing.
Packages installed in this vcpkg installation declare the following licenses:
(Apache-2.0 OR MIT)
CC0-1.0
MIT
Zlib
The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)

glfw3 provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(glfw3 CONFIG REQUIRED)
  target_link_libraries(main PRIVATE glfw)

glfw3 provides pkg-config modules:

  # A multi-platform library for OpenGL, window and input
  glfw3

The package spdlog provides CMake targets:

    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog)

    # Or use the header-only version
    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog_header_only)

tl-expected provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(tl-expected CONFIG REQUIRED)
  target_link_libraries(main PRIVATE tl::expected)

The package vulkan-loader provides the vulkan loader.
Please be aware of https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderApplicationInterface.md#bundling-the-loader-with-an-application

vulkan is compatible with built-in CMake targets:

    # https://cmake.org/cmake/help/latest/module/FindVulkan.html
    find_package(Vulkan REQUIRED)
    target_link_libraries(main PRIVATE Vulkan::Vulkan)

All requested installations completed successfully in: 4.23 ms
-- Running vcpkg install - done
-- The CXX compiler identification is GNU 15.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /home/alexc/test_example/build/linux-x64-gcc-debug/vcpkg_installed/x64-linux/debug/lib/libvulkan.so (found version "1.4.328") found components: glslc glslangValidator
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring done (23.6s)
-- Generating done (0.0s)
-- Build files have been written to: /home/alexc/test_example/build/linux-x64-gcc-debug
./scripts/sync_compile_commands.sh build/linux-x64-gcc-debug
copied build/linux-x64-gcc-debug/compile_commands.json -> compile_commands.json

󰣇 alexc test_example  feat/fix_cmake   08:50 
λ  cd .. && rm -rf ~/test_example

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ  git clone https://github.com/gituser12981u2/quark-engine ~/test_example_old --branch alex_stuff

󰣇 alexc ~  v1.95.0-nightly   08:50 
λ  cd ~/test_example_old

󰣇 alexc test_example_old  alex_stuff   08:50 
λ  make configure
cmake --preset linux-x64-gcc-debug
-- Configuring incomplete, errors occurred!

󰣇 alexc test_example_old  alex_stuff   08:50 
λ  cd .. && rm -rf ~/test_example_old

So what are the errors on alex_stuff? Can you check logs or make it show you the errors?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants