diff options
author | Brad King <brad.king@kitware.com> | 2017-08-28 13:53:04 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2017-08-28 13:53:10 (GMT) |
commit | 55e281c3b78453fc4b692f55a87a9075a099258f (patch) | |
tree | 38586eed2e789f2a7337fa477f243f2fa48664a5 | |
parent | 39889d778eaf87fbd095fc1781a0d421639041d4 (diff) | |
parent | 5fe64511d6a9e4c9a329bc48bcfc26789afc0794 (diff) | |
download | CMake-55e281c3b78453fc4b692f55a87a9075a099258f.zip CMake-55e281c3b78453fc4b692f55a87a9075a099258f.tar.gz CMake-55e281c3b78453fc4b692f55a87a9075a099258f.tar.bz2 |
Merge topic 'cpackifw-repositories-directories'
5fe64511 CPackIFW: Add CPACK_IFW_REPOSITORIES_DIRECTORIES variable
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1150
-rw-r--r-- | Help/release/dev/cpackifw-repositories-directories.rst | 8 | ||||
-rw-r--r-- | Modules/CPackIFW.cmake | 6 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWGenerator.cxx | 39 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWGenerator.h | 1 |
4 files changed, 54 insertions, 0 deletions
diff --git a/Help/release/dev/cpackifw-repositories-directories.rst b/Help/release/dev/cpackifw-repositories-directories.rst new file mode 100644 index 0000000..cda74b8 --- /dev/null +++ b/Help/release/dev/cpackifw-repositories-directories.rst @@ -0,0 +1,8 @@ +cpackifw-repositories-directories +--------------------------------- + +* The :module:`CPackIFW` module gained new + :variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify + additional repositories dirs that will be used to resolve and + repack dependent components. This feature available only + since QtIFW 3.1. diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake index 0210410..0b42c83 100644 --- a/Modules/CPackIFW.cmake +++ b/Modules/CPackIFW.cmake @@ -260,6 +260,12 @@ # Additional prepared packages dirs that will be used to resolve # dependent components. # +# .. variable:: CPACK_IFW_REPOSITORIES_DIRECTORIES +# +# Additional prepared repository dirs that will be used to resolve and +# repack dependent components. This feature available only +# since QtIFW_ 3.1. +# # Tools # """"" # diff --git a/Source/CPack/IFW/cmCPackIFWGenerator.cxx b/Source/CPack/IFW/cmCPackIFWGenerator.cxx index a1df32c..97e792a 100644 --- a/Source/CPack/IFW/cmCPackIFWGenerator.cxx +++ b/Source/CPack/IFW/cmCPackIFWGenerator.cxx @@ -56,6 +56,22 @@ int cmCPackIFWGenerator::PackageFiles() } } + if (!this->RepoDirsVector.empty()) { + if (!this->IsVersionLess("3.1")) { + for (std::vector<std::string>::iterator it = + this->RepoDirsVector.begin(); + it != this->RepoDirsVector.end(); ++it) { + ifwCmd += " --repository " + *it; + } + } else { + cmCPackIFWLogger(WARNING, "The \"CPACK_IFW_REPOSITORIES_DIRECTORIES\" " + << "variable is set, but content will be skiped, " + << "because this feature available only since " + << "QtIFW 3.1. Please update your QtIFW instance." + << std::endl); + } + } + if (!this->OnlineOnly && !this->DownloadedPackages.empty()) { ifwCmd += " -i "; std::set<cmCPackIFWPackage*>::iterator it = @@ -128,6 +144,22 @@ int cmCPackIFWGenerator::PackageFiles() } } + if (!this->RepoDirsVector.empty()) { + if (!this->IsVersionLess("3.1")) { + for (std::vector<std::string>::iterator it = + this->RepoDirsVector.begin(); + it != this->RepoDirsVector.end(); ++it) { + ifwCmd += " --repository " + *it; + } + } else { + cmCPackIFWLogger(WARNING, "The \"CPACK_IFW_REPOSITORIES_DIRECTORIES\" " + << "variable is set, but content will be skipped, " + << "because this feature available only since " + << "QtIFW 3.1. Please update your QtIFW instance." + << std::endl); + } + } + if (this->OnlineOnly) { ifwCmd += " --online-only"; } else if (!this->DownloadedPackages.empty() && @@ -266,6 +298,13 @@ int cmCPackIFWGenerator::InitializeInternal() cmSystemTools::ExpandListArgument(dirs, this->PkgsDirsVector); } + // Additional repositories dirs + this->RepoDirsVector.clear(); + if (const char* dirs = + this->GetOption("CPACK_IFW_REPOSITORIES_DIRECTORIES")) { + cmSystemTools::ExpandListArgument(dirs, this->RepoDirsVector); + } + // Installer this->Installer.Generator = this; this->Installer.ConfigureFromOptions(); diff --git a/Source/CPack/IFW/cmCPackIFWGenerator.h b/Source/CPack/IFW/cmCPackIFWGenerator.h index 9d635f8..9fd14bd 100644 --- a/Source/CPack/IFW/cmCPackIFWGenerator.h +++ b/Source/CPack/IFW/cmCPackIFWGenerator.h @@ -148,6 +148,7 @@ private: bool OnlineOnly; bool ResolveDuplicateNames; std::vector<std::string> PkgsDirsVector; + std::vector<std::string> RepoDirsVector; }; #endif |