Tyler Yankee
f7756853c5
instrumentation: Exclude (pre|post)Build hooks with MSYS Makefiles
...
The implementation of (pre|post)Build hooks rely on a direct parent-
child relationship between the build system process and `ctest
--start-instrumentation`. MSYS2's `make.exe` uses the msys-runtime POSIX
compatibility layer which disrupts this relationship.
2025-07-22 11:06:41 -04:00
Tyler Yankee
7dbe092d77
instrumentation: Support preBuild and postBuild hooks on Windows
...
* Use `uv_disable_stdio_inheritance` to resolve the deadlock between the
parent build system process and `ctest
--wait-and-collect-instrumentation` on Windows.
* Remove Windows gating from preBuild and postBuild indexing and update
tests and documentation accordingly.
Fixes : #26668
2025-07-22 10:51:03 -04:00
Brad King
6d6c8303f9
Tests: Teach RunCMake.Instrumentation to tolerate make tool output
2025-07-21 12:41:33 -04:00
Brad King
5e26f8d3a7
Merge topic 'instrumentation-ctest-interface'
...
21ac285cd8 Experimental: Update the Instrumentation UUID
9dec460c8c instrumentation: Store CDash settings in query files
afa94bae1e instrumentation: Rename queries field to options
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !10934
2025-07-21 10:13:32 -04:00
Martin Duffy
21ac285cd8
Experimental: Update the Instrumentation UUID
...
Update experimental UUID for instrumentation after commit afa94bae1e
(instrumentation: Rename queries field to options, 2025-07-08) broke compatibility
for old queries.
2025-07-15 08:38:44 -04:00
Martin Duffy
9dec460c8c
instrumentation: Store CDash settings in query files
...
Adds new `cdashSubmit` and `cdashVerbose` options to allow enabling
instrumentation in CDash submissions using query files or the
`cmake_instrumentation` command.
Fixes : #26783 , #26727
2025-07-14 15:44:52 -04:00
Martin Duffy
35f002e293
string(JSON): Include invalid JSON in parse error
2025-07-11 11:16:39 -04:00
Martin Duffy
afa94bae1e
instrumentation: Rename queries field to options
...
Fixes : #26728
2025-07-10 16:25:07 -04:00
Brad King
ed8513783c
Merge topic 'instrumentation-fix'
...
e01d12c14f instrumentation: Prevent unnecessary query loading
f26f127183 instrumentation: Reuse single cmsys::SystemInformation
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10863
2025-06-10 09:48:17 -04:00
Martin Duffy
e01d12c14f
instrumentation: Prevent unnecessary query loading
...
Don't load queries from instrumentation directories when GetIsInTryCompile
or before ClearGeneratedQueries from previous configures has run.
2025-06-09 11:33:24 -04:00
Brad King
deb44bdf73
Merge topic 'instrumentation-snippet-names'
...
39f365ec3c instrumentation: Unique snippet file names
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !10491
2025-03-19 09:05:56 -04:00
Martin Duffy
39f365ec3c
instrumentation: Unique snippet file names
...
Updates the hash in snippet file naming to take the ProcessId into account
so that snippets with identical commands don't risk a collision in filename.
Additionally, this adds a `workingDir` to snippet files so that snippets with
identical commands can be more easily differentiated, such as with install
snippets.
2025-03-18 13:23:02 -04:00
Brad King
2604f5d8b3
Merge topic 'json-errors-filename'
...
f134468a98 JSON: Improve JSON error message formatting
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10463
2025-03-14 12:17:02 -04:00
Martin Duffy
f134468a98
JSON: Improve JSON error message formatting
...
This improves the output of JSON-related error messages. It adds the filename to
the output and excludes the column number.
This is particularly useful when there are multiple JSON files being read that
could be responsible for an error, ie CMakePresets.json and
CMakeUserPresets.json, or multiple instrumentation queries.
Issue: #26717
2025-03-13 10:44:31 -04:00
Martin Duffy
4e7b37cad3
instrumentation: Quote command arguments to preserve separation
...
Fixes : #26702
2025-02-24 13:11:19 -05:00
Martin Duffy
a2232db802
instrumentation: Make hooks compatible with presets
2025-02-17 11:03:28 -05:00
Zack Galbreath
85a63143ed
instrument: don't report target=TARGET_NAME
...
Remove the erroneous default target name when instrumenting
custom commands.
2025-02-15 06:21:58 -05:00
Martin Duffy
2299b2fcab
instrumentation: Add build snippet
...
Adds a new snippet generation for recording the full time spent waiting for
`ninja` or `make` invocations to finish.
2025-02-11 13:31:28 -05:00
Martin Duffy
9689155a05
instrumentation: Add Config value to snippet data
2025-02-09 12:29:09 -05:00
Martin Duffy
314440c320
instrumentation: Run preBuild and postBuild hooks before and after make
...
Updates the preBuild and postBuild instrumentation hooks to run before and
after make is invoked.
2025-02-06 09:49:09 -05:00
Martin Duffy
0fbb927bdd
instrumentation: Disable preBuild and postBuild hooks on Windows
...
The implementation does not work on Windows.
Issue: #26668
2025-02-06 07:46:09 -05:00
Brad King
a13be1301f
Tests/RunCMake/Instrumentation: Improve quoting and escaping in CMake code
2025-02-06 07:45:02 -05:00
Martin Duffy
2680f30caf
instrumentation: Allow multiple CALLBACK arguments
...
Don't require quotes around CALLBACK argument and allow it to be passed
multiple times.
2025-02-04 11:15:20 -05:00
Martin Duffy
fc1d55f6a5
instrumentation: Add preBuild and postBuild hooks for ninja
...
Allows instrumentation indexing and callbacks to occur at the start or end of
every `ninja` invocation.
2025-02-04 11:15:11 -05:00
Alex Turbov
efa7c6aedf
pre-commit: Add a hook to check whitespaces and conflict markers
...
The hook uses settings from `.gitattributes`.
2025-01-26 05:34:18 +04:00
Martin Duffy
9d34069ca8
instrumentation: Add targetLabels field to link snippets
...
Adds a new data field `targetLabels` to link snippets which contains a list of
text labels from the LABELS target property.
2025-01-17 11:07:30 -05:00
Martin Duffy
32444714e5
instrumentation: Update tests so that snippet verification runs
...
Corrects regex matching in Tests/RunCMake/instrumentation so that snippet
verification tests aren't skipped over.
2025-01-17 10:30:09 -05:00
Martin Duffy
097d4fd1b5
instrumentation: Collect and record project build system metrics
...
Add a feature for collecting build instrumentation for CMake projects.
Issue: #26099
2025-01-15 09:16:50 -05:00