Skip to content

tracy 0.12.1 #226073

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

tracy 0.12.1 #226073

wants to merge 2 commits into from

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
- Fixed window size calculation on macOS, most notably enabling the vertical timeline scroll bar.
- Made debug builds of the GUI profiler work with broken Apple compiler.
- Fixed profiler compilation when build directory is outside the source directory.
- Set proper include path when using CMake integration.
- Added the Tracy Metal and CUDA headers to CMake install configuration.
- Documented flame graphs.

View the full release notes at https://github.com/wolfpld/tracy/releases/tag/v0.12.1.


@github-actions github-actions bot added the bump-formula-pr PR was created using `brew bump-formula-pr` label Jun 7, 2025
@chenrui333 chenrui333 added help wanted Task(s) needing PRs from the community or maintainers build failure CI fails while building the software labels Jun 7, 2025
@github-actions github-actions bot added the autosquash Automatically squash pull request commits according to Homebrew style. label Jun 10, 2025
@daeho-ro daeho-ro mentioned this pull request Jun 12, 2025
6 tasks
@gav2xlin
Copy link

What has happened to this update?

Error: ::error::tracy 0.12.1 did not build

I compiled this version on Linux, macOS and Windows 🤔

@SMillerDev
Copy link
Member

Log says:

-- CPM: Adding package [email protected] (v1.5.7 to /private/tmp/tracy-20250610-5786-xqwecw/tracy-0.12.1/capture/build/.cpm-cache/zstd/dfd2e0b6e613dcf44911302708e636a8aee527d2)
  CMake Error at /opt/homebrew/Library/Homebrew/cmake/trap_fetchcontent_provider.cmake:12 (message):
    Refusing to populate dependency 'zstd' with FetchContent while building in
    Homebrew, please use a formula dependency or add a resource to the formula.
  Call Stack (most recent call first):
    /opt/homebrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2468:EVAL:1 (trap_fetchcontent_provider)
    /opt/homebrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2468 (cmake_language)
    /opt/homebrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2314 (__FetchContent_MakeAvailable_eval_code)
    /private/tmp/tracy-20250610-57[86](https://github.com/Homebrew/homebrew-core/actions/runs/15559795771/job/43809592077?pr=226073#step:3:87)-xqwecw/tracy-0.12.1/cmake/CPM.cmake:1114 (FetchContent_MakeAvailable)
    /private/tmp/tracy-20250610-5786-xqwecw/tracy-0.12.1/cmake/CPM.cmake:895 (cpm_fetch_package)
    /private/tmp/tracy-20250610-5786-xqwecw/tracy-0.12.1/cmake/vendor.cmake:106 (CPMAddPackage)
    CMakeLists.txt:17 (include)

@gav2xlin
Copy link

@SMillerDev I investigated the changes https://github.com/wolfpld/tracy/blob/master/cmake/vendor.cmake

csvexport requires zstd, nfd and ppqsort (as I see)
nfd is nativefiledialog-extended

wolfpld/tracy@v0.11.1...v0.12.1

https://github.com/wolfpld/tracy/blob/master/cmake/vendor.cmake

These requirements are new

CPMAddPackage(
NAME zstd

CPMAddPackage(
NAME ImGui

CPMAddPackage(
NAME nfd

CPMAddPackage(
NAME PPQSort

CPMAddPackage(
NAME wayland-protocols

But zstd was added 🤔

  • depends_on "zstd"

@SMillerDev
Copy link
Member

Yeah, somehow they forgot to make that one check for a system install. Would you mind filing an issue for that @gav2xlin ?

@gav2xlin
Copy link

@SMillerDev I doubt that this fix requires an issue

-- CPM: Adding package [email protected] (v1.5.7 to /private/tmp/tracy-20250610-5786-xqwecw/tracy-0.12.1/capture/build/.cpm-cache/zstd/dfd2e0b6e613dcf44911302708e636a8aee527d2)
CMake Error at /opt/homebrew/Library/Homebrew/cmake/trap_fetchcontent_provider.cmake:12 (message):
Refusing to populate dependency 'zstd' with FetchContent while building in
Homebrew, please use a formula dependency or add a resource to the formula.

https://github.com/Homebrew/brew/blob/master/Library/Homebrew/cmake/trap_fetchcontent_provider.cmake

option(HOMEBREW_ALLOW_FETCHCONTENT "Allow FetchContent to be used in Homebrew builds" OFF)

if (HOMEBREW_ALLOW_FETCHCONTENT)
return()
endif()

macro(trap_fetchcontent_provider method depName)
message(FATAL_ERROR "Refusing to populate dependency '${depName}' with FetchContent while building in Homebrew, please use a formula dependency or add a resource to the formula.")
endmacro()

That's not difficult to fix
https://github.com/Homebrew/homebrew-core/blob/6cbf096b7666bea176d2d18a003c5951667dbe73/Formula/t/tracy.rb

https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_FULLY_DISCONNECTED
I can try applying this option

@gav2xlin gav2xlin mentioned this pull request Jun 20, 2025
6 tasks
@SMillerDev
Copy link
Member

The problem here is that their CMake configuration checks for every dependency if it's on the system already. If it is not, it'll download it. Except for zstd where it does not check the system first.

Homebrew doesn't want any dependencies downloading during the install stage so it blocks that.

The fix would be for upstream to check if zstd is installed and only download it if it isn't.

@gav2xlin
Copy link

gav2xlin commented Jun 20, 2025

I found such workarounds in Homebrew

-DHOMEBREW_ALLOW_FETCHCONTENT=ON - allow FetchContent()
-DFETCHCONTENT_FULLY_DISCONNECTED=ON - but disconnect external sources
-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS

@SMillerDev
Copy link
Member

It should really be fixed upstream instead, because Homebrew won't be the only packager objecting to random downloads.

@gav2xlin
Copy link

gav2xlin commented Jun 20, 2025

@SMillerDev
"It should really be fixed upstream instead, because Homebrew won't be the only packager objecting to random downloads."

I doubt they will fix it. That's not a bug. Tracy depends on CPM.cmake
https://github.com/cpm-cmake/CPM.cmake/blob/master/cmake/CPM.cmake

I'm not a Ruby developer. I just copied examples from Homebrew.

It was my first experiment https://github.com/Homebrew/homebrew-core/actions/runs/15774527360/job/44466317732?pr=227617

-- CPM: Adding package [email protected] (v1.5.7 to /var/tmp/tracy-20250620-9942-rpwaue/tracy-0.12.1/csvexport/build/.cpm-cache/zstd/dfd2e0b6e613dcf44911302708e636a8aee527d2) CMake Error at /var/tmp/tracy-20250620-9942-rpwaue/tracy-0.12.1/cmake/CPM.cmake:1125 (cpm_store_fetch_properties): cpm_store_fetch_properties Function invoked with incorrect arguments for function named: cpm_store_fetch_properties

https://github.com/cpm-cmake/CPM.cmake/blob/master/cmake/CPM.cmake
if(EXISTS ${download_directory})
cpm_store_fetch_properties() is called there

Then, I disabled some CPM features https://github.com/Homebrew/homebrew-core/actions/runs/15775035077/job/44467668865?pr=227617

CPM: nfd not found via find_package(nfd 1.2.1)
CPM: PPQSort not found via find_package(PPQSort 1.0.5)
CPM: ImGui not found via find_package(ImGui 1.91.9)

https://github.com/wolfpld/tracy/blob/master/cmake/vendor.cmake

Someone needs to add nfd, pqsort and imgui to Homebrew🤔

https://github.com/ocornut/imgui
https://github.com/GabTux/PPQSort
https://github.com/btzy/nativefiledialog-extended

My change: https://github.com/cpm-cmake/CPM.cmake
args += %w[ -DHOMEBREW_ALLOW_FETCHCONTENT=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS -DCPM_USE_LOCAL_PACKAGES=ON -DCPM_DONT_UPDATE_MODULE_PATH=ON -DCPM_LOCAL_PACKAGES_ONLY=ON ]

CPM_USE_LOCAL_PACKAGES
CPM can be configured to use find_package to search for locally installed dependencies first by setting the CMake option CPM_USE_LOCAL_PACKAGES.

If the option CPM_LOCAL_PACKAGES_ONLY is set, CPM will emit an error if the dependency is not found locally. These options can also be set as environmental variables.

CPM_DONT_UPDATE_MODULE_PATH # I guess this option may be removed
By default, CPM will override any find_package commands to use the CPM downloaded version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosquash Automatically squash pull request commits according to Homebrew style. build failure CI fails while building the software bump-formula-pr PR was created using `brew bump-formula-pr` help wanted Task(s) needing PRs from the community or maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants