Imported Upstream version 2.8.11.1
This commit is contained in:
parent
584510569f
commit
9885828817
@ -1,3 +1,26 @@
|
|||||||
|
Changes in CMake 2.8.11.1 (since 2.8.11)
|
||||||
|
----------------------------------------
|
||||||
|
Brad King (5):
|
||||||
|
ExternalData: Do not re-stage staged object files
|
||||||
|
try_compile: Fix quoting of libraries in generated CMakeLists.txt
|
||||||
|
KWSys: Fix SystemTools::FileIsDirectory with long paths (#14176)
|
||||||
|
FindBoost: Fix handling of \ in input paths (#14179)
|
||||||
|
Xcode: Fix framework search paths in STATIC library targets (#14191)
|
||||||
|
|
||||||
|
Modestas Vainius (1):
|
||||||
|
Fix test failures caused by regexp-sensitive characters in the build paths
|
||||||
|
|
||||||
|
Stephen Kelly (9):
|
||||||
|
include_directories: Fix handling of empty or space-only entries
|
||||||
|
try_compile: Trim whitespace from LINK_LIBRARIES entries
|
||||||
|
cmTarget: Remove some hardcoding of transitive property names.
|
||||||
|
GenexEval: Extract a getLinkedTargetsContent from TargetPropertyNode.
|
||||||
|
GenexEval: Fix evaluation of INCLUDE_DIRECTORIES target property.
|
||||||
|
GenexEval: Test evaluation of INCLUDE_DIRECTORIES target property.
|
||||||
|
FindQt4: Don't fail if certain Qt modules are unavailable.
|
||||||
|
Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.
|
||||||
|
Genex: Fix the HEAD target used for evaluated expressions
|
||||||
|
|
||||||
Changes in CMake 2.8.11 (since 2.8.11-rc4)
|
Changes in CMake 2.8.11 (since 2.8.11-rc4)
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
None
|
None
|
||||||
|
@ -551,7 +551,10 @@ function(_ExternalData_arg_find_files pattern regex)
|
|||||||
set(relname "${entry}")
|
set(relname "${entry}")
|
||||||
set(alg "")
|
set(alg "")
|
||||||
endif()
|
endif()
|
||||||
if("x${relname}" MATCHES "^x${regex}$" AND NOT IS_DIRECTORY "${top_src}/${entry}")
|
if("x${relname}" MATCHES "^x${regex}$" # matches
|
||||||
|
AND NOT IS_DIRECTORY "${top_src}/${entry}" # not a directory
|
||||||
|
AND NOT "x${relname}" MATCHES "(^x|/)\\.ExternalData_" # not staged obj
|
||||||
|
)
|
||||||
set(name "${top_src}/${relname}")
|
set(name "${top_src}/${relname}")
|
||||||
set(file "${top_bin}/${relname}")
|
set(file "${top_bin}/${relname}")
|
||||||
if(alg)
|
if(alg)
|
||||||
|
@ -928,9 +928,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
|
|||||||
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
||||||
"Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
|
"Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
|
||||||
|
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
|
||||||
|
|
||||||
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
|
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
|
||||||
NAMES ${_boost_RELEASE_NAMES}
|
NAMES ${_boost_RELEASE_NAMES}
|
||||||
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
|
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
|
||||||
NAMES_PER_DIR
|
NAMES_PER_DIR
|
||||||
DOC "${_boost_docstring_release}"
|
DOC "${_boost_docstring_release}"
|
||||||
)
|
)
|
||||||
@ -960,9 +964,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
|
|||||||
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
||||||
"Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
|
"Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
|
||||||
|
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
|
||||||
|
|
||||||
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
|
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
|
||||||
NAMES ${_boost_DEBUG_NAMES}
|
NAMES ${_boost_DEBUG_NAMES}
|
||||||
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
|
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
|
||||||
NAMES_PER_DIR
|
NAMES_PER_DIR
|
||||||
DOC "${_boost_docstring_debug}"
|
DOC "${_boost_docstring_debug}"
|
||||||
)
|
)
|
||||||
|
@ -881,17 +881,21 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if(Q_WS_WIN)
|
if(Q_WS_WIN)
|
||||||
set(QT_MODULES ${QT_MODULES} QAxContainer QAxServer)
|
if (QT_QAXCONTAINER_FOUND)
|
||||||
|
set(QT_MODULES ${QT_MODULES} QAxContainer)
|
||||||
# Set QT_AXCONTAINER_INCLUDE_DIR and QT_AXSERVER_INCLUDE_DIR
|
# Set QT_AXCONTAINER_INCLUDE_DIR and QT_AXSERVER_INCLUDE_DIR
|
||||||
find_path(QT_QAXCONTAINER_INCLUDE_DIR ActiveQt
|
find_path(QT_QAXCONTAINER_INCLUDE_DIR ActiveQt
|
||||||
PATHS ${QT_HEADERS_DIR}/ActiveQt
|
PATHS ${QT_HEADERS_DIR}/ActiveQt
|
||||||
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
|
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
if (QT_QAXSERVER_FOUND)
|
||||||
find_path(QT_QAXSERVER_INCLUDE_DIR ActiveQt
|
find_path(QT_QAXSERVER_INCLUDE_DIR ActiveQt
|
||||||
PATHS ${QT_HEADERS_DIR}/ActiveQt
|
PATHS ${QT_HEADERS_DIR}/ActiveQt
|
||||||
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
|
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Set QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR
|
# Set QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR
|
||||||
find_path(QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR QDesignerComponents
|
find_path(QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR QDesignerComponents
|
||||||
@ -1051,15 +1055,19 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
|
|||||||
if(Q_WS_WIN)
|
if(Q_WS_WIN)
|
||||||
_QT4_ADJUST_LIB_VARS(qtmain)
|
_QT4_ADJUST_LIB_VARS(qtmain)
|
||||||
|
|
||||||
|
if(QT_QAXSERVER_FOUND)
|
||||||
_QT4_ADJUST_LIB_VARS(QAxServer)
|
_QT4_ADJUST_LIB_VARS(QAxServer)
|
||||||
set_property(TARGET Qt4::QAxServer PROPERTY
|
set_property(TARGET Qt4::QAxServer PROPERTY
|
||||||
INTERFACE_QT4_NO_LINK_QTMAIN ON
|
INTERFACE_QT4_NO_LINK_QTMAIN ON
|
||||||
)
|
)
|
||||||
set_property(TARGET Qt4::QAxServer APPEND PROPERTY
|
set_property(TARGET Qt4::QAxServer APPEND PROPERTY
|
||||||
COMPATIBLE_INTERFACE_BOOL QT4_NO_LINK_QTMAIN)
|
COMPATIBLE_INTERFACE_BOOL QT4_NO_LINK_QTMAIN)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(QT_QAXCONTAINER_FOUND)
|
||||||
_QT4_ADJUST_LIB_VARS(QAxContainer)
|
_QT4_ADJUST_LIB_VARS(QAxContainer)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Only public dependencies are listed here.
|
# Only public dependencies are listed here.
|
||||||
# Eg, QtDBus links to QtXml, but users of QtDBus do not need to
|
# Eg, QtDBus links to QtXml, but users of QtDBus do not need to
|
||||||
@ -1080,7 +1088,9 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
|
|||||||
_qt4_add_target_depends(QtWebKit Gui Network)
|
_qt4_add_target_depends(QtWebKit Gui Network)
|
||||||
|
|
||||||
_qt4_add_target_private_depends(Qt3Support Xml)
|
_qt4_add_target_private_depends(Qt3Support Xml)
|
||||||
|
if(QT_VERSION VERSION_GREATER 4.6)
|
||||||
_qt4_add_target_private_depends(QtSvg Xml)
|
_qt4_add_target_private_depends(QtSvg Xml)
|
||||||
|
endif()
|
||||||
_qt4_add_target_private_depends(QtDBus Xml)
|
_qt4_add_target_private_depends(QtDBus Xml)
|
||||||
_qt4_add_target_private_depends(QtUiTools Xml Gui)
|
_qt4_add_target_private_depends(QtUiTools Xml Gui)
|
||||||
_qt4_add_target_private_depends(QtHelp Sql Xml Network)
|
_qt4_add_target_private_depends(QtHelp Sql Xml Network)
|
||||||
@ -1090,8 +1100,12 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
|
|||||||
_qt4_add_target_private_depends(QtDeclarative XmlPatterns Svg Sql Gui)
|
_qt4_add_target_private_depends(QtDeclarative XmlPatterns Svg Sql Gui)
|
||||||
_qt4_add_target_private_depends(QtMultimedia Gui)
|
_qt4_add_target_private_depends(QtMultimedia Gui)
|
||||||
_qt4_add_target_private_depends(QtOpenGL Gui)
|
_qt4_add_target_private_depends(QtOpenGL Gui)
|
||||||
|
if(QT_QAXSERVER_FOUND)
|
||||||
_qt4_add_target_private_depends(QAxServer Gui)
|
_qt4_add_target_private_depends(QAxServer Gui)
|
||||||
|
endif()
|
||||||
|
if(QT_QAXCONTAINER_FOUND)
|
||||||
_qt4_add_target_private_depends(QAxContainer Gui)
|
_qt4_add_target_private_depends(QAxContainer Gui)
|
||||||
|
endif()
|
||||||
_qt4_add_target_private_depends(phonon Gui)
|
_qt4_add_target_private_depends(phonon Gui)
|
||||||
if(QT_QTDBUS_FOUND)
|
if(QT_QTDBUS_FOUND)
|
||||||
_qt4_add_target_private_depends(phonon DBus)
|
_qt4_add_target_private_depends(phonon DBus)
|
||||||
|
@ -451,14 +451,22 @@ function(qt4_use_modules _target _link_type)
|
|||||||
endif()
|
endif()
|
||||||
foreach(_module ${modules})
|
foreach(_module ${modules})
|
||||||
string(TOUPPER ${_module} _ucmodule)
|
string(TOUPPER ${_module} _ucmodule)
|
||||||
|
set(_targetPrefix QT_QT${_ucmodule})
|
||||||
|
if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER)
|
||||||
|
if (NOT QT_Q${_ucmodule}_FOUND)
|
||||||
|
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
|
||||||
|
endif()
|
||||||
|
set(_targetPrefix QT_Q${_ucmodule})
|
||||||
|
else()
|
||||||
if (NOT QT_QT${_ucmodule}_FOUND)
|
if (NOT QT_QT${_ucmodule}_FOUND)
|
||||||
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
|
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
|
||||||
endif()
|
endif()
|
||||||
if ("${_ucmodule}" STREQUAL "MAIN")
|
if ("${_ucmodule}" STREQUAL "MAIN")
|
||||||
message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
|
message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(${_target} ${link_type} ${QT_QT${_ucmodule}_LIBRARY})
|
endif()
|
||||||
set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${QT_QT${_ucmodule}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
|
target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES})
|
||||||
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${QT_QT${_ucmodule}_COMPILE_DEFINITIONS})
|
set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
|
||||||
|
set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS})
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
set(CMake_VERSION_MAJOR 2)
|
set(CMake_VERSION_MAJOR 2)
|
||||||
set(CMake_VERSION_MINOR 8)
|
set(CMake_VERSION_MINOR 8)
|
||||||
set(CMake_VERSION_PATCH 11)
|
set(CMake_VERSION_PATCH 11)
|
||||||
set(CMake_VERSION_TWEAK 0)
|
set(CMake_VERSION_TWEAK 1)
|
||||||
#set(CMake_VERSION_RC 0)
|
#set(CMake_VERSION_RC 0)
|
||||||
|
@ -111,7 +111,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
|
|||||||
++i)
|
++i)
|
||||||
{
|
{
|
||||||
extraArgs++;
|
extraArgs++;
|
||||||
libsToLink += argv[i] + " ";
|
libsToLink += "\"" + cmSystemTools::TrimWhitespace(argv[i]) + "\" ";
|
||||||
cmTarget *tgt = this->Makefile->FindTargetToUse(argv[i].c_str());
|
cmTarget *tgt = this->Makefile->FindTargetToUse(argv[i].c_str());
|
||||||
if (!tgt)
|
if (!tgt)
|
||||||
{
|
{
|
||||||
|
@ -313,6 +313,60 @@ static const char* targetPropertyTransitiveWhitelist[] = {
|
|||||||
, "INTERFACE_COMPILE_DEFINITIONS"
|
, "INTERFACE_COMPILE_DEFINITIONS"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::string getLinkedTargetsContent(const std::vector<std::string> &libraries,
|
||||||
|
cmTarget *target,
|
||||||
|
cmTarget *headTarget,
|
||||||
|
cmGeneratorExpressionContext *context,
|
||||||
|
cmGeneratorExpressionDAGChecker *dagChecker,
|
||||||
|
const std::string &interfacePropertyName)
|
||||||
|
{
|
||||||
|
cmGeneratorExpression ge(context->Backtrace);
|
||||||
|
|
||||||
|
std::string sep;
|
||||||
|
std::string depString;
|
||||||
|
for (std::vector<std::string>::const_iterator
|
||||||
|
it = libraries.begin();
|
||||||
|
it != libraries.end(); ++it)
|
||||||
|
{
|
||||||
|
if (*it == target->GetName())
|
||||||
|
{
|
||||||
|
// Broken code can have a target in its own link interface.
|
||||||
|
// Don't follow such link interface entries so as not to create a
|
||||||
|
// self-referencing loop.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (context->Makefile->FindTargetToUse(it->c_str()))
|
||||||
|
{
|
||||||
|
depString +=
|
||||||
|
sep + "$<TARGET_PROPERTY:" + *it + "," + interfacePropertyName + ">";
|
||||||
|
sep = ";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(depString);
|
||||||
|
std::string linkedTargetsContent = cge->Evaluate(context->Makefile,
|
||||||
|
context->Config,
|
||||||
|
context->Quiet,
|
||||||
|
headTarget,
|
||||||
|
target,
|
||||||
|
dagChecker);
|
||||||
|
if (cge->GetHadContextSensitiveCondition())
|
||||||
|
{
|
||||||
|
context->HadContextSensitiveCondition = true;
|
||||||
|
}
|
||||||
|
return linkedTargetsContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
struct TransitiveWhitelistCompare
|
||||||
|
{
|
||||||
|
explicit TransitiveWhitelistCompare(const std::string &needle)
|
||||||
|
: Needle(needle) {}
|
||||||
|
bool operator() (const char *item)
|
||||||
|
{ return strcmp(item, this->Needle.c_str()) == 0; }
|
||||||
|
private:
|
||||||
|
std::string Needle;
|
||||||
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
||||||
{
|
{
|
||||||
@ -485,49 +539,40 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|||||||
interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
|
interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (interfacePropertyName == "INTERFACE_INCLUDE_DIRECTORIES"
|
cmTarget *headTarget = context->HeadTarget ? context->HeadTarget : target;
|
||||||
|| interfacePropertyName == "INTERFACE_COMPILE_DEFINITIONS")
|
|
||||||
|
const char **transBegin = targetPropertyTransitiveWhitelist;
|
||||||
|
const char **transEnd = targetPropertyTransitiveWhitelist
|
||||||
|
+ (sizeof(targetPropertyTransitiveWhitelist) /
|
||||||
|
sizeof(*targetPropertyTransitiveWhitelist));
|
||||||
|
if (std::find_if(transBegin, transEnd,
|
||||||
|
TransitiveWhitelistCompare(propertyName)) != transEnd)
|
||||||
{
|
{
|
||||||
const cmTarget::LinkInterface *iface = target->GetLinkInterface(
|
const cmTarget::LinkInterface *iface = target->GetLinkInterface(
|
||||||
context->Config,
|
context->Config,
|
||||||
context->HeadTarget);
|
headTarget);
|
||||||
if(iface)
|
if(iface)
|
||||||
{
|
{
|
||||||
cmGeneratorExpression ge(context->Backtrace);
|
linkedTargetsContent =
|
||||||
|
getLinkedTargetsContent(iface->Libraries, target,
|
||||||
std::string sep;
|
headTarget,
|
||||||
std::string depString;
|
context, &dagChecker,
|
||||||
for (std::vector<std::string>::const_iterator
|
interfacePropertyName);
|
||||||
it = iface->Libraries.begin();
|
|
||||||
it != iface->Libraries.end(); ++it)
|
|
||||||
{
|
|
||||||
if (*it == target->GetName())
|
|
||||||
{
|
|
||||||
// Broken code can have a target in its own link interface.
|
|
||||||
// Don't follow such link interface entries so as not to create a
|
|
||||||
// self-referencing loop.
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (context->Makefile->FindTargetToUse(it->c_str()))
|
|
||||||
{
|
|
||||||
depString +=
|
|
||||||
sep + "$<TARGET_PROPERTY:" + *it + ","
|
|
||||||
+ interfacePropertyName + ">";
|
|
||||||
sep = ";";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
|
else if (std::find_if(transBegin, transEnd,
|
||||||
ge.Parse(depString);
|
TransitiveWhitelistCompare(interfacePropertyName)) != transEnd)
|
||||||
linkedTargetsContent = cge->Evaluate(context->Makefile,
|
{
|
||||||
|
const cmTarget::LinkImplementation *impl = target->GetLinkImplementation(
|
||||||
context->Config,
|
context->Config,
|
||||||
context->Quiet,
|
headTarget);
|
||||||
context->HeadTarget,
|
if(impl)
|
||||||
target,
|
|
||||||
&dagChecker);
|
|
||||||
if (cge->GetHadContextSensitiveCondition())
|
|
||||||
{
|
{
|
||||||
context->HadContextSensitiveCondition = true;
|
linkedTargetsContent =
|
||||||
}
|
getLinkedTargetsContent(impl->Libraries, target,
|
||||||
|
headTarget,
|
||||||
|
context, &dagChecker,
|
||||||
|
interfacePropertyName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -574,7 +619,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|||||||
std::string result = cge->Evaluate(context->Makefile,
|
std::string result = cge->Evaluate(context->Makefile,
|
||||||
context->Config,
|
context->Config,
|
||||||
context->Quiet,
|
context->Quiet,
|
||||||
context->HeadTarget,
|
headTarget,
|
||||||
target,
|
target,
|
||||||
&dagChecker);
|
&dagChecker);
|
||||||
|
|
||||||
|
@ -2028,9 +2028,6 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
|||||||
dirs.Add(incpath.c_str());
|
dirs.Add(incpath.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(target.GetType() != cmTarget::OBJECT_LIBRARY &&
|
|
||||||
target.GetType() != cmTarget::STATIC_LIBRARY)
|
|
||||||
{
|
|
||||||
// Add framework search paths needed for linking.
|
// Add framework search paths needed for linking.
|
||||||
if(cmComputeLinkInformation* cli = target.GetLinkInformation(configName))
|
if(cmComputeLinkInformation* cli = target.GetLinkInformation(configName))
|
||||||
{
|
{
|
||||||
@ -2044,7 +2041,6 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(!fdirs.IsEmpty())
|
if(!fdirs.IsEmpty())
|
||||||
{
|
{
|
||||||
buildSettings->AddAttribute("FRAMEWORK_SEARCH_PATHS",
|
buildSettings->AddAttribute("FRAMEWORK_SEARCH_PATHS",
|
||||||
|
@ -116,14 +116,20 @@ void cmIncludeDirectoryCommand::GetIncludes(const std::string &arg,
|
|||||||
{
|
{
|
||||||
std::string inc = arg.substr(lastPos,pos);
|
std::string inc = arg.substr(lastPos,pos);
|
||||||
this->NormalizeInclude(inc);
|
this->NormalizeInclude(inc);
|
||||||
|
if (!inc.empty())
|
||||||
|
{
|
||||||
incs.push_back(inc);
|
incs.push_back(inc);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
lastPos = pos + 1;
|
lastPos = pos + 1;
|
||||||
}
|
}
|
||||||
std::string inc = arg.substr(lastPos);
|
std::string inc = arg.substr(lastPos);
|
||||||
this->NormalizeInclude(inc);
|
this->NormalizeInclude(inc);
|
||||||
|
if (!inc.empty())
|
||||||
|
{
|
||||||
incs.push_back(inc);
|
incs.push_back(inc);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc)
|
void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc)
|
||||||
{
|
{
|
||||||
@ -133,6 +139,11 @@ void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc)
|
|||||||
{
|
{
|
||||||
inc.assign(inc, b, 1+e-b); // copy the remaining substring
|
inc.assign(inc, b, 1+e-b); // copy the remaining substring
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inc = "";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!cmSystemTools::IsOff(inc.c_str()))
|
if (!cmSystemTools::IsOff(inc.c_str()))
|
||||||
{
|
{
|
||||||
|
@ -2742,14 +2742,23 @@ bool SystemTools::FileIsDirectory(const char* name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove any trailing slash from the name.
|
// Remove any trailing slash from the name.
|
||||||
char buffer[KWSYS_SYSTEMTOOLS_MAXPATH];
|
char local_buffer[KWSYS_SYSTEMTOOLS_MAXPATH];
|
||||||
|
std::string string_buffer;
|
||||||
size_t last = length-1;
|
size_t last = length-1;
|
||||||
if(last > 0 && (name[last] == '/' || name[last] == '\\')
|
if(last > 0 && (name[last] == '/' || name[last] == '\\')
|
||||||
&& strcmp(name, "/") !=0)
|
&& strcmp(name, "/") !=0)
|
||||||
{
|
{
|
||||||
memcpy(buffer, name, last);
|
if(last < sizeof(local_buffer))
|
||||||
buffer[last] = 0;
|
{
|
||||||
name = buffer;
|
memcpy(local_buffer, name, last);
|
||||||
|
local_buffer[last] = 0;
|
||||||
|
name = local_buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string_buffer.append(name, last);
|
||||||
|
name = string_buffer.c_str();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now check the file node type.
|
// Now check the file node type.
|
||||||
|
@ -15,10 +15,7 @@ macro(ADD_TEST_MACRO NAME COMMAND)
|
|||||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
|
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(REGEX_ESCAPE_STRING _OUT _IN)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/RegexEscapeString.cmake)
|
||||||
# Escape special regex metacharacters with a backslash
|
|
||||||
string(REGEX REPLACE "([$^.[|*+?()]|])" "\\\\\\1" ${_OUT} "${_IN}")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/CheckFortran.cmake)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/CheckFortran.cmake)
|
||||||
|
|
||||||
|
@ -28,92 +28,95 @@ if(NOT result STREQUAL "alpha")
|
|||||||
message(SEND_ERROR "bad value of VARIABLE PROPERTY test_var: got '${result}' instead of 'alpha'")
|
message(SEND_ERROR "bad value of VARIABLE PROPERTY test_var: got '${result}' instead of 'alpha'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
|
||||||
set(Missing-Argument-RESULT 1)
|
set(Missing-Argument-RESULT 1)
|
||||||
set(Missing-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Missing-Argument.cmake:1 \\(get_property\\):.*get_property called with incorrect number of arguments.*")
|
set(Missing-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Missing-Argument.cmake:1 \\(get_property\\):.*get_property called with incorrect number of arguments.*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Missing-Argument
|
Missing-Argument
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Bad-Scope-RESULT 1)
|
set(Bad-Scope-RESULT 1)
|
||||||
set(Bad-Scope-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Scope.cmake:1 \\(get_property\\):.*get_property given invalid scope FOO\\..*")
|
set(Bad-Scope-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Scope.cmake:1 \\(get_property\\):.*get_property given invalid scope FOO\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Bad-Scope
|
Bad-Scope
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Bad-Argument-RESULT 1)
|
set(Bad-Argument-RESULT 1)
|
||||||
set(Bad-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Argument.cmake:1 \\(get_property\\):.*get_property given invalid argument \"FOO\"\\..*")
|
set(Bad-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Argument.cmake:1 \\(get_property\\):.*get_property given invalid argument \"FOO\"\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Bad-Argument
|
Bad-Argument
|
||||||
)
|
)
|
||||||
|
|
||||||
set(No-Property-RESULT 1)
|
set(No-Property-RESULT 1)
|
||||||
set(No-Property-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Property.cmake:1 \\(get_property\\):.*get_property not given a PROPERTY <name> argument\\..*")
|
set(No-Property-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Property.cmake:1 \\(get_property\\):.*get_property not given a PROPERTY <name> argument\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
No-Property
|
No-Property
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Global-Name-RESULT 1)
|
set(Global-Name-RESULT 1)
|
||||||
set(Global-Name-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Global-Name.cmake:1 \\(get_property\\):.*get_property given name for GLOBAL scope\\..*")
|
set(Global-Name-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Global-Name.cmake:1 \\(get_property\\):.*get_property given name for GLOBAL scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Global-Name
|
Global-Name
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Bad-Directory-RESULT 1)
|
set(Bad-Directory-RESULT 1)
|
||||||
set(Bad-Directory-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Directory.cmake:1 \\(get_property\\):.*get_property DIRECTORY scope provided but requested directory was not.*found\\..*")
|
set(Bad-Directory-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Directory.cmake:1 \\(get_property\\):.*get_property DIRECTORY scope provided but requested directory was not.*found\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Bad-Directory
|
Bad-Directory
|
||||||
)
|
)
|
||||||
|
|
||||||
set(No-Target-RESULT 1)
|
set(No-Target-RESULT 1)
|
||||||
set(No-Target-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Target.cmake:1 \\(get_property\\):.*get_property not given name for TARGET scope\\..*")
|
set(No-Target-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Target.cmake:1 \\(get_property\\):.*get_property not given name for TARGET scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
No-Target
|
No-Target
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Bad-Target-RESULT 1)
|
set(Bad-Target-RESULT 1)
|
||||||
set(Bad-Target-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Target.cmake:1 \\(get_property\\):.*get_property could not find TARGET FOO\\..*")
|
set(Bad-Target-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Target.cmake:1 \\(get_property\\):.*get_property could not find TARGET FOO\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Bad-Target
|
Bad-Target
|
||||||
)
|
)
|
||||||
|
|
||||||
set(No-Source-RESULT 1)
|
set(No-Source-RESULT 1)
|
||||||
set(No-Source-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Source.cmake:1 \\(get_property\\):.*get_property not given name for SOURCE scope\\..*")
|
set(No-Source-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Source.cmake:1 \\(get_property\\):.*get_property not given name for SOURCE scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
No-Source
|
No-Source
|
||||||
)
|
)
|
||||||
|
|
||||||
set(No-Test-RESULT 1)
|
set(No-Test-RESULT 1)
|
||||||
set(No-Test-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Test.cmake:1 \\(get_property\\):.*get_property not given name for TEST scope\\..*")
|
set(No-Test-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Test.cmake:1 \\(get_property\\):.*get_property not given name for TEST scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
No-Test
|
No-Test
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Bad-Test-RESULT 1)
|
set(Bad-Test-RESULT 1)
|
||||||
set(Bad-Test-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Test.cmake:1 \\(get_property\\):.*get_property given TEST name that does not exist: FOO.*")
|
set(Bad-Test-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Test.cmake:1 \\(get_property\\):.*get_property given TEST name that does not exist: FOO.*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Bad-Test
|
Bad-Test
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Variable-Name-RESULT 1)
|
set(Variable-Name-RESULT 1)
|
||||||
set(Variable-Name-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Variable-Name.cmake:1 \\(get_property\\):.*get_property given name for VARIABLE scope\\..*")
|
set(Variable-Name-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Variable-Name.cmake:1 \\(get_property\\):.*get_property given name for VARIABLE scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
Variable-Name
|
Variable-Name
|
||||||
)
|
)
|
||||||
|
|
||||||
set(No-Cache-RESULT 1)
|
set(No-Cache-RESULT 1)
|
||||||
set(No-Cache-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Cache.cmake:1 \\(get_property\\):.*get_property not given name for CACHE scope\\..*")
|
set(No-Cache-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Cache.cmake:1 \\(get_property\\):.*get_property not given name for CACHE scope\\..*")
|
||||||
|
|
||||||
check_cmake_test(GetProperty
|
check_cmake_test(GetProperty
|
||||||
No-Cache
|
No-Cache
|
||||||
|
@ -7,6 +7,9 @@ foreach(_arg "" 0 1 2 ${TRUE_NAMES} ${FALSE_NAMES})
|
|||||||
set(VAR_${_arg} "${_arg}")
|
set(VAR_${_arg} "${_arg}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
|
||||||
macro(test_vars _old)
|
macro(test_vars _old)
|
||||||
# Variables set to false or not set.
|
# Variables set to false or not set.
|
||||||
foreach(_var "" 0 ${FALSE_NAMES} UNDEFINED)
|
foreach(_var "" 0 ${FALSE_NAMES} UNDEFINED)
|
||||||
@ -158,7 +161,7 @@ endforeach()
|
|||||||
test_vars("")
|
test_vars("")
|
||||||
|
|
||||||
set(Invalid-Argument-RESULT 1)
|
set(Invalid-Argument-RESULT 1)
|
||||||
set(Invalid-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?If-Invalid-Argument.cmake:1 \\(if\\):.*Unknown arguments specified.*")
|
set(Invalid-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?If-Invalid-Argument.cmake:1 \\(if\\):.*Unknown arguments specified.*")
|
||||||
|
|
||||||
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
check_cmake_test(If
|
check_cmake_test(If
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
|
||||||
macro(TEST command expected)
|
macro(TEST command expected)
|
||||||
if("x${result}" STREQUAL "x${expected}")
|
if("x${result}" STREQUAL "x${expected}")
|
||||||
#message("TEST \"${command}\" success: \"${result}\" expected: \"${expected}\"")
|
#message("TEST \"${command}\" success: \"${result}\" expected: \"${expected}\"")
|
||||||
@ -101,7 +104,7 @@ list(SORT result)
|
|||||||
TEST("SORT empty result" "")
|
TEST("SORT empty result" "")
|
||||||
|
|
||||||
set(No-Arguments-RESULT 1)
|
set(No-Arguments-RESULT 1)
|
||||||
set(No-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
|
set(No-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
|
||||||
|
|
||||||
# these trigger top-level condition
|
# these trigger top-level condition
|
||||||
foreach(cmd IN ITEMS Append Find Get Insert Length Reverse Remove_At Remove_Duplicates Remove_Item Sort)
|
foreach(cmd IN ITEMS Append Find Get Insert Length Reverse Remove_At Remove_Duplicates Remove_Item Sort)
|
||||||
@ -130,33 +133,33 @@ foreach(cmd IN ITEMS Find Get Insert Length Remove_At Remove_Item)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(Length-Too-Many-Arguments-RESULT 1)
|
set(Length-Too-Many-Arguments-RESULT 1)
|
||||||
set(Length-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Length-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command LENGTH requires two arguments.*")
|
set(Length-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Length-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command LENGTH requires two arguments.*")
|
||||||
|
|
||||||
set(Reverse-Too-Many-Arguments-RESULT 1)
|
set(Reverse-Too-Many-Arguments-RESULT 1)
|
||||||
set(Reverse-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Reverse-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REVERSE only takes one argument.*")
|
set(Reverse-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Reverse-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REVERSE only takes one argument.*")
|
||||||
|
|
||||||
set(Remove_Duplicates-Too-Many-Arguments-RESULT 1)
|
set(Remove_Duplicates-Too-Many-Arguments-RESULT 1)
|
||||||
set(Remove_Duplicates-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Remove_Duplicates-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_DUPLICATES only takes one argument.*")
|
set(Remove_Duplicates-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Remove_Duplicates-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_DUPLICATES only takes one argument.*")
|
||||||
|
|
||||||
set(Sort-Too-Many-Arguments-RESULT 1)
|
set(Sort-Too-Many-Arguments-RESULT 1)
|
||||||
set(Sort-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Sort-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command SORT only takes one argument.*")
|
set(Sort-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Sort-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command SORT only takes one argument.*")
|
||||||
|
|
||||||
set(Invalid-Subcommand-RESULT 1)
|
set(Invalid-Subcommand-RESULT 1)
|
||||||
set(Invalid-Subcommand-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Invalid-Subcommand.cmake:1 \\(list\\):.*list does not recognize sub-command NO_SUCH_SUBCOMMAND.*")
|
set(Invalid-Subcommand-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Invalid-Subcommand.cmake:1 \\(list\\):.*list does not recognize sub-command NO_SUCH_SUBCOMMAND.*")
|
||||||
|
|
||||||
foreach(cmd Get Insert Remove_At)
|
foreach(cmd Get Insert Remove_At)
|
||||||
set(${cmd}-Invalid-Index-RESULT 1)
|
set(${cmd}-Invalid-Index-RESULT 1)
|
||||||
set(${cmd}-Invalid-Index-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-${cmd}-Invalid-Index.cmake:2 \\(list\\):.*list index: 3 out of range \\(-3, 2\\).*")
|
set(${cmd}-Invalid-Index-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-${cmd}-Invalid-Index.cmake:2 \\(list\\):.*list index: 3 out of range \\(-3, 2\\).*")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
foreach(cmd Remove_Item Reverse Remove_Duplicates Sort Remove_At)
|
foreach(cmd Remove_Item Reverse Remove_Duplicates Sort Remove_At)
|
||||||
string(TOUPPER ${cmd} Cmd)
|
string(TOUPPER ${cmd} Cmd)
|
||||||
set(${cmd}-Nonexistent-List-RESULT 1)
|
set(${cmd}-Nonexistent-List-RESULT 1)
|
||||||
set(${cmd}-Nonexistent-List-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-${cmd}-Nonexistent-List.cmake:2 \\(list\\):.*sub-command ${Cmd} requires list to be present.*")
|
set(${cmd}-Nonexistent-List-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-${cmd}-Nonexistent-List.cmake:2 \\(list\\):.*sub-command ${Cmd} requires list to be present.*")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(Get-CMP0007-Warn-RESULT 0)
|
set(Get-CMP0007-Warn-RESULT 0)
|
||||||
set(Get-CMP0007-Warn-STDERR ".*CMake Warning \\(dev\\) at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Get-CMP0007-Warn.cmake:3 \\(list\\):.*Policy CMP0007 is not set:.*")
|
set(Get-CMP0007-Warn-STDERR ".*CMake Warning \\(dev\\) at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Get-CMP0007-Warn.cmake:3 \\(list\\):.*Policy CMP0007 is not set:.*")
|
||||||
|
|
||||||
check_cmake_test(List
|
check_cmake_test(List
|
||||||
No-Arguments
|
No-Arguments
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
set(NUMBERS "")
|
set(NUMBERS "")
|
||||||
set(COUNT 0)
|
set(COUNT 0)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
|
||||||
while(COUNT LESS 200)
|
while(COUNT LESS 200)
|
||||||
set(NUMBERS "${NUMBERS} ${COUNT}")
|
set(NUMBERS "${NUMBERS} ${COUNT}")
|
||||||
set(COUNT "2${COUNT}")
|
set(COUNT "2${COUNT}")
|
||||||
@ -16,8 +19,9 @@ if(NOT NUMBERS STREQUAL " 0 3 30 20 3 30")
|
|||||||
message(SEND_ERROR "while loop nesting error, result: '${NUMBERS}'")
|
message(SEND_ERROR "while loop nesting error, result: '${NUMBERS}'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set(Missing-Argument-RESULT 1)
|
set(Missing-Argument-RESULT 1)
|
||||||
set(Missing-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Argument.cmake:1 \\(while\\):.*while called with incorrect number of arguments.*")
|
set(Missing-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Argument.cmake:1 \\(while\\):.*while called with incorrect number of arguments.*")
|
||||||
|
|
||||||
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
check_cmake_test(While
|
check_cmake_test(While
|
||||||
@ -25,28 +29,28 @@ check_cmake_test(While
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(Missing-Endwhile-RESULT 1)
|
set(Missing-Endwhile-RESULT 1)
|
||||||
set(Missing-Endwhile-STDERR ".*CMake Error in (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Endwhile.cmake:.*A logical block opening on the line.*(@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Endwhile.cmake:1 \\(while\\).*is not closed\\..*")
|
set(Missing-Endwhile-STDERR ".*CMake Error in (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Endwhile.cmake:.*A logical block opening on the line.*(${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Endwhile.cmake:1 \\(while\\).*is not closed\\..*")
|
||||||
|
|
||||||
check_cmake_test(While
|
check_cmake_test(While
|
||||||
Missing-Endwhile
|
Missing-Endwhile
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Endwhile-Mismatch-RESULT 0)
|
set(Endwhile-Mismatch-RESULT 0)
|
||||||
set(Endwhile-Mismatch-STDERR ".*CMake Warning \\(dev\\) in (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Mismatch.cmake:.*A logical block opening on the line.*(@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Mismatch.cmake:1 \\(while\\).*with mis-matching arguments\\..*")
|
set(Endwhile-Mismatch-STDERR ".*CMake Warning \\(dev\\) in (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Mismatch.cmake:.*A logical block opening on the line.*(${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Mismatch.cmake:1 \\(while\\).*with mis-matching arguments\\..*")
|
||||||
|
|
||||||
check_cmake_test(While
|
check_cmake_test(While
|
||||||
Endwhile-Mismatch
|
Endwhile-Mismatch
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Endwhile-Alone-RESULT 1)
|
set(Endwhile-Alone-RESULT 1)
|
||||||
set(Endwhile-Alone-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Alone.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\.\n.*$")
|
set(Endwhile-Alone-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Alone.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\.\n.*$")
|
||||||
|
|
||||||
check_cmake_test(While
|
check_cmake_test(While
|
||||||
Endwhile-Alone
|
Endwhile-Alone
|
||||||
)
|
)
|
||||||
|
|
||||||
set(Endwhile-Alone-Args-RESULT 1)
|
set(Endwhile-Alone-Args-RESULT 1)
|
||||||
set(Endwhile-Alone-Args-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Alone-Args.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\. Or its arguments did not.*$")
|
set(Endwhile-Alone-Args-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Alone-Args.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\. Or its arguments did not.*$")
|
||||||
|
|
||||||
check_cmake_test(While
|
check_cmake_test(While
|
||||||
Endwhile-Alone-Args
|
Endwhile-Alone-Args
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
|
||||||
foreach (_retval 0 1)
|
foreach (_retval 0 1)
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ret${_retval}.c" "int main(){return ${_retval};}\n")
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ret${_retval}.c" "int main(){return ${_retval};}\n")
|
||||||
endforeach ()
|
endforeach ()
|
||||||
@ -49,7 +51,7 @@ string(REPLACE "+" "\\+" CMAKE_COMMAND_ESCAPED "${CMAKE_COMMAND_ESCAPED}")
|
|||||||
|
|
||||||
foreach (_unkn Unknown UnknownQuoted)
|
foreach (_unkn Unknown UnknownQuoted)
|
||||||
set_tests_properties(CTestTestMemcheck${_unkn} PROPERTIES
|
set_tests_properties(CTestTestMemcheck${_unkn} PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "Do not understand memory checker: ${CMAKE_COMMAND_ESCAPED}\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/${_unkn}/test.cmake\n")
|
PASS_REGULAR_EXPRESSION "Do not understand memory checker: ${CMAKE_COMMAND_ESCAPED}\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/${_unkn}/test.cmake\n")
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
set_tests_properties(CTestTestMemcheckNotExist PROPERTIES
|
set_tests_properties(CTestTestMemcheckNotExist PROPERTIES
|
||||||
@ -67,7 +69,7 @@ foreach (_pp Pre Post)
|
|||||||
string(TOLOWER ${_pp} _pp_lower)
|
string(TOLOWER ${_pp} _pp_lower)
|
||||||
set_tests_properties(CTestTestMemcheckDummyValgrindFail${_pp}
|
set_tests_properties(CTestTestMemcheckDummyValgrindFail${_pp}
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "\nProblem running command: ${CMAKE_CURRENT_BINARY_DIR}[^\n]*fail[^\n]*\n(.*\n)?Problem executing ${_pp_lower}-memcheck command\\(s\\\).\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyValgrindFail${_pp}/test.cmake\n")
|
PASS_REGULAR_EXPRESSION "\nProblem running command: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}[^\n]*fail[^\n]*\n(.*\n)?Problem executing ${_pp_lower}-memcheck command\\(s\\\).\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyValgrindFail${_pp}/test.cmake\n")
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
set_tests_properties(CTestTestMemcheckDummyValgrindIgnoreMemcheck
|
set_tests_properties(CTestTestMemcheckDummyValgrindIgnoreMemcheck
|
||||||
@ -75,7 +77,7 @@ set_tests_properties(CTestTestMemcheckDummyValgrindIgnoreMemcheck
|
|||||||
PASS_REGULAR_EXPRESSION "\n2/2 Test #2: RunCMakeAgain .*\n1/1 MemCheck #1: RunCMake .*${NORMAL_CTEST_OUTPUT}")
|
PASS_REGULAR_EXPRESSION "\n2/2 Test #2: RunCMakeAgain .*\n1/1 MemCheck #1: RunCMake .*${NORMAL_CTEST_OUTPUT}")
|
||||||
|
|
||||||
set_tests_properties(CTestTestMemcheckDummyPurify PROPERTIES
|
set_tests_properties(CTestTestMemcheckDummyPurify PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CMAKE_CURRENT_BINARY_DIR}/DummyPurify/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyPurify/test.cmake\n")
|
PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyPurify/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyPurify/test.cmake\n")
|
||||||
|
|
||||||
set_tests_properties(CTestTestMemcheckDummyBC PROPERTIES
|
set_tests_properties(CTestTestMemcheckDummyBC PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CMAKE_CURRENT_BINARY_DIR}/DummyBC/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error parsing XML in stream at line 1: no element found\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyBC/test.cmake\n")
|
PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyBC/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error parsing XML in stream at line 1: no element found\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyBC/test.cmake\n")
|
||||||
|
@ -58,3 +58,14 @@ get_property(propContentAfter DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
|
|||||||
if (NOT propContentAfter STREQUAL "")
|
if (NOT propContentAfter STREQUAL "")
|
||||||
message(SEND_ERROR "Clearing DIRECTORY property failed.")
|
message(SEND_ERROR "Clearing DIRECTORY property failed.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_library(empty_entry_test SHARED empty.cpp)
|
||||||
|
set_target_properties(empty_entry_test PROPERTIES INCLUDE_DIRECTORIES "")
|
||||||
|
include_directories(/one/two
|
||||||
|
" "
|
||||||
|
" "
|
||||||
|
)
|
||||||
|
get_target_property(incs empty_entry_test INCLUDE_DIRECTORIES)
|
||||||
|
if (NOT incs STREQUAL ";/one/two")
|
||||||
|
message(SEND_ERROR "Empty include_directories entry was not ignored.")
|
||||||
|
endif()
|
||||||
|
@ -109,6 +109,30 @@ set_property(TARGET libbad APPEND PROPERTY
|
|||||||
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}/bad"
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}/bad"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_library(lib6 SHARED other.cpp)
|
||||||
|
add_library(lib7 SHARED other.cpp)
|
||||||
|
target_link_libraries(lib7 $<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:lib6>)
|
||||||
|
target_include_directories(lib7 PUBLIC $<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:/lib7/include>)
|
||||||
|
add_custom_target(head_target_test "some_bogus_custom_tool \"$<TARGET_PROPERTY:lib7,INCLUDE_DIRECTORIES>$<TARGET_PROPERTY:lib7,INTERFACE_INCLUDE_DIRECTORIES>\"")
|
||||||
|
|
||||||
|
add_library(includes_source_good empty.cpp)
|
||||||
|
target_include_directories(includes_source_good
|
||||||
|
INTERFACE
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/good"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/othergood/"
|
||||||
|
)
|
||||||
|
add_library(includes_source_bad empty.cpp)
|
||||||
|
target_include_directories(includes_source_bad
|
||||||
|
INTERFACE
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/bad"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(includes_proxy SHARED empty.cpp)
|
||||||
|
target_link_libraries(includes_proxy includes_source_good)
|
||||||
|
target_link_libraries(includes_proxy LINK_INTERFACE_LIBRARIES includes_source_bad)
|
||||||
|
add_executable(copy_includes copy_includes.cpp)
|
||||||
|
target_include_directories(copy_includes PRIVATE $<TARGET_PROPERTY:includes_proxy,INCLUDE_DIRECTORIES>)
|
||||||
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lib5.cpp" "#include \"common.h\"\n")
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lib5.cpp" "#include \"common.h\"\n")
|
||||||
add_library(lib5 "${CMAKE_CURRENT_BINARY_DIR}/lib5.cpp")
|
add_library(lib5 "${CMAKE_CURRENT_BINARY_DIR}/lib5.cpp")
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
#ifdef _WIN32
|
||||||
|
__declspec(dllexport)
|
||||||
|
#endif
|
||||||
|
int empty(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
#ifdef _WIN32
|
||||||
|
__declspec(dllexport)
|
||||||
|
#endif
|
||||||
|
int other() {
|
||||||
|
return 0;
|
||||||
|
}
|
4
Tests/IncludeDirectories/empty.cpp
Normal file
4
Tests/IncludeDirectories/empty.cpp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#ifdef _WIN32
|
||||||
|
__declspec(dllexport)
|
||||||
|
#endif
|
||||||
|
int empty() { return 0; }
|
4
Tests/RegexEscapeString.cmake
Normal file
4
Tests/RegexEscapeString.cmake
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
macro(REGEX_ESCAPE_STRING _OUT _IN)
|
||||||
|
# Escape special regex metacharacters with a backslash
|
||||||
|
string(REGEX REPLACE "([$^.[|*+?()]|])" "\\\\\\1" ${_OUT} "${_IN}")
|
||||||
|
endmacro()
|
5
Tests/RunCMake/ExternalData/LinkDirectory1-stdout.txt
Normal file
5
Tests/RunCMake/ExternalData/LinkDirectory1-stdout.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
-- Linked Dir/ToLink.txt.md5 to ExternalData MD5/c18ff9804c8deec9eaeb17063cda8b7b
|
||||||
|
-- Raw data correctly transformed to content link!
|
||||||
|
-- Staged content exists!
|
||||||
|
-- Staged content is correct!
|
||||||
|
-- Staged content was correctly not re-staged!
|
37
Tests/RunCMake/ExternalData/LinkDirectory1.cmake
Normal file
37
Tests/RunCMake/ExternalData/LinkDirectory1.cmake
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
include(ExternalData)
|
||||||
|
set(ExternalData_LINK_CONTENT MD5)
|
||||||
|
set(ExternalData_SOURCE_ROOT ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
set(ExternalData_BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/ExternalData)
|
||||||
|
set(input ${CMAKE_CURRENT_BINARY_DIR}/Dir)
|
||||||
|
set(output ${CMAKE_CURRENT_BINARY_DIR}/ExternalData/Dir)
|
||||||
|
set(staged "${input}/.ExternalData_MD5_c18ff9804c8deec9eaeb17063cda8b7b")
|
||||||
|
set(content "To be transformed into a content link.")
|
||||||
|
file(REMOVE ${staged})
|
||||||
|
file(REMOVE_RECURSE ${input})
|
||||||
|
file(WRITE ${input}/ToLink.txt "${content}")
|
||||||
|
ExternalData_Expand_Arguments(Data args "DATA{${input}/,REGEX:.*}")
|
||||||
|
if("x${args}" STREQUAL "x${output}")
|
||||||
|
message(STATUS "Raw data correctly transformed to content link!")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Data reference transformed to:\n ${args}\n"
|
||||||
|
"but we expected:\n ${output}")
|
||||||
|
endif()
|
||||||
|
if(EXISTS "${staged}")
|
||||||
|
message(STATUS "Staged content exists!")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Staged content missing!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Expand again to check whether staged content is ignored.
|
||||||
|
ExternalData_Expand_Arguments(Data args "DATA{${input}/,REGEX:.*}")
|
||||||
|
file(STRINGS "${staged}" staged_content LIMIT_INPUT 1024)
|
||||||
|
if("${content}" STREQUAL "${staged_content}")
|
||||||
|
message(STATUS "Staged content is correct!")
|
||||||
|
else()
|
||||||
|
message(STATUS "Staged content is incorrect!")
|
||||||
|
endif()
|
||||||
|
if(EXISTS "${staged}.md5")
|
||||||
|
message(FATAL_ERROR "Staged content was incorrectly re-staged!")
|
||||||
|
else()
|
||||||
|
message(STATUS "Staged content was correctly not re-staged!")
|
||||||
|
endif()
|
@ -13,6 +13,7 @@ run_cmake(Directory4)
|
|||||||
run_cmake(Directory5)
|
run_cmake(Directory5)
|
||||||
run_cmake(LinkContentMD5)
|
run_cmake(LinkContentMD5)
|
||||||
run_cmake(LinkContentSHA1)
|
run_cmake(LinkContentSHA1)
|
||||||
|
run_cmake(LinkDirectory1)
|
||||||
run_cmake(MissingData)
|
run_cmake(MissingData)
|
||||||
run_cmake(NoLinkInSource)
|
run_cmake(NoLinkInSource)
|
||||||
run_cmake(NoURLTemplates)
|
run_cmake(NoURLTemplates)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user