diff options
82 files changed, 252 insertions, 119 deletions
diff --git a/Help/release/dev/cpack-deb-long-filenames.rst b/Help/release/dev/cpack-deb-long-filenames.rst new file mode 100644 index 0000000..6113eaf --- /dev/null +++ b/Help/release/dev/cpack-deb-long-filenames.rst @@ -0,0 +1,6 @@ +cpack-deb-long-filenames +------------------------ + +* The :module:`CPackDeb` module learned to support long file names + when archive format is set to GNU tar. + See :variable:`CPACK_DEBIAN_ARCHIVE_TYPE` diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index c9678d6..1a7b923 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -177,6 +177,24 @@ # # See https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections # +# .. variable:: CPACK_DEBIAN_ARCHIVE_TYPE +# +# The archive format used for creating the Debian package. +# +# * Mandatory : YES +# * Default : "paxr" +# +# Possible values are: +# +# - paxr +# - gnutar +# +# .. note:: +# +# Default pax archive format is the most portable format and generates +# packages that do not treat sparse files specially. +# GNU tar format on the other hand supports longer filenames. +# # .. variable:: CPACK_DEBIAN_COMPRESSION_TYPE # # The compression used for creating the Debian package. @@ -842,12 +860,24 @@ function(cpack_deb_prepare_package_vars) set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") endif() + if(CPACK_DEBIAN_ARCHIVE_TYPE) + set(archive_types_ "paxr;gnutar") + cmake_policy(PUSH) + cmake_policy(SET CMP0057 NEW) + if(NOT CPACK_DEBIAN_ARCHIVE_TYPE IN_LIST archive_types_) + message(FATAL_ERROR "CPACK_DEBIAN_ARCHIVE_TYPE set to unsupported" + "type ${CPACK_DEBIAN_ARCHIVE_TYPE}") + endif() + cmake_policy(POP) + else() + set(CPACK_DEBIAN_ARCHIVE_TYPE "paxr") + endif() + # Compression: (recommended) if(NOT CPACK_DEBIAN_COMPRESSION_TYPE) set(CPACK_DEBIAN_COMPRESSION_TYPE "gzip") endif() - # Recommends: # You should set: CPACK_DEBIAN_PACKAGE_RECOMMENDS @@ -1000,6 +1030,7 @@ function(cpack_deb_prepare_package_vars) set(GEN_CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_DEBIAN_PACKAGE_MAINTAINER}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}" PARENT_SCOPE) + set(GEN_CPACK_DEBIAN_ARCHIVE_TYPE "${CPACK_DEBIAN_ARCHIVE_TYPE}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_COMPRESSION_TYPE "${CPACK_DEBIAN_COMPRESSION_TYPE}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_RECOMMENDS "${CPACK_DEBIAN_PACKAGE_RECOMMENDS}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_SUGGESTS "${CPACK_DEBIAN_PACKAGE_SUGGESTS}" PARENT_SCOPE) diff --git a/Modules/Platform/AIX-GNU-CXX.cmake b/Modules/Platform/AIX-GNU-CXX.cmake index ec8e83f..d047801 100644 --- a/Modules/Platform/AIX-GNU-CXX.cmake +++ b/Modules/Platform/AIX-GNU-CXX.cmake @@ -1,2 +1,3 @@ include(Platform/AIX-GNU) __aix_compiler_gnu(CXX) +unset(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN) diff --git a/Modules/Platform/AIX-GNU.cmake b/Modules/Platform/AIX-GNU.cmake index df97ab1..ce6faff 100644 --- a/Modules/Platform/AIX-GNU.cmake +++ b/Modules/Platform/AIX-GNU.cmake @@ -34,4 +34,5 @@ macro(__aix_compiler_gnu lang) set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1) set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath") + unset(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY) endmacro() diff --git a/Modules/Platform/HP-UX-GNU-CXX.cmake b/Modules/Platform/HP-UX-GNU-CXX.cmake index 689bed0..ac72560 100644 --- a/Modules/Platform/HP-UX-GNU-CXX.cmake +++ b/Modules/Platform/HP-UX-GNU-CXX.cmake @@ -1,2 +1,3 @@ include(Platform/HP-UX-GNU) __hpux_compiler_gnu(CXX) +unset(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN) diff --git a/Modules/Platform/HP-UX-GNU.cmake b/Modules/Platform/HP-UX-GNU.cmake index 6c71784..cbd8164 100644 --- a/Modules/Platform/HP-UX-GNU.cmake +++ b/Modules/Platform/HP-UX-GNU.cmake @@ -26,4 +26,5 @@ macro(__hpux_compiler_gnu lang) set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,+h") set(CMAKE_${lang}_LINK_FLAGS "-Wl,+s,+nodefaultrpath") + unset(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY) endmacro() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index fb13b21..1b36905 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 6) -set(CMake_VERSION_PATCH 20160906) +set(CMake_VERSION_PATCH 20160907) #set(CMake_VERSION_RC 1) diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx index 0d3725d..377fee1 100644 --- a/Source/CPack/cmCPackArchiveGenerator.cxx +++ b/Source/CPack/cmCPackArchiveGenerator.cxx @@ -87,17 +87,17 @@ int cmCPackArchiveGenerator::addOneComponentToArchive( */ #define DECLARE_AND_OPEN_ARCHIVE(filename, archive) \ cmGeneratedFileStream gf; \ - gf.Open(filename.c_str(), false, true); \ + gf.Open((filename).c_str(), false, true); \ if (!GenerateHeader(&gf)) { \ cmCPackLogger(cmCPackLog::LOG_ERROR, \ "Problem to generate Header for archive < " \ - << filename << ">." << std::endl); \ + << (filename) << ">." << std::endl); \ return 0; \ } \ cmArchiveWrite archive(gf, this->Compress, this->ArchiveFormat); \ - if (!archive) { \ + if (!(archive)) { \ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem to create archive < " \ - << filename << ">. ERROR =" << archive.GetError() \ + << (filename) << ">. ERROR =" << (archive).GetError() \ << std::endl); \ return 0; \ } diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 1f3ac51..b909598 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -419,6 +419,12 @@ int cmCPackDebGenerator::createDeb() << debian_compression_type << std::endl); } + const char* debian_archive_type = + this->GetOption("GEN_CPACK_DEBIAN_ARCHIVE_TYPE"); + if (!debian_archive_type) { + debian_archive_type = "paxr"; + } + std::string filename_data_tar = strGenWDIR + "/data.tar" + compression_suffix; @@ -431,7 +437,8 @@ int cmCPackDebGenerator::createDeb() << filename_data_tar << "\" for writing" << std::endl); return 0; } - cmArchiveWrite data_tar(fileStream_data_tar, tar_compression_type, "paxr"); + cmArchiveWrite data_tar(fileStream_data_tar, tar_compression_type, + debian_archive_type); // uid/gid should be the one of the root user, and this root user has // always uid/gid equal to 0. @@ -535,7 +542,8 @@ int cmCPackDebGenerator::createDeb() return 0; } cmArchiveWrite control_tar(fileStream_control_tar, - cmArchiveWrite::CompressGZip, "paxr"); + cmArchiveWrite::CompressGZip, + debian_archive_type); // sets permissions and uid/gid for the files control_tar.SetUIDAndGID(0u, 0u); diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx index cdf292c..754bb5f 100644 --- a/Source/CTest/cmCTestBuildHandler.cxx +++ b/Source/CTest/cmCTestBuildHandler.cxx @@ -366,11 +366,11 @@ int cmCTestBuildHandler::ProcessHandler() regexes.clear(); \ cmCTestOptionalLog(this->CTest, DEBUG, \ this << "Add " #regexes << std::endl, this->Quiet); \ - for (it = strings.begin(); it != strings.end(); ++it) { \ + for (it = (strings).begin(); it != (strings).end(); ++it) { \ cmCTestOptionalLog(this->CTest, DEBUG, \ "Add " #strings ": " << *it << std::endl, \ this->Quiet); \ - regexes.push_back(it->c_str()); \ + (regexes).push_back(it->c_str()); \ } cmCTestBuildHandlerPopulateRegexVector(this->CustomErrorMatches, this->ErrorMatchRegex); diff --git a/Source/QtDialog/AddCacheEntry.cxx b/Source/QtDialog/AddCacheEntry.cxx index dc7a4b0..a94c54b 100644 --- a/Source/QtDialog/AddCacheEntry.cxx +++ b/Source/QtDialog/AddCacheEntry.cxx @@ -64,7 +64,8 @@ QVariant AddCacheEntry::value() const QWidget* w = this->StackedWidget->currentWidget(); if (qobject_cast<QLineEdit*>(w)) { return static_cast<QLineEdit*>(w)->text(); - } else if (qobject_cast<QCheckBox*>(w)) { + } + if (qobject_cast<QCheckBox*>(w)) { return static_cast<QCheckBox*>(w)->isChecked(); } return QVariant(); diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 5a8a5be..4de4bef 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -29,18 +29,19 @@ #include "cmSystemTools.h" // IWYU pragma: keep -static const char* cmDocumentationName[][2] = { { 0, +static const char* cmDocumentationName[][2] = { { CM_NULLPTR, " cmake-gui - CMake GUI." }, - { 0, 0 } }; + { CM_NULLPTR, CM_NULLPTR } }; static const char* cmDocumentationUsage[][2] = { - { 0, " cmake-gui [options]\n" - " cmake-gui [options] <path-to-source>\n" - " cmake-gui [options] <path-to-existing-build>" }, - { 0, 0 } + { CM_NULLPTR, " cmake-gui [options]\n" + " cmake-gui [options] <path-to-source>\n" + " cmake-gui [options] <path-to-existing-build>" }, + { CM_NULLPTR, CM_NULLPTR } }; -static const char* cmDocumentationOptions[][2] = { { 0, 0 } }; +static const char* cmDocumentationOptions[] + [2] = { { CM_NULLPTR, CM_NULLPTR } }; #if defined(Q_OS_MAC) static int cmOSXInstall(std::string dir); diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index fda3e58..5b84597 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -41,7 +41,7 @@ QCMakeThread::QCMakeThread(QObject* p) : QThread(p) - , CMakeInstance(NULL) + , CMakeInstance(CM_NULLPTR) { } @@ -57,7 +57,7 @@ void QCMakeThread::run() emit this->cmakeInitialized(); this->exec(); delete this->CMakeInstance; - this->CMakeInstance = NULL; + this->CMakeInstance = CM_NULLPTR; } CMakeSetupDialog::CMakeSetupDialog() diff --git a/Source/QtDialog/Compilers.h b/Source/QtDialog/Compilers.h index bdb1962..276e2a5 100644 --- a/Source/QtDialog/Compilers.h +++ b/Source/QtDialog/Compilers.h @@ -3,6 +3,8 @@ #ifndef COMPILERS_HPP #define COMPILERS_HPP +#include <cmConfigure.h> + #include <QWidget> #include <ui_Compilers.h> @@ -11,7 +13,7 @@ class Compilers : public QWidget, public Ui::Compilers { Q_OBJECT public: - Compilers(QWidget* p = NULL) + Compilers(QWidget* p = CM_NULLPTR) : QWidget(p) { this->setupUi(this); diff --git a/Source/QtDialog/FirstConfigure.cxx b/Source/QtDialog/FirstConfigure.cxx index ca5e3b5..c34751a 100644 --- a/Source/QtDialog/FirstConfigure.cxx +++ b/Source/QtDialog/FirstConfigure.cxx @@ -129,8 +129,9 @@ bool StartCompilerSetup::crossCompilerSetup() const void StartCompilerSetup::onSelectionChanged(bool on) { - if (on) + if (on) { selectionChanged(); + } } void StartCompilerSetup::onGeneratorChanged(QString const& name) @@ -144,12 +145,15 @@ void StartCompilerSetup::onGeneratorChanged(QString const& name) int StartCompilerSetup::nextId() const { - if (compilerSetup()) + if (compilerSetup()) { return NativeSetup; - if (crossCompilerSetup()) + } + if (crossCompilerSetup()) { return CrossSetup; - if (crossCompilerToolChainFile()) + } + if (crossCompilerToolChainFile()) { return ToolchainSetup; + } return -1; } @@ -515,7 +519,8 @@ QString FirstConfigure::getCCompiler() const { if (this->compilerSetup()) { return this->mNativeCompilerSetupPage->getCCompiler(); - } else if (this->crossCompilerSetup()) { + } + if (this->crossCompilerSetup()) { return this->mCrossCompilerSetupPage->getCCompiler(); } return QString(); @@ -525,7 +530,8 @@ QString FirstConfigure::getCXXCompiler() const { if (this->compilerSetup()) { return this->mNativeCompilerSetupPage->getCXXCompiler(); - } else if (this->crossCompilerSetup()) { + } + if (this->crossCompilerSetup()) { return this->mCrossCompilerSetupPage->getCXXCompiler(); } return QString(); @@ -535,7 +541,8 @@ QString FirstConfigure::getFortranCompiler() const { if (this->compilerSetup()) { return this->mNativeCompilerSetupPage->getFortranCompiler(); - } else if (this->crossCompilerSetup()) { + } + if (this->crossCompilerSetup()) { return this->mCrossCompilerSetupPage->getFortranCompiler(); } return QString(); diff --git a/Source/QtDialog/QCMake.h b/Source/QtDialog/QCMake.h index a818c6b..7eadb09 100644 --- a/Source/QtDialog/QCMake.h +++ b/Source/QtDialog/QCMake.h @@ -13,6 +13,8 @@ #ifndef QCMake_h #define QCMake_h +#include <cmConfigure.h> + #include "cmake.h" #ifdef _MSC_VER @@ -71,7 +73,7 @@ class QCMake : public QObject { Q_OBJECT public: - QCMake(QObject* p = 0); + QCMake(QObject* p = CM_NULLPTR); ~QCMake(); public slots: /// load the cache file in a directory diff --git a/Source/QtDialog/QCMakeCacheView.cxx b/Source/QtDialog/QCMakeCacheView.cxx index cc1f4aa..88ea049 100644 --- a/Source/QtDialog/QCMakeCacheView.cxx +++ b/Source/QtDialog/QCMakeCacheView.cxx @@ -33,7 +33,7 @@ public: } protected: - bool filterAcceptsRow(int row, const QModelIndex& p) const + bool filterAcceptsRow(int row, const QModelIndex& p) const CM_OVERRIDE { QStringList strs; const QAbstractItemModel* m = this->sourceModel(); @@ -87,7 +87,7 @@ public: protected: bool ShowAdvanced; - bool filterAcceptsRow(int row, const QModelIndex& p) const + bool filterAcceptsRow(int row, const QModelIndex& p) const CM_OVERRIDE { const QAbstractItemModel* m = this->sourceModel(); QModelIndex idx = m->index(row, 0, p); @@ -160,7 +160,8 @@ QModelIndex QCMakeCacheView::moveCursor(CursorAction act, // want home/end to go to begin/end of rows, not columns if (act == MoveHome) { return this->model()->index(0, 1); - } else if (act == MoveEnd) { + } + if (act == MoveEnd) { return this->model()->index(this->model()->rowCount() - 1, 1); } return QTreeView::moveCursor(act, mod); @@ -538,15 +539,16 @@ void QCMakeCacheModelDelegate::setFileDialogFlag(bool f) this->FileDialogFlag = f; } -QWidget* QCMakeCacheModelDelegate::createEditor(QWidget* p, - const QStyleOptionViewItem&, - const QModelIndex& idx) const +QWidget* QCMakeCacheModelDelegate::createEditor( + QWidget* p, const QStyleOptionViewItem& /*option*/, + const QModelIndex& idx) const { QModelIndex var = idx.sibling(idx.row(), 0); int type = var.data(QCMakeCacheModel::TypeRole).toInt(); if (type == QCMakeProperty::BOOL) { - return NULL; - } else if (type == QCMakeProperty::PATH) { + return CM_NULLPTR; + } + if (type == QCMakeProperty::PATH) { QCMakePathEditor* editor = new QCMakePathEditor(p, var.data(Qt::DisplayRole).toString()); QObject::connect(editor, SIGNAL(fileDialogExists(bool)), this, @@ -645,7 +647,7 @@ QSize QCMakeCacheModelDelegate::sizeHint(const QStyleOptionViewItem& option, QStyleOptionButton opt; opt.QStyleOption::operator=(option); sz = sz.expandedTo( - style->subElementRect(QStyle::SE_ViewItemCheckIndicator, &opt, NULL) + style->subElementRect(QStyle::SE_ViewItemCheckIndicator, &opt, CM_NULLPTR) .size()); return sz; diff --git a/Source/QtDialog/QCMakeWidgets.cxx b/Source/QtDialog/QCMakeWidgets.cxx index 4b3eb34..fc481b8 100644 --- a/Source/QtDialog/QCMakeWidgets.cxx +++ b/Source/QtDialog/QCMakeWidgets.cxx @@ -67,7 +67,7 @@ void QCMakeFilePathEditor::chooseFile() this->fileDialogExists(true); path = QFileDialog::getOpenFileName(this, title, info.absolutePath(), QString(), - NULL, QFileDialog::DontResolveSymlinks); + CM_NULLPTR, QFileDialog::DontResolveSymlinks); this->fileDialogExists(false); if (!path.isEmpty()) { @@ -99,7 +99,7 @@ void QCMakePathEditor::chooseFile() // use same QDirModel for all completers static QDirModel* fileDirModel() { - static QDirModel* m = NULL; + static QDirModel* m = CM_NULLPTR; if (!m) { m = new QDirModel(); } @@ -107,7 +107,7 @@ static QDirModel* fileDirModel() } static QDirModel* pathDirModel() { - static QDirModel* m = NULL; + static QDirModel* m = CM_NULLPTR; if (!m) { m = new QDirModel(); m->setFilter(QDir::AllDirs | QDir::Drives | QDir::NoDotAndDotDot); diff --git a/Source/QtDialog/QCMakeWidgets.h b/Source/QtDialog/QCMakeWidgets.h index f1e87ce..0d95e63 100644 --- a/Source/QtDialog/QCMakeWidgets.h +++ b/Source/QtDialog/QCMakeWidgets.h @@ -13,6 +13,8 @@ #ifndef QCMakeWidgets_h #define QCMakeWidgets_h +#include <cmConfigure.h> + #include <QComboBox> #include <QCompleter> #include <QLineEdit> @@ -43,7 +45,7 @@ class QCMakePathEditor : public QCMakeFileEditor { Q_OBJECT public: - QCMakePathEditor(QWidget* p = NULL, const QString& var = QString()); + QCMakePathEditor(QWidget* p = CM_NULLPTR, const QString& var = QString()); void chooseFile(); }; @@ -52,7 +54,8 @@ class QCMakeFilePathEditor : public QCMakeFileEditor { Q_OBJECT public: - QCMakeFilePathEditor(QWidget* p = NULL, const QString& var = QString()); + QCMakeFilePathEditor(QWidget* p = CM_NULLPTR, + const QString& var = QString()); void chooseFile(); }; diff --git a/Source/cmCurl.cxx b/Source/cmCurl.cxx index eec773f..91da239 100644 --- a/Source/cmCurl.cxx +++ b/Source/cmCurl.cxx @@ -25,9 +25,9 @@ #endif #define check_curl_result(result, errstr) \ - if (result != CURLE_OK && result != CURLE_NOT_BUILT_IN) { \ + if ((result) != CURLE_OK && (result) != CURLE_NOT_BUILT_IN) { \ e += e.empty() ? "" : "\n"; \ - e += errstr; \ + e += (errstr); \ e += ::curl_easy_strerror(result); \ } diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx index 13736b9..70612d1 100644 --- a/Source/cmDocumentation.cxx +++ b/Source/cmDocumentation.cxx @@ -166,7 +166,7 @@ bool cmDocumentation::PrintRequestedDocumentation(std::ostream& os) #define GET_OPT_ARGUMENT(target) \ if ((i + 1 < argc) && !this->IsOption(argv[i + 1])) { \ - target = argv[i + 1]; \ + (target) = argv[i + 1]; \ i = i + 1; \ }; diff --git a/Source/cmFilePathUuid.h b/Source/cmFilePathUuid.h index 87cfcf8..b54dc47 100644 --- a/Source/cmFilePathUuid.h +++ b/Source/cmFilePathUuid.h @@ -52,8 +52,9 @@ public: * @arg outputPrefix optional string to prepend to the result * @arg outputSuffix optional string to append to the result */ - std::string get(const std::string& filePath, const char* outputPrefix = NULL, - const char* outputSuffix = NULL); + std::string get(const std::string& filePath, + const char* outputPrefix = CM_NULLPTR, + const char* outputSuffix = CM_NULLPTR); private: void initParentDirs(const std::string& currentSrcDir, diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 44e9ce1..c19a741 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -672,15 +672,20 @@ static const struct LinkOnlyNode : public cmGeneratorExpressionNode LinkOnlyNode() {} std::string Evaluate(const std::vector<std::string>& parameters, - cmGeneratorExpressionContext* /*context*/, - const GeneratorExpressionContent* /*content*/, + cmGeneratorExpressionContext* context, + const GeneratorExpressionContent* content, cmGeneratorExpressionDAGChecker* dagChecker) const CM_OVERRIDE { + if (!dagChecker) { + reportError(context, content->GetOriginalExpression(), + "$<LINK_ONLY:...> may only be used for linking"); + return std::string(); + } if (!dagChecker->GetTransitivePropertiesOnly()) { return parameters.front(); } - return ""; + return std::string(); } } linkOnlyNode; diff --git a/Source/cmGraphVizWriter.cxx b/Source/cmGraphVizWriter.cxx index 2824f7e..e88e048 100644 --- a/Source/cmGraphVizWriter.cxx +++ b/Source/cmGraphVizWriter.cxx @@ -98,7 +98,7 @@ void cmGraphVizWriter::ReadSettings(const char* settingsFileName, { \ const char* value = mf->GetDefinition(cmakeDefinition); \ if (value) { \ - var = value; \ + (var) = value; \ } \ } @@ -111,7 +111,7 @@ void cmGraphVizWriter::ReadSettings(const char* settingsFileName, { \ const char* value = mf->GetDefinition(cmakeDefinition); \ if (value) { \ - var = mf->IsOn(cmakeDefinition); \ + (var) = mf->IsOn(cmakeDefinition); \ } \ } diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 7688c59..3402191 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -86,9 +86,10 @@ static bool isPolicyNewerThan(cmPolicies::PolicyID id, unsigned int majorV, switch (id) { #define POLICY_CASE(ID, V_MAJOR, V_MINOR, V_PATCH) \ case cmPolicies::ID: \ - return ( \ - majorV < V_MAJOR || (majorV == V_MAJOR && minorV + 1 < V_MINOR + 1) || \ - (majorV == V_MAJOR && minorV == V_MINOR && patchV + 1 < V_PATCH + 1)); + return (majorV < (V_MAJOR) || \ + (majorV == (V_MAJOR) && minorV + 1 < (V_MINOR) + 1) || \ + (majorV == (V_MAJOR) && minorV == (V_MINOR) && \ + patchV + 1 < (V_PATCH) + 1)); CM_FOR_EACH_POLICY_ID_VERSION(POLICY_CASE) #undef POLICY_CASE case cmPolicies::CMPCOUNT: diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index be0ee50..7da9975 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1484,7 +1484,7 @@ void list_item_verbose(FILE* out, struct archive_entry* entry) /* Format the time using 'ls -l' conventions. */ tim = archive_entry_mtime(entry); -#define HALF_YEAR (time_t)365 * 86400 / 2 +#define HALF_YEAR ((time_t)365 * 86400 / 2) #if defined(_WIN32) && !defined(__CYGWIN__) /* Windows' strftime function does not support %e format. */ #define DAY_FMT "%d" diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx index 7c53a3d..9878912 100644 --- a/Source/cmXMLParser.cxx +++ b/Source/cmXMLParser.cxx @@ -20,10 +20,10 @@ cmXMLParser::cmXMLParser() { - this->Parser = 0; + this->Parser = CM_NULLPTR; this->ParseError = 0; - this->ReportCallback = 0; - this->ReportCallbackData = 0; + this->ReportCallback = CM_NULLPTR; + this->ReportCallbackData = CM_NULLPTR; } cmXMLParser::~cmXMLParser() @@ -64,7 +64,7 @@ int cmXMLParser::InitializeParser() } // Create the expat XML parser. - this->Parser = XML_ParserCreate(0); + this->Parser = XML_ParserCreate(CM_NULLPTR); XML_SetElementHandler(static_cast<XML_Parser>(this->Parser), &cmXMLParserStartElement, &cmXMLParserEndElement); XML_SetCharacterDataHandler(static_cast<XML_Parser>(this->Parser), @@ -108,7 +108,7 @@ int cmXMLParser::CleanupParser() // Clean up the parser. XML_ParserFree(static_cast<XML_Parser>(this->Parser)); - this->Parser = 0; + this->Parser = CM_NULLPTR; return result; } @@ -165,7 +165,7 @@ const char* cmXMLParser::FindAttribute(const char** atts, } } } - return 0; + return CM_NULLPTR; } void cmXMLParserStartElement(void* parser, const char* name, const char** atts) diff --git a/Tests/CMakeLib/run_compile_commands.cxx b/Tests/CMakeLib/run_compile_commands.cxx index 529c830..0bf0a7c 100644 --- a/Tests/CMakeLib/run_compile_commands.cxx +++ b/Tests/CMakeLib/run_compile_commands.cxx @@ -148,7 +148,8 @@ int main() it != end; ++it) { std::vector<std::string> command; cmSystemTools::ParseUnixCommandLine(it->at("command").c_str(), command); - if (!cmSystemTools::RunSingleCommand(command, 0, 0, 0, + if (!cmSystemTools::RunSingleCommand(command, CM_NULLPTR, CM_NULLPTR, + CM_NULLPTR, it->at("directory").c_str())) { std::cout << "ERROR: Failed to run command \"" << command[0] << "\"" << std::endl; diff --git a/Tests/CMakeLib/testGeneratedFileStream.cxx b/Tests/CMakeLib/testGeneratedFileStream.cxx index a31cc42..b419b9e 100644 --- a/Tests/CMakeLib/testGeneratedFileStream.cxx +++ b/Tests/CMakeLib/testGeneratedFileStream.cxx @@ -16,7 +16,7 @@ #include <string> #define cmFailed(m1, m2) \ - std::cout << "FAILED: " << m1 << m2 << "\n"; \ + std::cout << "FAILED: " << (m1) << (m2) << "\n"; \ failed = 1 int testGeneratedFileStream(int /*unused*/, char* /*unused*/ []) diff --git a/Tests/CMakeLib/testSystemTools.cxx b/Tests/CMakeLib/testSystemTools.cxx index 8e8d4c4..e834b93 100644 --- a/Tests/CMakeLib/testSystemTools.cxx +++ b/Tests/CMakeLib/testSystemTools.cxx @@ -14,9 +14,9 @@ #include <iostream> #include <string> -#define cmPassed(m) std::cout << "Passed: " << m << "\n" +#define cmPassed(m) std::cout << "Passed: " << (m) << "\n" #define cmFailed(m) \ - std::cout << "FAILED: " << m << "\n"; \ + std::cout << "FAILED: " << (m) << "\n"; \ failed = 1 int testSystemTools(int /*unused*/, char* /*unused*/ []) diff --git a/Tests/CMakeLib/testXMLSafe.cxx b/Tests/CMakeLib/testXMLSafe.cxx index 356880c..c4aaf17 100644 --- a/Tests/CMakeLib/testXMLSafe.cxx +++ b/Tests/CMakeLib/testXMLSafe.cxx @@ -27,7 +27,7 @@ static test_pair const pairs[] = { { "angles <>", "angles <>" }, { "ampersand &", "ampersand &" }, { "bad-byte \x80", "bad-byte [NON-UTF-8-BYTE-0x80]" }, - { 0, 0 } + { CM_NULLPTR, CM_NULLPTR } }; int testXMLSafe(int /*unused*/, char* /*unused*/ []) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index d6c96e1..8293286 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -485,7 +485,6 @@ if(BUILD_TESTING) ) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Module/ExternalData") - ADD_TEST_MACRO(Module.GenerateExportHeader GenerateExportHeader) ADD_TEST_MACRO(Module.FindDependency FindDependency) ADD_TEST_MACRO(Module.WriteCompilerDetectionHeader WriteCompilerDetectionHeader) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 323a36b..fa3d0f9 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -141,6 +141,9 @@ add_RunCMake_test(DisallowedCommands) add_RunCMake_test(ExternalData) add_RunCMake_test(FeatureSummary) add_RunCMake_test(FPHSA) +if(NOT CMAKE_C_COMPILER_ID MATCHES "Watcom") + add_RunCMake_test(GenerateExportHeader) +endif() add_RunCMake_test(GeneratorExpression) add_RunCMake_test(GeneratorPlatform) add_RunCMake_test(GeneratorToolset) diff --git a/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-ExpectedFiles.cmake b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-ExpectedFiles.cmake new file mode 100644 index 0000000..dd72cf7 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-ExpectedFiles.cmake @@ -0,0 +1,5 @@ +set(whitespaces_ "[\t\n\r ]*") + +set(EXPECTED_FILES_COUNT "1") +set(EXPECTED_FILE_1 "long_filenames_0.1.1-1_*.deb") +set(EXPECTED_FILE_CONTENT_1 "^.*/usr/${whitespaces_}.*/usr/foo/${whitespaces_}.*/usr/foo/llllllllll_oooooooooo_nnnnnnnnnn_gggggggggg_ffffffffff_iiiiiiiiii_llllllllll_eeeeeeeeee_nnnnnnnnnn_aaaaaaaaaa_mmmmmmmmmm_eeeeeeeeee.txt$") diff --git a/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-Prerequirements.cmake b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-Prerequirements.cmake new file mode 100644 index 0000000..0c1d77e --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-Prerequirements.cmake @@ -0,0 +1,7 @@ +function(get_test_prerequirements found_var) + find_program(FAKEROOT_EXECUTABLE NAMES fakeroot) + + if(FAKEROOT_EXECUTABLE) + set(${found_var} true PARENT_SCOPE) + endif() +endfunction() diff --git a/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-VerifyResult.cmake b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-VerifyResult.cmake new file mode 100644 index 0000000..0452343 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-VerifyResult.cmake @@ -0,0 +1,26 @@ +# create structure required by non root dpkg install +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/root_dir") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir/updates") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir/info") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir/available" "") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir/status" "") + +# some programs used by fakeroot require sbin in path so we should not +# leave this to chance (programs: ldconfig and start-stop-daemon) +set(ENV{PATH} "$ENV{PATH}:/usr/local/sbin:/usr/sbin:/sbin") + +execute_process(COMMAND ${FAKEROOT_EXECUTABLE} ${DPKG_EXECUTABLE} + -i --force-not-root --root=${CMAKE_CURRENT_BINARY_DIR}/root_dir + --admindir=${CMAKE_CURRENT_BINARY_DIR}/root_dir/admindir + --log=${CMAKE_CURRENT_BINARY_DIR}/root_dir/dpkg.log + ${FOUND_FILE_1} + RESULT_VARIABLE install_result_ + ERROR_VARIABLE install_error_ + OUTPUT_QUIET + ) + +if(install_result_) + message(FATAL_ERROR "LONG_FILENAMES package error - result:" + " '${install_result_}'; text: '${install_error_}'") +endif() diff --git a/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-specifics.cmake b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-specifics.cmake new file mode 100644 index 0000000..39a6be4 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/LONG_FILENAMES-specifics.cmake @@ -0,0 +1,3 @@ +set(CPACK_PACKAGE_CONTACT "someone") +set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") +set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar") diff --git a/Tests/RunCMake/CPack/DEB/Prerequirements.cmake b/Tests/RunCMake/CPack/DEB/Prerequirements.cmake index 197b99d..cb9a277 100644 --- a/Tests/RunCMake/CPack/DEB/Prerequirements.cmake +++ b/Tests/RunCMake/CPack/DEB/Prerequirements.cmake @@ -5,4 +5,11 @@ function(get_test_prerequirements found_var config_file) file(WRITE "${config_file}" "set(DPKG_EXECUTABLE \"${DPKG_EXECUTABLE}\")") set(${found_var} true PARENT_SCOPE) endif() + + # optional tool for some tests + find_program(FAKEROOT_EXECUTABLE fakeroot) + if(FAKEROOT_EXECUTABLE) + file(APPEND "${config_file}" + "\nset(FAKEROOT_EXECUTABLE \"${FAKEROOT_EXECUTABLE}\")") + endif() endfunction() diff --git a/Tests/RunCMake/CPack/LONG_FILENAMES.cmake b/Tests/RunCMake/CPack/LONG_FILENAMES.cmake new file mode 100644 index 0000000..3242aef --- /dev/null +++ b/Tests/RunCMake/CPack/LONG_FILENAMES.cmake @@ -0,0 +1,10 @@ +set(LONG_FILENAME + "${CMAKE_CURRENT_BINARY_DIR}/llllllllll_oooooooooo_nnnnnnnnnn_gggggggggg_ffffffffff_iiiiiiiiii_llllllllll_eeeeeeeeee_nnnnnnnnnn_aaaaaaaaaa_mmmmmmmmmm_eeeeeeeeee.txt") + +file(WRITE + "${LONG_FILENAME}" + "long_filename_test") + +install(FILES ${LONG_FILENAME} DESTINATION foo) + +set(CPACK_PACKAGE_NAME "long_filenames") diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake index 44586d7..a3029cf 100644 --- a/Tests/RunCMake/CPack/RunCMakeTest.cmake +++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake @@ -17,3 +17,4 @@ run_cpack_test(INSTALL_SCRIPTS "RPM" false) run_cpack_test(DEB_GENERATE_SHLIBS "DEB" true) run_cpack_test(DEB_GENERATE_SHLIBS_LDCONFIG "DEB" true) run_cpack_test(DEBUGINFO "RPM" true) +run_cpack_test(LONG_FILENAMES "DEB" false) diff --git a/Tests/RunCMake/GenerateExportHeader/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/CMakeLists.txt new file mode 100644 index 0000000..dc92486 --- /dev/null +++ b/Tests/RunCMake/GenerateExportHeader/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.6) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/GenerateExportHeader/GEH-build-stderr.txt b/Tests/RunCMake/GenerateExportHeader/GEH-build-stderr.txt new file mode 100644 index 0000000..8d98f9d --- /dev/null +++ b/Tests/RunCMake/GenerateExportHeader/GEH-build-stderr.txt @@ -0,0 +1 @@ +.* diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/GEH.cmake index 56f0f28..ee0871b 100644 --- a/Tests/Module/GenerateExportHeader/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/GEH.cmake @@ -1,23 +1,8 @@ -cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR) -cmake_policy(SET CMP0054 NEW) +# Test add_compiler_export_flags without deprecation warning. +set(CMAKE_WARN_DEPRECATED OFF) project(GenerateExportHeader) -# Prevent timeout on Watcom by not running the tests. -if ("${CMAKE_CXX_COMPILER_ID}" MATCHES Watcom) - file(WRITE - "${CMAKE_CURRENT_BINARY_DIR}/main.cxx" - "int main() { return 0; } - " - ) - - add_executable( - GenerateExportHeader - "${CMAKE_CURRENT_BINARY_DIR}/main.cxx" - ) - return() -endif() - include(CheckCXXCompilerFlag) set( CMAKE_INCLUDE_CURRENT_DIR ON ) @@ -78,17 +63,18 @@ add_subdirectory(lib_shared_and_static) add_compiler_export_flags() set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}) -message("#### COMPILER_HAS_DEPRECATED: " ${COMPILER_HAS_DEPRECATED}) -message("#### COMPILER_HAS_HIDDEN_VISIBILITY: " ${COMPILER_HAS_HIDDEN_VISIBILITY}) -message("#### WIN32: " ${WIN32}) -message("#### HAS_WERROR_FLAG: " ${HAS_WERROR_FLAG}) +message(STATUS "COMPILER_HAS_DEPRECATED: " ${COMPILER_HAS_DEPRECATED}) +message(STATUS "COMPILER_HAS_HIDDEN_VISIBILITY: " ${COMPILER_HAS_HIDDEN_VISIBILITY}) +message(STATUS "WIN32: " ${WIN32}) +message(STATUS "HAS_WERROR_FLAG: " ${HAS_WERROR_FLAG}) set(link_libraries) macro(macro_add_test_library name) add_subdirectory(${name}) include_directories(${name} - ${${name}_BINARY_DIR} # For the export header. + ${CMAKE_CURRENT_BINARY_DIR}/${name} # For the export header. ) list(APPEND link_libraries ${name}) endmacro() @@ -131,7 +117,7 @@ elseif(COMPILER_HAS_DEPRECATED) else() set(_platform Empty) endif() -message("#### Testing reference: ${_platform}") +message(STATUS "Testing reference: ${_platform}") target_compile_definitions(GenerateExportHeader PRIVATE "SRC_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/reference/${_platform}\"" diff --git a/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake b/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake new file mode 100644 index 0000000..e534c1f --- /dev/null +++ b/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake @@ -0,0 +1,17 @@ +include(RunCMake) + +function(run_GEH) + # Use a single build tree for a few tests without cleaning. + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/GEH-build) + set(RunCMake_TEST_NO_CLEAN 1) + if(RunCMake_GENERATOR MATCHES "Make|Ninja") + set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) + endif() + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + run_cmake(GEH) + run_cmake_command(GEH-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(GEH-run ${RunCMake_TEST_BINARY_DIR}/GenerateExportHeader) +endfunction() + +run_GEH() diff --git a/Tests/Module/GenerateExportHeader/c_identifier/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/c_identifier/CMakeLists.txt index 9f8c8ef..77c18e0 100644 --- a/Tests/Module/GenerateExportHeader/c_identifier/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/c_identifier/CMakeLists.txt @@ -1,5 +1,3 @@ -project(c_identifier) - set(c_identifier_lib_SRCS c_identifier_class.cpp ) diff --git a/Tests/Module/GenerateExportHeader/c_identifier/c_identifier_class.cpp b/Tests/RunCMake/GenerateExportHeader/c_identifier/c_identifier_class.cpp index d252c8e..d252c8e 100644 --- a/Tests/Module/GenerateExportHeader/c_identifier/c_identifier_class.cpp +++ b/Tests/RunCMake/GenerateExportHeader/c_identifier/c_identifier_class.cpp diff --git a/Tests/Module/GenerateExportHeader/c_identifier/c_identifier_class.h b/Tests/RunCMake/GenerateExportHeader/c_identifier/c_identifier_class.h index 741efdc..741efdc 100644 --- a/Tests/Module/GenerateExportHeader/c_identifier/c_identifier_class.h +++ b/Tests/RunCMake/GenerateExportHeader/c_identifier/c_identifier_class.h diff --git a/Tests/Module/GenerateExportHeader/c_identifier/main.cpp b/Tests/RunCMake/GenerateExportHeader/c_identifier/main.cpp index 891bc42..887d777 100644 --- a/Tests/Module/GenerateExportHeader/c_identifier/main.cpp +++ b/Tests/RunCMake/GenerateExportHeader/c_identifier/main.cpp @@ -1,7 +1,7 @@ #include "c_identifier_class.h" -int main(int argc, char** argv) +int main() { CIdentifierClass cic; return cic.someMethod(); diff --git a/Tests/Module/GenerateExportHeader/exportheader_test.cpp b/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp index 26bea7e..26bea7e 100644 --- a/Tests/Module/GenerateExportHeader/exportheader_test.cpp +++ b/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt index a057746..ff81f35 100644 --- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt @@ -1,8 +1,3 @@ - -cmake_minimum_required(VERSION 2.8) - -project(lib_shared_and_static) - include(GenerateExportHeader) set(CMAKE_CXX_VISIBILITY_PRESET hidden) @@ -33,6 +28,6 @@ generate_export_header(shared_variant CUSTOM_CONTENT_FROM_VARIABLE MY_CUSTOM_CONTENT ) -set_target_properties(static_variant PROPERTIES COMPILE_FLAGS -DLIBSHARED_AND_STATIC_STATIC_DEFINE) +target_compile_definitions(static_variant PUBLIC MYPREFIX_LIBSHARED_AND_STATIC_STATIC_DEFINE) export(TARGETS shared_variant static_variant FILE Targets.cmake) diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp index 846c207..846c207 100644 --- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp +++ b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h index ea672fe..ea672fe 100644 --- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h +++ b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h diff --git a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/libshared/CMakeLists.txt index e20adb1..c4a761c 100644 --- a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/libshared/CMakeLists.txt @@ -1,8 +1,3 @@ - -cmake_minimum_required(VERSION 2.8) - -project(libshared) - include(GenerateExportHeader) add_compiler_export_flags() diff --git a/Tests/Module/GenerateExportHeader/libshared/libshared.cpp b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp index ad6d356..ad6d356 100644 --- a/Tests/Module/GenerateExportHeader/libshared/libshared.cpp +++ b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp diff --git a/Tests/Module/GenerateExportHeader/libshared/libshared.h b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h index bd9f2e3..bd9f2e3 100644 --- a/Tests/Module/GenerateExportHeader/libshared/libshared.h +++ b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h diff --git a/Tests/Module/GenerateExportHeader/libstatic/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/libstatic/CMakeLists.txt index b2db3ea..0fd136c 100644 --- a/Tests/Module/GenerateExportHeader/libstatic/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/libstatic/CMakeLists.txt @@ -1,8 +1,3 @@ - -cmake_minimum_required(VERSION 2.8) - -project(libstatic) - set(CMAKE_INCLUDE_CURRENT_DIR ON) include(GenerateExportHeader) diff --git a/Tests/Module/GenerateExportHeader/libstatic/libstatic.cpp b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp index 89381af..89381af 100644 --- a/Tests/Module/GenerateExportHeader/libstatic/libstatic.cpp +++ b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp diff --git a/Tests/Module/GenerateExportHeader/libstatic/libstatic.h b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h index 6072d9b..6072d9b 100644 --- a/Tests/Module/GenerateExportHeader/libstatic/libstatic.h +++ b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h diff --git a/Tests/Module/GenerateExportHeader/nodeprecated/CMakeLists.txt b/Tests/RunCMake/GenerateExportHeader/nodeprecated/CMakeLists.txt index aeeb13a..7822d9c 100644 --- a/Tests/Module/GenerateExportHeader/nodeprecated/CMakeLists.txt +++ b/Tests/RunCMake/GenerateExportHeader/nodeprecated/CMakeLists.txt @@ -1,7 +1,3 @@ -cmake_minimum_required(VERSION 2.8) - -project(nodeprecated) - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/nodeprecated_defined) execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/nodeprecated_not_defined) @@ -23,4 +19,4 @@ try_compile(Result ${CMAKE_CURRENT_BINARY_DIR}/nodeprecated_defined_build OUTPUT_VARIABLE Out ) -test_fail(Result "Built even with no-deprecated define")
\ No newline at end of file +test_fail(Result "Built even with no-deprecated define") diff --git a/Tests/Module/GenerateExportHeader/nodeprecated/CMakeLists.txt.in b/Tests/RunCMake/GenerateExportHeader/nodeprecated/CMakeLists.txt.in index d8dc482..90cfa12 100644 --- a/Tests/Module/GenerateExportHeader/nodeprecated/CMakeLists.txt.in +++ b/Tests/RunCMake/GenerateExportHeader/nodeprecated/CMakeLists.txt.in @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.6) project(nodeprecated_test) diff --git a/Tests/Module/GenerateExportHeader/nodeprecated/src/main.cpp b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/main.cpp index eec46d3..f90d098 100644 --- a/Tests/Module/GenerateExportHeader/nodeprecated/src/main.cpp +++ b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/main.cpp @@ -1,7 +1,7 @@ #include "someclass.h" -int main(int, char**) +int main() { SomeClass sc; sc.someMethod(); diff --git a/Tests/Module/GenerateExportHeader/nodeprecated/src/someclass.cpp b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/someclass.cpp index 81dce62..81dce62 100644 --- a/Tests/Module/GenerateExportHeader/nodeprecated/src/someclass.cpp +++ b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/someclass.cpp diff --git a/Tests/Module/GenerateExportHeader/nodeprecated/src/someclass.h b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/someclass.h index 312a177..312a177 100644 --- a/Tests/Module/GenerateExportHeader/nodeprecated/src/someclass.h +++ b/Tests/RunCMake/GenerateExportHeader/nodeprecated/src/someclass.h diff --git a/Tests/Module/GenerateExportHeader/reference/Empty/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h index e8af0a5..e8af0a5 100644 --- a/Tests/Module/GenerateExportHeader/reference/Empty/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/WinEmpty/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h index 598bd71..598bd71 100644 --- a/Tests/Module/GenerateExportHeader/reference/WinEmpty/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Empty/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h index cc20e09..cc20e09 100644 --- a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h index 4aaa848..4aaa848 100644 --- a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/MinGW/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/UNIX/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h index 053ad18..053ad18 100644 --- a/Tests/Module/GenerateExportHeader/reference/UNIX/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h index 4aaa848..4aaa848 100644 --- a/Tests/Module/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h index 808ff01..808ff01 100644 --- a/Tests/Module/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/UNIX/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h index 4aaa848..4aaa848 100644 --- a/Tests/Module/GenerateExportHeader/reference/UNIX/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/MinGW/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h index cc20e09..cc20e09 100644 --- a/Tests/Module/GenerateExportHeader/reference/MinGW/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/MinGW/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h index 4aaa848..4aaa848 100644 --- a/Tests/Module/GenerateExportHeader/reference/MinGW/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/Win32/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h index 4e675af..4e675af 100644 --- a/Tests/Module/GenerateExportHeader/reference/Win32/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/Win32/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h index 4d5ed4e..4d5ed4e 100644 --- a/Tests/Module/GenerateExportHeader/reference/Win32/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/Win32/libstatic_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/WinEmpty/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h index 84340e3..84340e3 100644 --- a/Tests/Module/GenerateExportHeader/reference/WinEmpty/libshared_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libshared_export.h diff --git a/Tests/Module/GenerateExportHeader/reference/Empty/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h index 598bd71..598bd71 100644 --- a/Tests/Module/GenerateExportHeader/reference/Empty/libstatic_export.h +++ b/Tests/RunCMake/GenerateExportHeader/reference/WinEmpty/libstatic_export.h diff --git a/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-result.txt b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-stderr.txt b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-stderr.txt new file mode 100644 index 0000000..cded130 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking-stderr.txt @@ -0,0 +1,8 @@ +CMake Error at LINK_ONLY-not-linking.cmake:1 \(add_custom_target\): + Error evaluating generator expression: + + \$<LINK_ONLY:something> + + \$<LINK_ONLY:...> may only be used for linking +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking.cmake b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking.cmake new file mode 100644 index 0000000..16db0a2 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/LINK_ONLY-not-linking.cmake @@ -0,0 +1 @@ +add_custom_target(Custom ALL COMMAND ${CMAKE_COMMAND} -E echo $<LINK_ONLY:something>) diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake index 625bab2..f5584d5 100644 --- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake @@ -29,6 +29,7 @@ run_cmake(COMPILE_LANGUAGE-unknown-lang) run_cmake(TARGET_FILE-recursion) run_cmake(OUTPUT_NAME-recursion) run_cmake(TARGET_PROPERTY-LOCATION) +run_cmake(LINK_ONLY-not-linking) run_cmake(ImportedTarget-TARGET_PDB_FILE) if(LINKER_SUPPORTS_PDB) diff --git a/Utilities/Scripts/clang-format.bash b/Utilities/Scripts/clang-format.bash index a9ef62b..a7080fc 100755 --- a/Utilities/Scripts/clang-format.bash +++ b/Utilities/Scripts/clang-format.bash @@ -126,7 +126,7 @@ $git_ls -z -- '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' | egrep -z -v '^Utilities/(KW|cm).*/' | # Exclude reference content. - egrep -z -v '^Tests/Module/GenerateExportHeader/reference/' | + egrep -z -v '^Tests/RunCMake/GenerateExportHeader/reference/' | # Exclude manually-formatted sources (e.g. with long lines). egrep -z -v '^Tests/PositionIndependentTargets/pic_test.h' | |