// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page qt-deploy-qt-conf.html
\ingroup cmake-commands-qtcore

\title qt_deploy_qt_conf
\target qt_deploy_qt_conf

\summary {Write a qt.conf file at deployment time.}

\include cmake-find-package-core.qdocinc

Unlike most other CMake commands provided by Qt, \c{qt_deploy_qt_conf()} can
only be called from a deployment script. It cannot be called directly by the
project.

\cmakecommandsince 6.3
\preliminarycmakecommand
\note This command does not usually need to be called directly. It is used
      internally by other higher level commands, but projects wishing to
      implement more customized deployment logic may find it useful.

\section1 Synopsis

\badcode
qt_deploy_qt_conf(file_path
    [PREFIX prefix]
    [DOC_DIR doc_dir]
    [HEADERS_DIR headers_dir]
    [LIB_DIR lib_dir]
    [LIBEXEC_DIR libexec_dir]
    [BIN_DIR bin_dir]
    [PLUGINS_DIR plugins_dir]
    [QML_DIR qml_dir]
    [ARCHDATA_DIR archdata_dir]
    [DATA_DIR data_dir]
    [TRANSLATIONS_DIR translations_dir]
    [EXAMPLES_DIR examples_dir]
    [TESTS_DIR test_dir]
    [SETTINGS_DIR settings_dir]
)
\endcode

\section1 Description

Use this command when you need to generate a \l{Using qt.conf}{qt.conf} file
during deployment. The default value of any path supported by \c{qt.conf} can
be overridden with the corresponding \c{..._DIR} option. The command will only
write a path to the generated \c{qt.conf} file if it differs from the default
value.
The default values can be found at \l{Overriding Paths}.

The \c file_path argument expects an absolute path to the location where the
\c qt.conf file should be written to. The \l{QT_DEPLOY_PREFIX} and \l{QT_DEPLOY_BIN_DIR}
variables can be used to dynamically specify a path relative to the deployment binary directory,
as shown in the example below. This helps avoid hard-coding an absolute path.

\sa {qt6_generate_deploy_app_script}{qt_generate_deploy_app_script()},
    qt_deploy_runtime_dependencies()

\section1 Example

\badcode
# The following script must only be executed at install time
set(deploy_script "${CMAKE_CURRENT_BINARY_DIR}/deploy_custom.cmake")

file(GENERATE OUTPUT ${deploy_script} CONTENT "
include(\"${QT_DEPLOY_SUPPORT}\")
qt_deploy_qt_conf(\"\${QT_DEPLOY_PREFIX}/\${QT_DEPLOY_BIN_DIR}/qt.conf\"
    DATA_DIR \"./custom_data_dir\"
    TRANSLATIONS_DIR \"./custom_translations_dir\"
)
")

install(SCRIPT ${deploy_script})
\endcode

*/
