Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CMAKE-CONFIGURE-LOG(7)		     CMake		CMAKE-CONFIGURE-LOG(7)

NAME
       cmake-configure-log - CMake Configure Log

       New in version 3.26.

INTRODUCTION
       CMake  writes  a	 running  log,	known as the configure log, of certain
       events that occur during	the Configure step.  The  configure  log  does
       not contain a log of all	output,	errors,	or messages printed while con-
       figuring	a project.  It is a log	of detailed information	about specific
       events, such as toolchain inspection by try_compile(), meant for	use in
       debugging the configuration of a	build tree.

       For  human  use,	 this version of CMake writes the configure log	to the
       file:

	  ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeConfigureLog.yaml

       However,	the location and name of the log file  may  change  in	future
       versions	 of  CMake.   Tools that read the configure log	should get its
       location	using a	configureLog query to the cmake-file-api(7).  See  the
       Log Versioning section below for	details.

LOG STRUCTURE
       The configure log is designed to	be both	machine- and human-readable.

       The  log	 file  is  a YAML document stream containing zero or more YAML
       documents separated by document markers.	 Each document begins  with  a
       ---  document  marker  line,  contains  a single	YAML mapping that logs
       events from one CMake "configure" step, and, if the configure step fin-
       ished normally, ends with a ... document	marker line:

	  ---
	  events:
	    -
	      kind: "try_compile-v1"
	      #	(other fields omitted)
	    -
	      kind: "try_compile-v1"
	      #	(other fields omitted)
	  ...

       A new document is appended to the log every time	CMake  configures  the
       build tree and logs new events.

       The keys	of each	document root mapping are:

       events A	 YAML  block  sequence of nodes	corresponding to events	logged
	      during one CMake "configure" step.  Each event is	 a  YAML  node
	      containing one of	the Event Kinds	documented below.

   Log Versioning
       Each of the Event Kinds is versioned independently.  The	set of keys an
       event's	log  entry provides is specific	to its major version.  When an
       event is	logged,	the latest version of its event	kind that is known  to
       the running version of CMake is always written to the log.

       Tools  reading  the  configure log must ignore event kinds and versions
       they do not understand:

        A future version of CMake may introduce a new event kind or version.

        If an existing	build tree is re-configured with a  different  version
	 of  CMake,  the  log may contain different versions of	the same event
	 kind.

        If cmake-file-api(7) queries request one or more configureLog	object
	 versions,  the	 log  may contain multiple entries for the same	event,
	 each with a different version of its event kind.

       IDEs should write  a  cmake-file-api(7)	query  requesting  a  specific
       configureLog  object  version,  before running CMake, and then read the
       configure log only as described by the file-api reply.

   Text	Block Encoding
       In order	to make	the log	human-readable,	text blocks are	always	repre-
       sented  using  YAML  literal  block  scalars  (|).  Since literal block
       scalars do not support escaping,	backslashes and	non-printable  charac-
       ters are	encoded	at the application layer:

        \\ encodes a backslash.

        \xXX encodes a	byte using two hexadecimal digits, XX.

