diff --git a/doc/src/projects/creator-projects-cmake.qdoc b/doc/src/projects/creator-projects-cmake.qdoc index a5bbc9e4464..cd3fd6b4578 100644 --- a/doc/src/projects/creator-projects-cmake.qdoc +++ b/doc/src/projects/creator-projects-cmake.qdoc @@ -115,7 +115,10 @@ \QC cannot extract files to be installed from a CMake project, and therefore, only executable targets are automatically added to deployment files. You must specify all other files in the \c QtCreatorDeployment.txt - file that you create and place in the root directory of the CMake project. + file that you create and place in either the root directory of the CMake + project or the build directory of the active build configuration. + Currently, Qt Creator first checks the root directory and only if no + \c QtCreatorDeployment.txt exists it checks the active build directory. Use the following syntax in the file: diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 75c300f2103..c21e1eef7f3 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -674,10 +674,14 @@ void CMakeProject::updateApplicationAndDeploymentTargets() QFile deploymentFile; QTextStream deploymentStream; QString deploymentPrefix; - QDir sourceDir; - sourceDir.setPath(t->project()->projectDirectory().toString()); + QDir sourceDir(t->project()->projectDirectory().toString()); + QDir buildDir(t->activeBuildConfiguration()->buildDirectory().toString()); + deploymentFile.setFileName(sourceDir.filePath(QLatin1String("QtCreatorDeployment.txt"))); + // If we don't have a global QtCreatorDeployment.txt check for one created by the active build configuration + if (!deploymentFile.exists()) + deploymentFile.setFileName(buildDir.filePath(QLatin1String("QtCreatorDeployment.txt"))); if (deploymentFile.open(QFile::ReadOnly | QFile::Text)) { deploymentStream.setDevice(&deploymentFile); deploymentPrefix = deploymentStream.readLine(); @@ -687,7 +691,7 @@ void CMakeProject::updateApplicationAndDeploymentTargets() BuildTargetInfoList appTargetList; DeploymentData deploymentData; - QDir buildDir(t->activeBuildConfiguration()->buildDirectory().toString()); + foreach (const CMakeBuildTarget &ct, m_buildTargets) { if (ct.executable.isEmpty()) continue;