EVENT KINDS
       Every event kind	is represented by a YAML mapping of the	form:

	  kind:	"<kind>-v<major>"
	  backtrace:
	    - "<file>:<line> (<function>)"
	  checks:
	    - "Checking	for something"
	  #...event-specific keys...

       The keys	common to all events are:

       kind   A	string identifying the event kind and major version.

       backtrace
	      A	 YAML  block sequence reporting	the call stack of CMake	source
	      locations	at which  the  event  occurred,	 from  most-recent  to
	      least-recent.   Each  node  is  a	string specifying one location
	      formatted	as <file>:<line> (<function>).

       checks An optional key that is present when the event occurred with  at
	      least  one  pending  message(CHECK_START).   Its value is	a YAML
	      block sequence reporting	the  stack  of	pending	 checks,  from
	      most-recent to least-recent.  Each node is a string containing a
	      pending check message.

       Additional  mapping  keys  are specific to each (versioned) event kind,
       described below.

   Event Kind message
       The message(CONFIGURE_LOG) command logs message events.

       There is	only one message event major version, version 1.

   message-v1 Event
       A message-v1 event is a YAML mapping:

	  kind:	"message-v1"
	  backtrace:
	    - "CMakeLists.txt:123 (message)"
	  checks:
	    - "Checking	for something"
	  message: |
	    # ...

       The keys	specific to message-v1 mappings	are:

       message
	      A	YAML literal block scalar containing the message text,	repre-
	      sented using our Text Block Encoding.

   Event Kind try_compile
       The try_compile() command logs try_compile events.

       There is	only one try_compile event major version, version 1.

   try_compile-v1 Event
       A try_compile-v1	event is a YAML	mapping:

	  kind:	"try_compile-v1"
	  backtrace:
	    - "CMakeLists.txt:123 (try_compile)"
	  checks:
	    - "Checking	for something"
	  description: "Explicit LOG_DESCRIPTION"
	  directories:
	    source: "/path/to/.../TryCompile-01234"
	    binary: "/path/to/.../TryCompile-01234"
	  cmakeVariables:
	    SOME_VARIABLE: "Some Value"
	  buildResult:
	    variable: "COMPILE_RESULT"
	    cached: true
	    stdout: |
	      #	...
	    exitCode: 0

       The keys	specific to try_compile-v1 mappings are:

       description
	      An  optional key that is present when the	LOG_DESCRIPTION	<text>
	      option was used.	Its value is a string containing the  descrip-
	      tion <text>.

       directories
	      A	 mapping describing the	directories associated with the	compi-
	      lation attempt.  It has the following keys:

	      source String   specifying   the	 source	  directory   of   the
		     try_compile() project.

	      binary String   specifying   the	 binary	  directory   of   the
		     try_compile() project.  For non-project invocations, this
		     is	often the same as the source directory.

       cmakeVariables
	      An optional key that is present when CMake propagates  variables
	      into  the	 test  project,	 either	 automatically	or  due	to the
	      CMAKE_TRY_COMPILE_PLATFORM_VARIABLES variable.  Its value	 is  a
	      mapping from variable names to their values.

       buildResult
	      A	 mapping describing the	result of compiling the	test code.  It
	      has the following	keys:

	      variable
		     A string specifying the name of the CMake variable	 stor-
		     ing the result of trying to build the test	project.

	      cached A boolean indicating whether the above result variable is
		     stored in the CMake cache.

	      stdout A	YAML  literal  block scalar containing the output from
		     building the test project,	 represented  using  our  Text
		     Block  Encoding.	This  contains	build output from both
		     stdout and	stderr.

	      exitCode
		     An	integer	specifying the build tool exit code from  try-
		     ing to build the test project.

   Event Kind try_run
       The try_run() command logs try_run events.

       There is	only one try_run event major version, version 1.

   try_run-v1 Event
       A try_run-v1 event is a YAML mapping:

	  kind:	"try_run-v1"
	  backtrace:
	    - "CMakeLists.txt:456 (try_run)"
	  checks:
	    - "Checking	for something"
	  description: "Explicit LOG_DESCRIPTION"
	  directories:
	    source: "/path/to/.../TryCompile-56789"
	    binary: "/path/to/.../TryCompile-56789"
	  buildResult:
	    variable: "COMPILE_RESULT"
	    cached: true
	    stdout: |
	      #	...
	    exitCode: 0
	  runResult:
	    variable: "RUN_RESULT"
	    cached: true
	    stdout: |
	      #	...
	    stderr: |
	      #	...
	    exitCode: 0

       The  keys  specific  to try_run-v1 mappings include those documented by
       the try_compile-v1 event, plus:

       runResult
	      A	mapping	describing the result of running the  test  code.   It
	      has the following	keys:

	      variable
		     A	string specifying the name of the CMake	variable stor-
		     ing the result of trying to run the test executable.

	      cached A boolean indicating whether the above result variable is
		     stored in the CMake cache.

	      stdout An	optional key that is present  when  the	 test  project
		     built  successfully.   Its	 value is a YAML literal block
		     scalar containing	output	from  running  the  test  exe-
		     cutable, represented using	our Text Block Encoding.

		     If	 RUN_OUTPUT_VARIABLE  was  used, stdout	and stderr are
		     captured together,	so this	will contain both.  Otherwise,
		     this will contain only the	stdout output.

	      stderr An	optional key that is present  when  the	 test  project
		     built successfully	and the	RUN_OUTPUT_VARIABLE option was
		     not  used.	 Its value is a	YAML literal block scalar con-
		     taining output from running the test  executable,	repre-
		     sented using our Text Block Encoding.

		     If	 RUN_OUTPUT_VARIABLE  was  used, stdout	and stderr are
		     captured together in the stdout key, and  this  key  will
		     not  be present.  Otherwise, this will contain the	stderr
		     output.

	      exitCode
		     An	optional key that is present  when  the	 test  project
		     built  successfully.   Its	value is an integer specifying
		     the exit code, or a string	containing an  error  message,
		     from trying to run	the test executable.

COPYRIGHT
       2000-2024 Kitware, Inc. and Contributors

3.31.9				 Nov 01, 2025		CMAKE-CONFIGURE-LOG(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=cmake-configure-log&sektion=7&manpath=FreeBSD+Ports+15.0>

home | help