summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CompileFlags.cmake13
-rw-r--r--Help/command/find_package.rst2
-rw-r--r--Help/command/get_test_property.rst8
-rw-r--r--Help/command/if.rst9
-rw-r--r--Help/command/set_tests_properties.rst2
-rw-r--r--Help/manual/cmake-developer.7.rst79
-rw-r--r--Help/manual/cmake-variables.7.rst1
-rw-r--r--Help/prop_tgt/CXX_STANDARD.rst2
-rw-r--r--Help/release/dev/FindLATEX-components.rst4
-rw-r--r--Help/release/dev/WCDH-thread_local.rst7
-rw-r--r--Help/release/dev/add-xz-support.rst5
-rw-r--r--Help/release/dev/feature_record_msvc.rst6
-rw-r--r--Help/variable/CMAKE_FIND_PACKAGE_NAME.rst6
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake5
-rw-r--r--Modules/Compiler/GNU-C.cmake2
-rw-r--r--Modules/Compiler/GNU-CXX.cmake4
-rw-r--r--Modules/Compiler/MSVC-C-FeatureTests.cmake23
-rw-r--r--Modules/Compiler/MSVC-CXX-FeatureTests.cmake97
-rw-r--r--Modules/CompilerId/Xcode-3.pbxproj.in2
-rw-r--r--Modules/FindCUDA.cmake14
-rw-r--r--Modules/FindIce.cmake10
-rw-r--r--Modules/FindLATEX.cmake167
-rw-r--r--Modules/FindMPI.cmake12
-rw-r--r--Modules/FindOpenSSL.cmake4
-rw-r--r--Modules/FindSDL.cmake2
-rw-r--r--Modules/Platform/Linux-XL-C.cmake1
-rw-r--r--Modules/Platform/Linux-XL-CXX.cmake1
-rw-r--r--Modules/Platform/Linux-XL-Fortran.cmake1
-rw-r--r--Modules/Platform/Windows-MSVC-C.cmake2
-rw-r--r--Modules/Platform/Windows-MSVC-CXX.cmake9
-rw-r--r--Modules/WriteCompilerDetectionHeader.cmake20
-rw-r--r--Source/CMakeLists.txt1
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/CPack/IFW/cmCPackIFWInstaller.cxx2
-rw-r--r--Source/CPack/IFW/cmCPackIFWPackage.cxx2
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx7
-rw-r--r--Source/CPack/cmCPackBundleGenerator.cxx26
-rw-r--r--Source/CPack/cmCPackDragNDropGenerator.cxx44
-rw-r--r--Source/CPack/cmCPackDragNDropGenerator.h4
-rw-r--r--Source/CPack/cmCPackGenerator.cxx10
-rw-r--r--Source/CPack/cmCPackGenerator.h2
-rw-r--r--Source/CPack/cmCPackLog.h2
-rw-r--r--Source/CPack/cmCPackNSISGenerator.cxx28
-rw-r--r--Source/CPack/cmCPackNSISGenerator.h8
-rw-r--r--Source/CPack/cmCPackOSXX11Generator.cxx6
-rw-r--r--Source/CPack/cmCPackPackageMakerGenerator.cxx21
-rw-r--r--Source/CPack/cmCPackPackageMakerGenerator.h10
-rw-r--r--Source/CPack/cpack.cxx2
-rw-r--r--Source/CTest/cmCTestBuildAndTestHandler.cxx4
-rw-r--r--Source/CTest/cmCTestBuildAndTestHandler.h2
-rw-r--r--Source/CTest/cmCTestBuildCommand.cxx6
-rw-r--r--Source/CTest/cmCTestBuildHandler.cxx7
-rw-r--r--Source/CTest/cmCTestConfigureCommand.cxx2
-rw-r--r--Source/CTest/cmCTestCoverageHandler.cxx14
-rw-r--r--Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx2
-rw-r--r--Source/CTest/cmCTestGenericHandler.cxx4
-rw-r--r--Source/CTest/cmCTestHandlerCommand.cxx6
-rw-r--r--Source/CTest/cmCTestMemCheckHandler.cxx12
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.cxx24
-rw-r--r--Source/CTest/cmCTestP4.cxx6
-rw-r--r--Source/CTest/cmCTestRunScriptCommand.cxx2
-rw-r--r--Source/CTest/cmCTestRunTest.cxx6
-rw-r--r--Source/CTest/cmCTestScriptHandler.cxx2
-rw-r--r--Source/CTest/cmCTestStartCommand.cxx2
-rw-r--r--Source/CTest/cmCTestSubmitCommand.cxx22
-rw-r--r--Source/CTest/cmCTestSubmitHandler.cxx18
-rw-r--r--Source/CTest/cmCTestTestCommand.cxx2
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx15
-rw-r--r--Source/CTest/cmCTestUpdateHandler.cxx2
-rw-r--r--Source/CTest/cmCTestUpdateHandler.h8
-rw-r--r--Source/CTest/cmCTestUploadCommand.cxx2
-rw-r--r--Source/CTest/cmCTestVC.cxx2
-rw-r--r--Source/CTest/cmParseCoberturaCoverage.cxx48
-rw-r--r--Source/CursesDialog/cmCursesStandardIncludes.h19
-rw-r--r--Source/cmAddCustomCommandCommand.cxx8
-rw-r--r--Source/cmAddCustomTargetCommand.cxx6
-rw-r--r--Source/cmAddDependenciesCommand.cxx6
-rw-r--r--Source/cmAddExecutableCommand.cxx14
-rw-r--r--Source/cmAddLibraryCommand.cxx46
-rw-r--r--Source/cmAddSubDirectoryCommand.cxx2
-rw-r--r--Source/cmAddTestCommand.cxx12
-rw-r--r--Source/cmBreakCommand.cxx4
-rw-r--r--Source/cmBuildCommand.cxx2
-rw-r--r--Source/cmCMakeMinimumRequired.cxx6
-rw-r--r--Source/cmCMakePolicyCommand.cxx8
-rw-r--r--Source/cmCPluginAPI.cxx2
-rw-r--r--Source/cmCTest.cxx22
-rw-r--r--Source/cmCTest.h2
-rw-r--r--Source/cmCommandArgumentParserHelper.cxx10
-rw-r--r--Source/cmCommandArgumentsHelper.cxx9
-rw-r--r--Source/cmComputeLinkDepends.cxx7
-rw-r--r--Source/cmComputeLinkInformation.cxx57
-rw-r--r--Source/cmComputeTargetDepends.cxx4
-rw-r--r--Source/cmConditionEvaluator.cxx16
-rw-r--r--Source/cmConfigure.cmake.h.in4
-rw-r--r--Source/cmConfigureFileCommand.cxx2
-rw-r--r--Source/cmCoreTryCompile.cxx14
-rw-r--r--Source/cmCustomCommand.cxx13
-rw-r--r--Source/cmDefinePropertyCommand.cxx4
-rw-r--r--Source/cmDepends.cxx8
-rw-r--r--Source/cmDependsC.cxx6
-rw-r--r--Source/cmDependsFortran.cxx10
-rw-r--r--Source/cmELF.cxx2
-rw-r--r--Source/cmExecuteProcessCommand.cxx2
-rw-r--r--Source/cmExportBuildFileGenerator.cxx6
-rw-r--r--Source/cmExportCommand.cxx26
-rw-r--r--Source/cmExportFileGenerator.cxx20
-rw-r--r--Source/cmExportInstallFileGenerator.cxx8
-rw-r--r--Source/cmExprParserHelper.cxx2
-rw-r--r--Source/cmExtraCodeBlocksGenerator.cxx22
-rw-r--r--Source/cmExtraCodeLiteGenerator.cxx4
-rw-r--r--Source/cmFileCommand.cxx98
-rw-r--r--Source/cmFindBase.cxx6
-rw-r--r--Source/cmFindPackageCommand.cxx33
-rw-r--r--Source/cmForEachCommand.cxx4
-rw-r--r--Source/cmFunctionCommand.cxx10
-rw-r--r--Source/cmGeneratedFileStream.h8
-rw-r--r--Source/cmGeneratorExpressionDAGChecker.cxx10
-rw-r--r--Source/cmGeneratorExpressionEvaluationFile.cxx6
-rw-r--r--Source/cmGeneratorExpressionEvaluator.cxx25
-rw-r--r--Source/cmGeneratorTarget.cxx16
-rw-r--r--Source/cmGetPropertyCommand.cxx12
-rw-r--r--Source/cmGetTargetPropertyCommand.cxx7
-rw-r--r--Source/cmGlobalGenerator.cxx24
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx17
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.cxx6
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx16
-rw-r--r--Source/cmGlobalVisualStudio11Generator.cxx4
-rw-r--r--Source/cmGlobalVisualStudio12Generator.cxx4
-rw-r--r--Source/cmGlobalVisualStudio71Generator.cxx5
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx5
-rw-r--r--Source/cmGlobalVisualStudioGenerator.cxx12
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx8
-rw-r--r--Source/cmGraphVizWriter.cxx4
-rw-r--r--Source/cmIncludeCommand.cxx2
-rw-r--r--Source/cmIncludeDirectoryCommand.cxx6
-rw-r--r--Source/cmInstallCommand.cxx97
-rw-r--r--Source/cmInstallExportGenerator.cxx2
-rw-r--r--Source/cmInstallFilesCommand.cxx7
-rw-r--r--Source/cmInstallProgramsCommand.cxx6
-rw-r--r--Source/cmInstallTargetGenerator.cxx8
-rw-r--r--Source/cmLinkDirectoriesCommand.cxx2
-rw-r--r--Source/cmListCommand.cxx38
-rw-r--r--Source/cmListFileCache.cxx16
-rw-r--r--Source/cmLoadCommandCommand.cxx2
-rw-r--r--Source/cmLocalGenerator.cxx42
-rw-r--r--Source/cmLocalNinjaGenerator.cxx4
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx19
-rw-r--r--Source/cmLocalVisualStudio6Generator.cxx4
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx4
-rw-r--r--Source/cmMacroCommand.cxx8
-rw-r--r--Source/cmMakefile.cxx115
-rw-r--r--Source/cmMakefileExecutableTargetGenerator.cxx4
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx6
-rw-r--r--Source/cmMakefileTargetGenerator.cxx44
-rw-r--r--Source/cmNinjaNormalTargetGenerator.cxx10
-rw-r--r--Source/cmNinjaTargetGenerator.cxx4
-rw-r--r--Source/cmOrderDirectories.cxx8
-rw-r--r--Source/cmPolicies.cxx16
-rw-r--r--Source/cmProjectCommand.cxx2
-rw-r--r--Source/cmQtAutoGenerators.cxx89
-rw-r--r--Source/cmRST.cxx9
-rw-r--r--Source/cmRemoveCommand.cxx5
-rw-r--r--Source/cmSeparateArgumentsCommand.cxx2
-rw-r--r--Source/cmSetPropertyCommand.cxx20
-rw-r--r--Source/cmSourceFile.cxx4
-rw-r--r--Source/cmSourceGroupCommand.cxx2
-rw-r--r--Source/cmStandardIncludes.cxx16
-rw-r--r--Source/cmStandardIncludes.h273
-rw-r--r--Source/cmStandardLexer.h6
-rw-r--r--Source/cmStringCommand.cxx14
-rw-r--r--Source/cmSystemTools.cxx55
-rw-r--r--Source/cmSystemTools.h15
-rw-r--r--Source/cmTarget.cxx138
-rw-r--r--Source/cmTarget.h2
-rw-r--r--Source/cmTargetCompileDefinitionsCommand.cxx4
-rw-r--r--Source/cmTargetCompileFeaturesCommand.cxx14
-rw-r--r--Source/cmTargetCompileOptionsCommand.cxx14
-rw-r--r--Source/cmTargetIncludeDirectoriesCommand.cxx14
-rw-r--r--Source/cmTargetLinkLibrariesCommand.cxx12
-rw-r--r--Source/cmTargetSourcesCommand.cxx14
-rw-r--r--Source/cmVariableWatchCommand.cxx6
-rw-r--r--Source/cmXMLParser.cxx2
-rw-r--r--Source/cmake.cxx35
-rw-r--r--Source/cmcmd.cxx34
-rw-r--r--Source/kwsys/Base64.c24
-rw-r--r--Source/kwsys/Base64.h.in18
-rw-r--r--Source/kwsys/EncodingC.c4
-rw-r--r--Source/kwsys/ProcessUNIX.c4
-rw-r--r--Source/kwsys/SystemTools.cxx11
-rw-r--r--Source/kwsys/Terminal.c1
-rw-r--r--Source/kwsys/kwsysPlatformTestsCXX.cxx4
-rw-r--r--Tests/CMakeLib/testXMLSafe.cxx2
-rw-r--r--Tests/CompileFeatures/CMakeLists.txt56
-rw-r--r--Tests/CompileFeatures/genex_test.cpp15
-rw-r--r--Tests/Complex/Executable/CMakeLists.txt14
-rw-r--r--Tests/Complex/Executable/complex.cxx22
-rw-r--r--Tests/ComplexOneConfig/Executable/CMakeLists.txt14
-rw-r--r--Tests/ComplexOneConfig/Executable/complex.cxx22
-rw-r--r--Tests/CustomCommand/CMakeLists.txt7
-rw-r--r--Tests/CustomCommand/config.h.in1
-rw-r--r--Tests/CustomCommand/foo.in3
-rw-r--r--Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt30
-rw-r--r--Tests/OutDir/OutDir.cmake10
-rw-r--r--Tests/QtAutogen/CMakeLists.txt6
-rw-r--r--Tests/QtAutogen/calwidget.cpp3
-rw-r--r--Tests/RunCMake/CMP0019/CMakeLists.txt2
-rw-r--r--Tests/RunCMake/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/CheckModules/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/CommandLine/RunCMakeTest.cmake2
-rw-r--r--Tests/RunCMake/CompileFeatures/NonValidTarget1.cmake4
-rw-r--r--Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake9
-rw-r--r--Tests/RunCMake/FPHSA/RunCMakeTest.cmake2
-rw-r--r--Tests/RunCMake/GeneratorExpression/ValidTarget-TARGET_PDB_FILE-check.cmake2
-rw-r--r--Tests/RunCMake/Languages/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/Languages/LINK_LANGUAGE-genex-stderr.txt2
-rw-r--r--Tests/RunCMake/Languages/link-libraries-TARGET_FILE-genex-stderr.txt2
-rw-r--r--Tests/RunCMake/README.rst2
-rw-r--r--Tests/RunCMake/RunCMake.cmake7
-rw-r--r--Tests/RunCMake/get_property/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/get_property/RunCMakeTest.cmake9
-rw-r--r--Tests/RunCMake/get_property/cache_properties-stderr.txt3
-rw-r--r--Tests/RunCMake/get_property/cache_properties.cmake15
-rw-r--r--Tests/RunCMake/get_property/directory_properties-stderr.txt6
-rw-r--r--Tests/RunCMake/get_property/directory_properties.cmake15
-rw-r--r--Tests/RunCMake/get_property/global_properties-stderr.txt6
-rw-r--r--Tests/RunCMake/get_property/global_properties.cmake16
-rw-r--r--Tests/RunCMake/get_property/install_properties-stderr.txt3
-rw-r--r--Tests/RunCMake/get_property/install_properties.cmake18
-rw-r--r--Tests/RunCMake/get_property/source_properties-stderr.txt6
-rw-r--r--Tests/RunCMake/get_property/source_properties.cmake15
-rw-r--r--Tests/RunCMake/get_property/target_properties-stderr.txt6
-rw-r--r--Tests/RunCMake/get_property/target_properties.cmake16
-rw-r--r--Tests/RunCMake/get_property/test_properties-stderr.txt6
-rw-r--r--Tests/RunCMake/get_property/test_properties.cmake17
-rwxr-xr-xbootstrap59
236 files changed, 1686 insertions, 1788 deletions
diff --git a/CompileFlags.cmake b/CompileFlags.cmake
index e7beb3f..3c053fa 100644
--- a/CompileFlags.cmake
+++ b/CompileFlags.cmake
@@ -16,9 +16,6 @@
if(CMAKE_GENERATOR MATCHES "Visual Studio 7")
set(CMAKE_SKIP_COMPATIBILITY_TESTS 1)
endif()
-if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
- set(CMAKE_SKIP_COMPATIBILITY_TESTS 1)
-endif()
if(WIN32 AND CMAKE_C_COMPILER_ID STREQUAL "Intel")
set(_INTEL_WINDOWS 1)
@@ -75,6 +72,14 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^parisc")
endif()
endif()
+if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++03")
+ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -library=stlport4")
+ endif()
+endif()
+
# use the ansi CXX compile flag for building cmake
if (CMAKE_ANSI_CXXFLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}")
@@ -83,5 +88,3 @@ endif ()
if (CMAKE_ANSI_CFLAGS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
endif ()
-
-include (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)
diff --git a/Help/command/find_package.rst b/Help/command/find_package.rst
index 190d05c..7f518a6 100644
--- a/Help/command/find_package.rst
+++ b/Help/command/find_package.rst
@@ -312,6 +312,8 @@ When loading a find module or package configuration file ``find_package``
defines variables to provide information about the call arguments (and
restores their original state before returning):
+``CMAKE_FIND_PACKAGE_NAME``
+ the ``<package>`` name which is searched for
``<package>_FIND_REQUIRED``
true if ``REQUIRED`` option was given
``<package>_FIND_QUIETLY``
diff --git a/Help/command/get_test_property.rst b/Help/command/get_test_property.rst
index 2623755..391a32e 100644
--- a/Help/command/get_test_property.rst
+++ b/Help/command/get_test_property.rst
@@ -7,9 +7,9 @@ Get a property of the test.
get_test_property(test property VAR)
-Get a property from the Test. The value of the property is stored in
-the variable VAR. If the property is not found, VAR will be set to
-"NOTFOUND". For a list of standard properties you can type cmake
---help-property-list
+Get a property from the test. The value of the property is stored in
+the variable VAR. If the test or property is not found, VAR will be
+set to "NOTFOUND". For a list of standard properties you can type cmake
+--help-property-list.
See also the more general get_property() command.
diff --git a/Help/command/if.rst b/Help/command/if.rst
index 79e5d21..d50b14c 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -42,11 +42,12 @@ Possible expressions are:
or a non-zero number. False if the constant is ``0``, ``OFF``,
``NO``, ``FALSE``, ``N``, ``IGNORE``, ``NOTFOUND``, the empty string,
or ends in the suffix ``-NOTFOUND``. Named boolean constants are
- case-insensitive. If the argument is not one of these constants, it
- is treated as a variable.
+ case-insensitive. If the argument is not one of these specific
+ constants, it is treated as a variable or string and the following
+ signature is used.
-``if(<variable>)``
- True if the variable is defined to a value that is not a false
+``if(<variable|string>)``
+ True if given a variable that is defined to a value that is not a false
constant. False otherwise. (Note macro arguments are not variables.)
``if(NOT <expression>)``
diff --git a/Help/command/set_tests_properties.rst b/Help/command/set_tests_properties.rst
index e29d690..afac847 100644
--- a/Help/command/set_tests_properties.rst
+++ b/Help/command/set_tests_properties.rst
@@ -7,7 +7,7 @@ Set a property of the tests.
set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
-Set a property for the tests. If the property is not found, CMake
+Set a property for the tests. If the test is not found, CMake
will report an error. Generator expressions will be expanded the same
as supported by the test's add_test call. The properties include:
diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst
index 682ce47..65b3a72 100644
--- a/Help/manual/cmake-developer.7.rst
+++ b/Help/manual/cmake-developer.7.rst
@@ -21,32 +21,6 @@ CMake is required to build with ancient C++ compilers and standard library
implementations. Some common C++ constructs may not be used in CMake in order
to build with such toolchains.
-std::set const iterators
-------------------------
-
-The ``find()`` member function of a ``const`` ``std::set`` instance may not be
-used in a comparison with the iterator returned by ``end()``:
-
-.. code-block:: c++
-
- const std::set<std::string>& someSet = getSet();
- if (someSet.find("needle") == someSet.end()) // Wrong
- {
- // ...
- }
-
-The return value of ``find()`` must be assigned to an intermediate
-``const_iterator`` for comparison:
-
-.. code-block:: c++
-
- const std::set<std::string>& someSet;
- const std::set<std::string>::const_iterator i = someSet.find("needle");
- if (i != propSet.end()) // Ok
- {
- // ...
- }
-
std::auto_ptr
-------------
@@ -54,53 +28,6 @@ Some implementations have a ``std::auto_ptr`` which can not be used as a
return value from a function. ``std::auto_ptr`` may not be used. Use
``cmsys::auto_ptr`` instead.
-std::vector::insert and std::set
---------------------------------
-
-Use of ``std::vector::insert`` with an iterator whose ``element_type`` requires
-conversion is not allowed:
-
-.. code-block:: c++
-
- std::set<const char*> theSet;
- std::vector<std::string> theVector;
- theVector.insert(theVector.end(), theSet.begin(), theSet.end()); // Wrong
-
-A loop must be used instead:
-
-.. code-block:: c++
-
- std::set<const char*> theSet;
- std::vector<std::string> theVector;
- for(std::set<const char*>::iterator li = theSet.begin();
- li != theSet.end(); ++li)
- {
- theVector.push_back(*li);
- }
-
-std::set::insert
-----------------
-
-Use of ``std::set::insert`` is not allowed with any source container:
-
-.. code-block:: c++
-
- std::set<cmTarget*> theSet;
- theSet.insert(targets.begin(), targets.end()); // Wrong
-
-A loop must be used instead:
-
-.. code-block:: c++
-
- ConstIterator it = targets.begin();
- const ConstIterator end = targets.end();
- for ( ; it != end; ++it)
- {
- theSet.insert(*it);
- }
-
-.. SunCC 5.9
-
Template Parameter Defaults
---------------------------
@@ -137,12 +64,6 @@ assigning the result of ``.size()`` on a container for example, the result
should be assigned to ``size_t`` not to ``std::size_t``, ``unsigned int`` or
similar types.
-Templates
----------
-
-Some template code is permitted, but with some limitations. Member templates
-may not be used, and template friends may not be used.
-
Adding Compile Features
=======================
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 4d54075..af2c348 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -36,6 +36,7 @@ Variables that Provide Information
/variable/CMAKE_EXECUTABLE_SUFFIX
/variable/CMAKE_EXTRA_GENERATOR
/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
+ /variable/CMAKE_FIND_PACKAGE_NAME
/variable/CMAKE_GENERATOR
/variable/CMAKE_GENERATOR_PLATFORM
/variable/CMAKE_GENERATOR_TOOLSET
diff --git a/Help/prop_tgt/CXX_STANDARD.rst b/Help/prop_tgt/CXX_STANDARD.rst
index b50cdf9..6329e34 100644
--- a/Help/prop_tgt/CXX_STANDARD.rst
+++ b/Help/prop_tgt/CXX_STANDARD.rst
@@ -7,7 +7,7 @@ This property specifies the C++ standard whose features are requested
to build this target. For some compilers, this results in adding a
flag such as ``-std=gnu++11`` to the compile line.
-Supported values are ``98`` and ``11``.
+Supported values are ``98``, ``11`` and ``14``.
If the value requested does not result in a compile flag being added for
the compiler in use, a previous standard flag will be added instead. This
diff --git a/Help/release/dev/FindLATEX-components.rst b/Help/release/dev/FindLATEX-components.rst
new file mode 100644
index 0000000..d161c1f
--- /dev/null
+++ b/Help/release/dev/FindLATEX-components.rst
@@ -0,0 +1,4 @@
+FindLATEX-components
+--------------------
+
+* The :module:`FindLATEX` module learned to support components.
diff --git a/Help/release/dev/WCDH-thread_local.rst b/Help/release/dev/WCDH-thread_local.rst
new file mode 100644
index 0000000..44516a7
--- /dev/null
+++ b/Help/release/dev/WCDH-thread_local.rst
@@ -0,0 +1,7 @@
+WriteCompilerDetectionHeader thread_local portability
+-----------------------------------------------------
+
+* The :module:`WriteCompilerDetectionHeader` module learned to
+ create a define for portability of the cxx_thread_local feature. The define
+ expands to either the C++11 ``thread_local`` keyword, or a
+ pre-standardization compiler-specific equivalent, as appropriate.
diff --git a/Help/release/dev/add-xz-support.rst b/Help/release/dev/add-xz-support.rst
new file mode 100644
index 0000000..9bdf528
--- /dev/null
+++ b/Help/release/dev/add-xz-support.rst
@@ -0,0 +1,5 @@
+add-xz-support
+--------------
+
+* The :manual:`cmake(1)` ``-E tar`` command now supports creating
+ ``.xz``-compressed archives with the ``J`` flag.
diff --git a/Help/release/dev/feature_record_msvc.rst b/Help/release/dev/feature_record_msvc.rst
new file mode 100644
index 0000000..63b642d
--- /dev/null
+++ b/Help/release/dev/feature_record_msvc.rst
@@ -0,0 +1,6 @@
+feature_record_msvc
+-------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by Visual Studio 2010 and above
+ (``MSVC``).
diff --git a/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst b/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
new file mode 100644
index 0000000..bd1a30f
--- /dev/null
+++ b/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
@@ -0,0 +1,6 @@
+CMAKE_FIND_PACKAGE_NAME
+-----------------------
+
+Defined by the :command:`find_package` command while loading
+a find module to record the caller-specified package name.
+See command documentation for details.
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 0ea9ce1..8edace1 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -270,11 +270,6 @@ Id flags: ${testflags}
else()
set(id_sdkroot "")
endif()
- if(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY)
- set(id_code_sign_identity "CODE_SIGN_IDENTITY = \"${CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY}\";")
- else()
- set(id_code_sign_identity "")
- endif()
if(NOT ${XCODE_VERSION} VERSION_LESS 3)
set(v 3)
set(ext xcodeproj)
diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake
index 9018450..db9089d 100644
--- a/Modules/Compiler/GNU-C.cmake
+++ b/Modules/Compiler/GNU-C.cmake
@@ -23,7 +23,7 @@ macro(cmake_record_c_compile_features)
record_compiler_features(C "${std_version}" ${list})
endmacro()
- if (UNIX AND NOT APPLE AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
+ if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
_get_gcc_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} CMAKE_C11_COMPILE_FEATURES)
if (_result EQUAL 0)
_get_gcc_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} CMAKE_C99_COMPILE_FEATURES)
diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
index a91c901..4a26963 100644
--- a/Modules/Compiler/GNU-CXX.cmake
+++ b/Modules/Compiler/GNU-CXX.cmake
@@ -39,10 +39,10 @@ macro(cmake_record_cxx_compile_features)
endmacro()
set(_result 0)
- if (UNIX AND NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
+ if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
_get_gcc_features(${CMAKE_CXX14_STANDARD_COMPILE_OPTION} CMAKE_CXX14_COMPILE_FEATURES)
endif()
- if (UNIX AND NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
+ if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
if (_result EQUAL 0)
_get_gcc_features(${CMAKE_CXX11_STANDARD_COMPILE_OPTION} CMAKE_CXX11_COMPILE_FEATURES)
endif()
diff --git a/Modules/Compiler/MSVC-C-FeatureTests.cmake b/Modules/Compiler/MSVC-C-FeatureTests.cmake
new file mode 100644
index 0000000..e449358
--- /dev/null
+++ b/Modules/Compiler/MSVC-C-FeatureTests.cmake
@@ -0,0 +1,23 @@
+
+# Reference: http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx
+# http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx
+# http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx
+# http://www.visualstudio.com/en-us/news/vs2015-preview-vs.aspx
+
+set(_cmake_oldestSupported "_MSC_VER >= 1300")
+
+set(MSVC_2010 "_MSC_VER >= 1600")
+set(_cmake_feature_test_c_static_assert "${MSVC_2010}")
+set(_cmake_feature_test_c_variadic_macros "${MSVC_2010}")
+
+set(MSVC_2003 "_MSC_VER >= 1300")
+set(_cmake_feature_test_c_function_prototypes "${MSVC_2003}")
+
+# Currently unsupported:
+# restrict requires the __restrict syntax in msvc
+# set(_cmake_feature_test_c_restrict)
+
+# Unset all the variables that we don't need exposed.
+# _cmake_oldestSupported is required by WriteCompilerDetectionHeader
+set(MSVC_2010)
+set(MSVC_2003) \ No newline at end of file
diff --git a/Modules/Compiler/MSVC-CXX-FeatureTests.cmake b/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
new file mode 100644
index 0000000..b238fde
--- /dev/null
+++ b/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
@@ -0,0 +1,97 @@
+
+# Reference: http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx
+# http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx
+# http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx
+# http://www.visualstudio.com/en-us/news/vs2015-preview-vs.aspx
+
+
+set(_cmake_oldestSupported "_MSC_VER >= 1600")
+
+set(MSVC_2015 "_MSC_VER >= 1900")
+set(_cmake_feature_test_cxx_alignas "${MSVC_2015}")
+set(_cmake_feature_test_cxx_alignof "${MSVC_2015}")
+set(_cmake_feature_test_cxx_binary_literals "${MSVC_2015}")
+set(_cmake_feature_test_cxx_decltype_auto "${MSVC_2015}")
+set(_cmake_feature_test_cxx_digit_separators "${MSVC_2015}")
+set(_cmake_feature_test_cxx_func_identifier "${MSVC_2015}")
+# http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx
+# Note 1. While previous version of VisualStudio said they supported this
+# they silently produced bad code, and are now marked as having partial
+# support
+set(_cmake_feature_test_cxx_generalized_initializers "${MSVC_2015}")
+set(_cmake_feature_test_cxx_generic_lambdas "${MSVC_2015}")
+set(_cmake_feature_test_cxx_inheriting_constructors "${MSVC_2015}")
+set(_cmake_feature_test_cxx_inline_namespaces "${MSVC_2015}")
+set(_cmake_feature_test_cxx_lambda_init_captures "${MSVC_2015}")
+set(_cmake_feature_test_cxx_noexcept "${MSVC_2015}")
+set(_cmake_feature_test_cxx_return_type_deduction "${MSVC_2015}")
+set(_cmake_feature_test_cxx_sizeof_member "${MSVC_2015}")
+set(_cmake_feature_test_cxx_thread_local "${MSVC_2015}")
+set(_cmake_feature_test_cxx_unicode_literals "${MSVC_2015}")
+set(_cmake_feature_test_cxx_unrestricted_unions "${MSVC_2015}")
+set(_cmake_feature_test_cxx_user_literals "${MSVC_2015}")
+
+set(MSVC_2013 "_MSC_VER >= 1800")
+set(_cmake_feature_test_cxx_alias_templates "${MSVC_2013}")
+set(_cmake_feature_test_cxx_default_function_template_args "${MSVC_2013}")
+set(_cmake_feature_test_cxx_defaulted_functions "${MSVC_2013}")
+set(_cmake_feature_test_cxx_delegating_constructors "${MSVC_2013}")
+set(_cmake_feature_test_cxx_deleted_functions "${MSVC_2013}")
+set(_cmake_feature_test_cxx_explicit_conversions "${MSVC_2013}")
+set(_cmake_feature_test_cxx_nonstatic_member_init "${MSVC_2013}")
+set(_cmake_feature_test_cxx_raw_string_literals "${MSVC_2013}")
+set(_cmake_feature_test_cxx_uniform_initialization "${MSVC_2013}")
+# Possibly broken:
+# http://thread.gmane.org/gmane.comp.lib.boost.devel/244986/focus=245333
+set(_cmake_feature_test_cxx_variadic_templates "${MSVC_2013}")
+# Microsoft now states they support contextual conversions
+# see footnote 6 at:
+# http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx
+set(_cmake_feature_test_cxx_contextual_conversions "${MSVC_2013}")
+
+set(MSVC_2012 "_MSC_VER >= 1700")
+set(_cmake_feature_test_cxx_decltype_incomplete_return_types "${MSVC_2012}")
+set(_cmake_feature_test_cxx_enum_forward_declarations "${MSVC_2012}")
+set(_cmake_feature_test_cxx_final "${MSVC_2012}")
+set(_cmake_feature_test_cxx_range_for "${MSVC_2012}")
+set(_cmake_feature_test_cxx_strong_enums "${MSVC_2012}")
+
+set(MSVC_2010 "_MSC_VER >= 1600")
+set(_cmake_feature_test_cxx_auto_function "${MSVC_2010}")
+set(_cmake_feature_test_cxx_auto_type "${MSVC_2010}")
+set(_cmake_feature_test_cxx_decltype "${MSVC_2010}")
+set(_cmake_feature_test_cxx_extended_friend_declarations "${MSVC_2010}")
+set(_cmake_feature_test_cxx_extern_templates "${MSVC_2010}")
+set(_cmake_feature_test_cxx_lambdas "${MSVC_2010}")
+set(_cmake_feature_test_cxx_local_type_template_args "${MSVC_2010}")
+set(_cmake_feature_test_cxx_long_long_type "${MSVC_2010}")
+set(_cmake_feature_test_cxx_nullptr "${MSVC_2010}")
+set(_cmake_feature_test_cxx_override "${MSVC_2010}")
+set(_cmake_feature_test_cxx_right_angle_brackets "${MSVC_2010}")
+set(_cmake_feature_test_cxx_rvalue_references "${MSVC_2010}")
+set(_cmake_feature_test_cxx_static_assert "${MSVC_2010}")
+set(_cmake_feature_test_cxx_template_template_parameters "${MSVC_2010}")
+set(_cmake_feature_test_cxx_trailing_return_types "${MSVC_2010}")
+set(_cmake_feature_test_cxx_variadic_macros "${MSVC_2010}")
+
+# Currently unsupported:
+# http://herbsutter.com/2013/11/18/visual-c-compiler-november-2013-ctp/
+# http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx
+
+# set(_cmake_feature_test_cxx_reference_qualified_functions )
+# set(_cmake_feature_test_cxx_constexpr )
+# set(_cmake_feature_test_cxx_attributes )
+# set(_cmake_feature_test_cxx_aggregate_default_initializers )
+# set(_cmake_feature_test_cxx_attribute_deprecated )
+# set(_cmake_feature_test_cxx_defaulted_move_initializers )
+# set(_cmake_feature_test_cxx_nonstatic_member_init )
+# set(_cmake_feature_test_cxx_relaxed_constexpr )
+# set(_cmake_feature_test_cxx_variable_templates )
+
+
+# Unset all the variables that we don't need exposed.
+# _cmake_oldestSupported is required by WriteCompilerDetectionHeader
+set(MSVC_2015)
+set(MSVC_2013)
+set(MSVC_2012)
+set(MSVC_2010)
diff --git a/Modules/CompilerId/Xcode-3.pbxproj.in b/Modules/CompilerId/Xcode-3.pbxproj.in
index aebae27..7f686a2 100644
--- a/Modules/CompilerId/Xcode-3.pbxproj.in
+++ b/Modules/CompilerId/Xcode-3.pbxproj.in
@@ -81,7 +81,7 @@
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
ONLY_ACTIVE_ARCH = YES;
- @id_code_sign_identity@
+ CODE_SIGNING_REQUIRED = NO;
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
SYMROOT = .;
@id_toolset@
diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake
index 29bb875..4f1f09a 100644
--- a/Modules/FindCUDA.cmake
+++ b/Modules/FindCUDA.cmake
@@ -613,7 +613,7 @@ endif()
set(CUDA_VERSION_STRING "${CUDA_VERSION}")
# Support for arm cross compilation with CUDA 5.5
-if(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf")
+if(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf")
set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf" CACHE PATH "Toolkit target location.")
else()
set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT_DIR}" CACHE PATH "Toolkit target location.")
@@ -621,7 +621,7 @@ endif()
mark_as_advanced(CUDA_TOOLKIT_TARGET_DIR)
# Target CPU architecture
-if(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
+if(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
set(_cuda_target_cpu_arch_initial "ARM")
else()
set(_cuda_target_cpu_arch_initial "")
@@ -1423,7 +1423,8 @@ function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options
if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
list(APPEND nvcc_flags -ccbin "\"${CUDA_HOST_COMPILER}\"")
endif()
- # Create a list of flags specified by CUDA_NVCC_FLAGS_${CONFIG}
+
+ # Create a list of flags specified by CUDA_NVCC_FLAGS_${CONFIG} and CMAKE_${CUDA_C_OR_CXX}_FLAGS*
set(config_specific_flags)
set(flags)
foreach(config ${CUDA_configuration_types})
@@ -1438,6 +1439,13 @@ function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options
list(APPEND flags $<$<CONFIG:${config}>:-Xcompiler> $<$<CONFIG:${config}>:${f}>)
endforeach()
endforeach()
+ # Add CMAKE_${CUDA_C_OR_CXX}_FLAGS
+ set(important_host_flags)
+ _cuda_get_important_host_flags(important_host_flags ${CMAKE_${CUDA_C_OR_CXX}_FLAGS})
+ foreach(f ${important_host_flags})
+ list(APPEND flags -Xcompiler ${f})
+ endforeach()
+
# Add our general CUDA_NVCC_FLAGS with the configuration specifig flags
set(nvcc_flags ${CUDA_NVCC_FLAGS} ${config_specific_flags} ${nvcc_flags})
diff --git a/Modules/FindIce.cmake b/Modules/FindIce.cmake
index 76cecc1..8493d80 100644
--- a/Modules/FindIce.cmake
+++ b/Modules/FindIce.cmake
@@ -282,21 +282,21 @@ function(_Ice_FIND)
PATH_SUFFIXES ${ice_library_suffixes}
DOC "Ice ${component} library")
mark_as_advanced("${component_cache}")
- if("${component_cache}")
+ if(${component_cache})
set("${component_found}" ON)
list(APPEND Ice_LIBRARY "${${component_cache}}")
endif()
mark_as_advanced("${component_found}")
set("${component_cache}" "${${component_cache}}" PARENT_SCOPE)
set("${component_found}" "${${component_found}}" PARENT_SCOPE)
- if("${component_found}")
- if ("Ice_FIND_REQUIRED_${component}")
+ if(${component_found})
+ if (Ice_FIND_REQUIRED_${component})
list(APPEND Ice_LIBS_FOUND "${component} (required)")
else()
list(APPEND Ice_LIBS_FOUND "${component} (optional)")
endif()
else()
- if ("Ice_FIND_REQUIRED_${component}")
+ if (Ice_FIND_REQUIRED_${component})
set(Ice_REQUIRED_LIBS_FOUND OFF)
list(APPEND Ice_LIBS_NOTFOUND "${component} (required)")
else()
@@ -356,7 +356,7 @@ if(Ice_FOUND)
set(_Ice_component_cache "Ice_${_Ice_component_upcase}_LIBRARY")
set(_Ice_component_lib "Ice_${_Ice_component_upcase}_LIBRARIES")
set(_Ice_component_found "${_Ice_component_upcase}_FOUND")
- if("${_Ice_component_found}")
+ if(${_Ice_component_found})
set("${_Ice_component_lib}" "${${_Ice_component_cache}}")
endif()
unset(_Ice_component_upcase)
diff --git a/Modules/FindLATEX.cmake b/Modules/FindLATEX.cmake
index a935f00..ae83733 100644
--- a/Modules/FindLATEX.cmake
+++ b/Modules/FindLATEX.cmake
@@ -6,20 +6,52 @@
#
# This module finds an installed Latex and determines the location
# of the compiler. Additionally the module looks for Latex-related
-# software like BibTeX. This code sets the following variables:
+# software like BibTeX.
#
-# ::
+# This module sets the following result variables::
#
+# LATEX_FOUND: whether found Latex and requested components
+# LATEX_<component>_FOUND: whether found <component>
# LATEX_COMPILER: path to the LaTeX compiler
# PDFLATEX_COMPILER: path to the PdfLaTeX compiler
+# XELATEX_COMPILER: path to the XeLaTeX compiler
+# LUALATEX_COMPILER: path to the LuaLaTeX compiler
# BIBTEX_COMPILER: path to the BibTeX compiler
+# BIBER_COMPILER: path to the Biber compiler
# MAKEINDEX_COMPILER: path to the MakeIndex compiler
+# XINDY_COMPILER: path to the xindy compiler
# DVIPS_CONVERTER: path to the DVIPS converter
+# DVIPDF_CONVERTER: path to the DVIPDF converter
# PS2PDF_CONVERTER: path to the PS2PDF converter
+# PDFTOPS_CONVERTER: path to the pdftops converter
# LATEX2HTML_CONVERTER: path to the LaTeX2Html converter
+# HTLATEX_COMPILER: path to the htlatex compiler
+#
+# Possible components are::
+#
+# PDFLATEX
+# XELATEX
+# LUALATEX
+# BIBTEX
+# BIBER
+# MAKEINDEX
+# XINDY
+# DVIPS
+# DVIPDF
+# PS2PDF
+# PDFTOPS
+# LATEX2HTML
+# HTLATEX
+#
+# Example Usages::
+#
+# find_package(LATEX)
+# find_package(LATEX COMPONENTS PDFLATEX)
+# find_package(LATEX COMPONENTS BIBTEX PS2PDF)
#=============================================================================
-# Copyright 2002-2014 Kitware, Inc.
+# Copyright 2002-2015 Kitware, Inc.
+# Copyright 2014-2015 Christoph Grüninger <foss@grueninger.de>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
@@ -32,9 +64,7 @@
# License text for the above reference.)
if (WIN32)
-
# Try to find the MikTex binary path (look for its package manager).
-
find_path(MIKTEX_BINARY_PATH mpm.exe
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MiK\\MiKTeX\\CurrentVersion\\MiKTeX;Install Root]/miktex/bin"
DOC
@@ -43,7 +73,6 @@ if (WIN32)
mark_as_advanced(MIKTEX_BINARY_PATH)
# Try to find the GhostScript binary path (look for gswin32).
-
get_filename_component(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\8.00;GS_DLL]" PATH
)
@@ -64,45 +93,124 @@ if (WIN32)
DOC "Path to the GhostScript library directory."
)
mark_as_advanced(GHOSTSCRIPT_LIBRARY_PATH)
-
endif ()
+# try to find Latex and the related programs
find_program(LATEX_COMPILER
NAMES latex
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+# find pdflatex
find_program(PDFLATEX_COMPILER
NAMES pdflatex
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (PDFLATEX_COMPILER)
+ set(LATEX_PDFLATEX_FOUND TRUE)
+else()
+ set(LATEX_PDFLATEX_FOUND FALSE)
+endif()
+
+# find xelatex
+find_program(XELATEX_COMPILER
+ NAMES xelatex
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (XELATEX_COMPILER)
+ set(LATEX_XELATEX_FOUND TRUE)
+else()
+ set(LATEX_XELATEX_FOUND FALSE)
+endif()
+
+# find lualatex
+find_program(LUALATEX_COMPILER
+ NAMES lualatex
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (LUALATEX_COMPILER)
+ set(LATEX_LUALATEX_FOUND TRUE)
+else()
+ set(LATEX_LUALATEX_FOUND FALSE)
+endif()
+# find bibtex
find_program(BIBTEX_COMPILER
NAMES bibtex
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (BIBTEX_COMPILER)
+ set(LATEX_BIBTEX_FOUND TRUE)
+else()
+ set(LATEX_BIBTEX_FOUND FALSE)
+endif()
+# find biber
+find_program(BIBER_COMPILER
+ NAMES biber
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (BIBER_COMPILER)
+ set(LATEX_BIBER_FOUND TRUE)
+else()
+ set(LATEX_BIBER_FOUND FALSE)
+endif()
+
+# find makeindex
find_program(MAKEINDEX_COMPILER
NAMES makeindex
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (MAKEINDEX_COMPILER)
+ set(LATEX_MAKEINDEX_FOUND TRUE)
+else()
+ set(LATEX_MAKEINDEX_FOUND FALSE)
+endif()
+
+# find xindy
+find_program(XINDY_COMPILER
+ NAMES xindy
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (XINDY_COMPILER)
+ set(LATEX_XINDY_FOUND TRUE)
+else()
+ set(LATEX_XINDY_FOUND FALSE)
+endif()
+# find dvips
find_program(DVIPS_CONVERTER
NAMES dvips
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (DVIPS_CONVERTER)
+ set(LATEX_DVIPS_FOUND TRUE)
+else()
+ set(LATEX_DVIPS_FOUND FALSE)
+endif()
+# find dvipdf
find_program(DVIPDF_CONVERTER
NAMES dvipdfm dvipdft dvipdf
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (DVIPDF_CONVERTER)
+ set(LATEX_DVIPDF_FOUND TRUE)
+else()
+ set(LATEX_DVIPDF_FOUND FALSE)
+endif()
+# find ps2pdf
if (WIN32)
find_program(PS2PDF_CONVERTER
NAMES ps2pdf14.bat ps2pdf14 ps2pdf
@@ -114,26 +222,69 @@ else ()
NAMES ps2pdf14 ps2pdf
)
endif ()
+if (PS2PDF_CONVERTER)
+ set(LATEX_PS2PDF_FOUND TRUE)
+else()
+ set(LATEX_PS2PDF_FOUND FALSE)
+endif()
+# find pdftops
+find_program(PDFTOPS_CONVERTER
+ NAMES pdftops
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (PDFTOPS_CONVERTER)
+ set(LATEX_PDFTOPS_FOUND TRUE)
+else()
+ set(LATEX_PDFTOPS_FOUND FALSE)
+endif()
+
+# find latex2html
find_program(LATEX2HTML_CONVERTER
NAMES latex2html
PATHS ${MIKTEX_BINARY_PATH}
/usr/bin
)
+if (LATEX2HTML_CONVERTER)
+ set(LATEX_LATEX2HTML_FOUND TRUE)
+else()
+ set(LATEX_LATEX2HTML_FOUND FALSE)
+endif()
+
+# find htlatex
+find_program(HTLATEX_COMPILER
+ NAMES htlatex
+ PATHS ${MIKTEX_BINARY_PATH}
+ /usr/bin
+)
+if (HTLATEX_COMPILER)
+ set(LATEX_HTLATEX_FOUND TRUE)
+else()
+ set(LATEX_HTLATEX_FOUND FALSE)
+endif()
mark_as_advanced(
LATEX_COMPILER
PDFLATEX_COMPILER
+ XELATEX_COMPILER
+ LUALATEX_COMPILER
BIBTEX_COMPILER
+ BIBER_COMPILER
MAKEINDEX_COMPILER
+ XINDY_COMPILER
DVIPS_CONVERTER
DVIPDF_CONVERTER
PS2PDF_CONVERTER
+ PDFTOPS_CONVERTER
LATEX2HTML_CONVERTER
+ HTLATEX_COMPILER
)
+# handle variables for found Latex and its components
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Latex
+find_package_handle_standard_args(LATEX
REQUIRED_VARS LATEX_COMPILER
+ HANDLE_COMPONENTS
)
diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
index 8e39a7f..9192054 100644
--- a/Modules/FindMPI.cmake
+++ b/Modules/FindMPI.cmake
@@ -174,7 +174,11 @@ set(_MPI_EXEC_NAMES mpiexec mpirun lamexec srun)
# Grab the path to MPI from the registry if we're on windows.
set(_MPI_PREFIX_PATH)
if(WIN32)
+ # MSMPI
+ list(APPEND _MPI_PREFIX_PATH "$ENV{MSMPI_BIN}")
list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPI;InstallRoot]/Bin")
+ list(APPEND _MPI_PREFIX_PATH "$ENV{MSMPI_INC}/..") # The SDK is installed separately from the runtime
+ # MPICH
list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]/..")
list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]")
list(APPEND _MPI_PREFIX_PATH "$ENV{ProgramW6432}/MPICH2/")
@@ -422,16 +426,18 @@ function (interrogate_mpi_compiler lang try_libs)
# Decide between 32-bit and 64-bit libraries for Microsoft's MPI
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
- set(MS_MPI_ARCH_DIR amd64)
+ set(MS_MPI_ARCH_DIR x64)
+ set(MS_MPI_ARCH_DIR2 amd64)
else()
- set(MS_MPI_ARCH_DIR i386)
+ set(MS_MPI_ARCH_DIR x86)
+ set(MS_MPI_ARCH_DIR2 i386)
endif()
set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
find_library(MPI_LIB
NAMES mpi mpich mpich2 msmpi
HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
- PATH_SUFFIXES lib lib/${MS_MPI_ARCH_DIR} Lib Lib/${MS_MPI_ARCH_DIR})
+ PATH_SUFFIXES lib lib/${MS_MPI_ARCH_DIR} Lib Lib/${MS_MPI_ARCH_DIR} Lib/${MS_MPI_ARCH_DIR2})
set(MPI_LIBRARIES_WORK ${MPI_LIB})
# Right now, we only know about the extra libs for C++.
diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake
index b2722a6..bfbe01f 100644
--- a/Modules/FindOpenSSL.cmake
+++ b/Modules/FindOpenSSL.cmake
@@ -283,9 +283,7 @@ function(from_hex HEX DEC)
endfunction()
if (OPENSSL_INCLUDE_DIR)
- if (_OPENSSL_VERSION)
- set(OPENSSL_VERSION "${_OPENSSL_VERSION}")
- elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
+ if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
diff --git a/Modules/FindSDL.cmake b/Modules/FindSDL.cmake
index 3905e54..45ca1d4 100644
--- a/Modules/FindSDL.cmake
+++ b/Modules/FindSDL.cmake
@@ -106,7 +106,7 @@ find_library(SDL_LIBRARY_TEMP
)
if(NOT SDL_BUILDING_LIBRARY)
- if(NOT ${SDL_INCLUDE_DIR} MATCHES ".framework")
+ if(NOT SDL_INCLUDE_DIR MATCHES ".framework")
# Non-OS X framework versions expect you to also dynamically link to
# SDLmain. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDLmain for compatibility even though they don't
diff --git a/Modules/Platform/Linux-XL-C.cmake b/Modules/Platform/Linux-XL-C.cmake
index f1c584c..d595e44 100644
--- a/Modules/Platform/Linux-XL-C.cmake
+++ b/Modules/Platform/Linux-XL-C.cmake
@@ -1 +1,2 @@
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj")
+set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-export-dynamic")
diff --git a/Modules/Platform/Linux-XL-CXX.cmake b/Modules/Platform/Linux-XL-CXX.cmake
index abd3fa4..5ceb255 100644
--- a/Modules/Platform/Linux-XL-CXX.cmake
+++ b/Modules/Platform/Linux-XL-CXX.cmake
@@ -1 +1,2 @@
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-qmkshrobj")
+set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,-export-dynamic")
diff --git a/Modules/Platform/Linux-XL-Fortran.cmake b/Modules/Platform/Linux-XL-Fortran.cmake
index cdd1f70..a878991 100644
--- a/Modules/Platform/Linux-XL-Fortran.cmake
+++ b/Modules/Platform/Linux-XL-Fortran.cmake
@@ -1 +1,2 @@
set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-qmkshrobj")
+set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-Wl,-export-dynamic")
diff --git a/Modules/Platform/Windows-MSVC-C.cmake b/Modules/Platform/Windows-MSVC-C.cmake
index cbe1586..c7792eb 100644
--- a/Modules/Platform/Windows-MSVC-C.cmake
+++ b/Modules/Platform/Windows-MSVC-C.cmake
@@ -3,3 +3,5 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 18.0)
set(_FS_C " /FS")
endif()
__windows_compiler_msvc(C)
+
+set(CMAKE_C_STANDARD_DEFAULT 90)
diff --git a/Modules/Platform/Windows-MSVC-CXX.cmake b/Modules/Platform/Windows-MSVC-CXX.cmake
index 0e85005..ad56f68 100644
--- a/Modules/Platform/Windows-MSVC-CXX.cmake
+++ b/Modules/Platform/Windows-MSVC-CXX.cmake
@@ -4,3 +4,12 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
set(_FS_CXX " /FS")
endif()
__windows_compiler_msvc(CXX)
+
+# No version of MSVC has full conformance to C++11. Therefore the
+# __cplusplus macro always evaluates to 98 even if the compilers come with
+# C++11/14/+ features enabled.
+set(CMAKE_CXX_STANDARD_DEFAULT 98)
+
+macro(cmake_record_cxx_compile_features)
+ record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
+endmacro()
diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index 36b9706..d4678c7 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -36,7 +36,7 @@
# PREFIX ClimbingStats
# OUTPUT_FILES_VAR support_files
# OUTPUT_DIR compilers
-# COMPILERS GNU Clang
+# COMPILERS GNU Clang MSVC
# FEATURES cxx_variadic_templates
# )
# install(FILES
@@ -100,7 +100,7 @@
# write_compiler_detection_header(
# FILE climbingstats_compiler_detection.h
# PREFIX ClimbingStats
-# COMPILERS GNU Clang AppleClang
+# COMPILERS GNU Clang AppleClang MSVC
# FEATURES cxx_variadic_templates
# )
#
@@ -194,6 +194,7 @@
# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT_MSG`` ``static_assert``
# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED`` ``[[deprecated]]``
# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED_MSG`` ``[[deprecated]]``
+# ``cxx_thread_local`` ``<PREFIX>_THREAD_LOCAL`` ``thread_local``
# ============================= ================================ =====================
#
# A use-case which arises with such deprecation macros is the deprecation
@@ -316,6 +317,7 @@ function(write_compiler_detection_header
GNU
Clang
AppleClang
+ MSVC
)
set(_hex_compilers ADSP Borland Embarcadero SunPro)
@@ -573,6 +575,20 @@ function(write_compiler_detection_header
# endif
\n")
endif()
+ if (feature STREQUAL cxx_thread_local)
+ set(def_value "${prefix_arg}_THREAD_LOCAL")
+ set(file_content "${file_content}
+# if ${def_name}
+# define ${def_value} thread_local
+# elif ${prefix_arg}_COMPILER_IS_GNU || ${prefix_arg}_COMPILER_IS_Clang || ${prefix_arg}_COMPILER_IS_AppleClang
+# define ${def_value} __thread
+# elif ${prefix_arg}_COMPILER_IS_MSVC
+# define ${def_value} __declspec(thread)
+# else
+// ${def_value} not defined for this configuration.
+# endif
+\n")
+ endif()
if (feature STREQUAL cxx_attribute_deprecated)
set(def_name ${prefix_arg}_${feature_PP})
set(def_value "${prefix_arg}_DEPRECATED")
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 97f57a3..96f4709 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -153,7 +153,6 @@ endif()
# Sources for CMakeLib
#
set(SRCS
- cmStandardIncludes.cxx
cmArchiveWrite.cxx
cmBootstrapCommands1.cxx
cmBootstrapCommands2.cxx
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index e2e79ed..d741a92 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 1)
-set(CMake_VERSION_PATCH 20150101)
+set(CMake_VERSION_PATCH 20150114)
#set(CMake_VERSION_RC 1)
diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx
index 0644ecb..4a99e50 100644
--- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx
+++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx
@@ -24,7 +24,7 @@
#endif
#define cmCPackLogger(logType, msg) \
do { \
- cmOStringStream cmCPackLog_msg; \
+ std::ostringstream cmCPackLog_msg; \
cmCPackLog_msg << msg; \
if(Generator) { \
Generator->Logger->Log(logType, __FILE__, __LINE__, \
diff --git a/Source/CPack/IFW/cmCPackIFWPackage.cxx b/Source/CPack/IFW/cmCPackIFWPackage.cxx
index 3c45639..38cef87 100644
--- a/Source/CPack/IFW/cmCPackIFWPackage.cxx
+++ b/Source/CPack/IFW/cmCPackIFWPackage.cxx
@@ -25,7 +25,7 @@
#endif
#define cmCPackLogger(logType, msg) \
do { \
- cmOStringStream cmCPackLog_msg; \
+ std::ostringstream cmCPackLog_msg; \
cmCPackLog_msg << msg; \
if(Generator) { \
Generator->Logger->Log(logType, __FILE__, __LINE__, \
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 7e00027..59c38e9 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -1150,12 +1150,7 @@ void cmCPackWIXGenerator::CollectExtensions(
std::vector<std::string> list;
cmSystemTools::ExpandListArgument(variableContent, list);
-
- for(std::vector<std::string>::const_iterator i = list.begin();
- i != list.end(); ++i)
- {
- extensions.insert(*i);
- }
+ extensions.insert(list.begin(), list.end());
}
void cmCPackWIXGenerator::AddCustomFlags(
diff --git a/Source/CPack/cmCPackBundleGenerator.cxx b/Source/CPack/cmCPackBundleGenerator.cxx
index fbd1d21..e751568 100644
--- a/Source/CPack/cmCPackBundleGenerator.cxx
+++ b/Source/CPack/cmCPackBundleGenerator.cxx
@@ -112,24 +112,24 @@ int cmCPackBundleGenerator::ConstructBundle()
// The staging directory contains everything that will end-up inside the
// final disk image ...
- cmOStringStream staging;
+ std::ostringstream staging;
staging << toplevel;
- cmOStringStream contents;
+ std::ostringstream contents;
contents << staging.str() << "/" << cpack_bundle_name
<< ".app/" << "Contents";
- cmOStringStream application;
+ std::ostringstream application;
application << contents.str() << "/" << "MacOS";
- cmOStringStream resources;
+ std::ostringstream resources;
resources << contents.str() << "/" << "Resources";
// Install a required, user-provided bundle metadata file ...
- cmOStringStream plist_source;
+ std::ostringstream plist_source;
plist_source << cpack_bundle_plist;
- cmOStringStream plist_target;
+ std::ostringstream plist_target;
plist_target << contents.str() << "/" << "Info.plist";
if(!this->CopyFile(plist_source, plist_target))
@@ -142,10 +142,10 @@ int cmCPackBundleGenerator::ConstructBundle()
}
// Install a user-provided bundle icon ...
- cmOStringStream icon_source;
+ std::ostringstream icon_source;
icon_source << cpack_bundle_icon;
- cmOStringStream icon_target;
+ std::ostringstream icon_target;
icon_target << resources.str() << "/" << cpack_bundle_name << ".icns";
if(!this->CopyFile(icon_source, icon_target))
@@ -161,10 +161,10 @@ int cmCPackBundleGenerator::ConstructBundle()
// executable or a script) ...
if(!cpack_bundle_startup_command.empty())
{
- cmOStringStream command_source;
+ std::ostringstream command_source;
command_source << cpack_bundle_startup_command;
- cmOStringStream command_target;
+ std::ostringstream command_target;
command_target << application.str() << "/" << cpack_bundle_name;
if(!this->CopyFile(command_source, command_target))
@@ -231,7 +231,7 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir)
for(std::vector<std::string>::iterator it = relFiles.begin();
it != relFiles.end(); ++it)
{
- cmOStringStream temp_sign_file_cmd;
+ std::ostringstream temp_sign_file_cmd;
temp_sign_file_cmd << this->GetOption("CPACK_COMMAND_CODESIGN");
temp_sign_file_cmd << " --deep -f -s \"" << cpack_apple_cert_app;
temp_sign_file_cmd << "\" -i ";
@@ -251,7 +251,7 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir)
}
// sign main binary
- cmOStringStream temp_sign_binary_cmd;
+ std::ostringstream temp_sign_binary_cmd;
temp_sign_binary_cmd << this->GetOption("CPACK_COMMAND_CODESIGN");
temp_sign_binary_cmd << " --deep -f -s \"" << cpack_apple_cert_app;
temp_sign_binary_cmd << "\" \"" << bundle_path << "\"";
@@ -266,7 +266,7 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir)
}
// sign app bundle
- cmOStringStream temp_codesign_cmd;
+ std::ostringstream temp_codesign_cmd;
temp_codesign_cmd << this->GetOption("CPACK_COMMAND_CODESIGN");
temp_codesign_cmd << " --deep -f -s \"" << cpack_apple_cert_app << "\"";
if(this->GetOption("CPACK_BUNDLE_APPLE_ENTITLEMENTS"))
diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx
index 9f0a77e..5da9234 100644
--- a/Source/CPack/cmCPackDragNDropGenerator.cxx
+++ b/Source/CPack/cmCPackDragNDropGenerator.cxx
@@ -169,8 +169,8 @@ int cmCPackDragNDropGenerator::PackageFiles()
}
//----------------------------------------------------------------------
-bool cmCPackDragNDropGenerator::CopyFile(cmOStringStream& source,
- cmOStringStream& target)
+bool cmCPackDragNDropGenerator::CopyFile(std::ostringstream& source,
+ std::ostringstream& target)
{
if(!cmSystemTools::CopyFileIfDifferent(
source.str().c_str(),
@@ -190,7 +190,7 @@ bool cmCPackDragNDropGenerator::CopyFile(cmOStringStream& source,
}
//----------------------------------------------------------------------
-bool cmCPackDragNDropGenerator::RunCommand(cmOStringStream& command,
+bool cmCPackDragNDropGenerator::RunCommand(std::ostringstream& command,
std::string* output)
{
int exit_code = 1;
@@ -255,12 +255,12 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// The staging directory contains everything that will end-up inside the
// final disk image ...
- cmOStringStream staging;
+ std::ostringstream staging;
staging << src_dir;
// Add a symlink to /Applications so users can drag-and-drop the bundle
// into it
- cmOStringStream application_link;
+ std::ostringstream application_link;
application_link << staging.str() << "/Applications";
cmSystemTools::CreateSymlink("/Applications",
application_link.str().c_str());
@@ -268,10 +268,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// Optionally add a custom volume icon ...
if(!cpack_package_icon.empty())
{
- cmOStringStream package_icon_source;
+ std::ostringstream package_icon_source;
package_icon_source << cpack_package_icon;
- cmOStringStream package_icon_destination;
+ std::ostringstream package_icon_destination;
package_icon_destination << staging.str() << "/.VolumeIcon.icns";
if(!this->CopyFile(package_icon_source, package_icon_destination))
@@ -289,10 +289,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// (e.g. for setting background/layout) ...
if(!cpack_dmg_ds_store.empty())
{
- cmOStringStream package_settings_source;
+ std::ostringstream package_settings_source;
package_settings_source << cpack_dmg_ds_store;
- cmOStringStream package_settings_destination;
+ std::ostringstream package_settings_destination;
package_settings_destination << staging.str() << "/.DS_Store";
if(!this->CopyFile(package_settings_source, package_settings_destination))
@@ -309,10 +309,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// Optionally add a custom background image ...
if(!cpack_dmg_background_image.empty())
{
- cmOStringStream package_background_source;
+ std::ostringstream package_background_source;
package_background_source << cpack_dmg_background_image;
- cmOStringStream package_background_destination;
+ std::ostringstream package_background_destination;
package_background_destination << staging.str() << "/background.png";
if(!this->CopyFile(package_background_source,
@@ -326,7 +326,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
return 0;
}
- cmOStringStream temp_background_hiding_command;
+ std::ostringstream temp_background_hiding_command;
temp_background_hiding_command << this->GetOption("CPACK_COMMAND_SETFILE");
temp_background_hiding_command << " -a V \"";
temp_background_hiding_command << package_background_destination.str();
@@ -346,7 +346,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
temp_image += "/temp.dmg";
- cmOStringStream temp_image_command;
+ std::ostringstream temp_image_command;
temp_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
temp_image_command << " create";
temp_image_command << " -ov";
@@ -368,9 +368,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// Optionally set the custom icon flag for the image ...
if(!cpack_package_icon.empty())
{
- cmOStringStream temp_mount;
+ std::ostringstream temp_mount;
- cmOStringStream attach_command;
+ std::ostringstream attach_command;
attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
attach_command << " attach";
attach_command << " \"" << temp_image << "\"";
@@ -389,7 +389,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
mountpoint_regex.find(attach_output.c_str());
temp_mount << mountpoint_regex.match(1);
- cmOStringStream setfile_command;
+ std::ostringstream setfile_command;
setfile_command << this->GetOption("CPACK_COMMAND_SETFILE");
setfile_command << " -a C";
setfile_command << " \"" << temp_mount.str() << "\"";
@@ -403,7 +403,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
return 0;
}
- cmOStringStream detach_command;
+ std::ostringstream detach_command;
detach_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
detach_command << " detach";
detach_command << " \"" << temp_mount.str() << "\"";
@@ -471,7 +471,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
std::string temp_udco = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
temp_udco += "/temp-udco.dmg";
- cmOStringStream udco_image_command;
+ std::ostringstream udco_image_command;
udco_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
udco_image_command << " convert \"" << temp_image << "\"";
udco_image_command << " -format UDCO";
@@ -488,7 +488,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
}
// unflatten dmg
- cmOStringStream unflatten_command;
+ std::ostringstream unflatten_command;
unflatten_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
unflatten_command << " unflatten ";
unflatten_command << "\"" << temp_udco << "\"";
@@ -503,7 +503,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
}
// Rez the SLA
- cmOStringStream embed_sla_command;
+ std::ostringstream embed_sla_command;
embed_sla_command << this->GetOption("CPACK_COMMAND_REZ");
const char* sysroot = this->GetOption("CPACK_OSX_SYSROOT");
if(sysroot && sysroot[0] != '\0')
@@ -524,7 +524,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
}
// flatten dmg
- cmOStringStream flatten_command;
+ std::ostringstream flatten_command;
flatten_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
flatten_command << " flatten ";
flatten_command << "\"" << temp_udco << "\"";
@@ -543,7 +543,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
// Create the final compressed read-only disk image ...
- cmOStringStream final_image_command;
+ std::ostringstream final_image_command;
final_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL");
final_image_command << " convert \"" << temp_image << "\"";
final_image_command << " -format ";
diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h
index 808c618..1c84d49 100644
--- a/Source/CPack/cmCPackDragNDropGenerator.h
+++ b/Source/CPack/cmCPackDragNDropGenerator.h
@@ -33,8 +33,8 @@ protected:
bool SupportsComponentInstallation() const;
- bool CopyFile(cmOStringStream& source, cmOStringStream& target);
- bool RunCommand(cmOStringStream& command, std::string* output = 0);
+ bool CopyFile(std::ostringstream& source, std::ostringstream& target);
+ bool RunCommand(std::ostringstream& command, std::string* output = 0);
std::string
GetComponentInstallDirNameSuffix(const std::string& componentName);
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index e78f161..9cd53ea 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -160,7 +160,7 @@ int cmCPackGenerator::PrepareNames()
"Cannot open description file name: " << descFileName << std::endl);
return 0;
}
- cmOStringStream ostr;
+ std::ostringstream ostr;
std::string line;
cmCPackLogger(cmCPackLog::LOG_VERBOSE,
@@ -628,6 +628,14 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
cmGlobalGenerator* globalGenerator
= this->MakefileMap->GetCMakeInstance()->CreateGlobalGenerator(
cmakeGenerator);
+ if ( !globalGenerator )
+ {
+ cmCPackLogger(cmCPackLog::LOG_ERROR,
+ "Specified package generator not found. "
+ "CPACK_CMAKE_GENERATOR value is invalid."
+ << std::endl);
+ return 0;
+ }
// set the global flag for unix style paths on cmSystemTools as
// soon as the generator is set. This allows gmake to be used
// on windows.
diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h
index ed89b53..907bb1e 100644
--- a/Source/CPack/cmCPackGenerator.h
+++ b/Source/CPack/cmCPackGenerator.h
@@ -29,7 +29,7 @@
#define cmCPackLogger(logType, msg) \
do { \
- cmOStringStream cmCPackLog_msg; \
+ std::ostringstream cmCPackLog_msg; \
cmCPackLog_msg << msg; \
this->Logger->Log(logType, __FILE__, __LINE__,\
cmCPackLog_msg.str().c_str());\
diff --git a/Source/CPack/cmCPackLog.h b/Source/CPack/cmCPackLog.h
index 812f1de..7a7ff58 100644
--- a/Source/CPack/cmCPackLog.h
+++ b/Source/CPack/cmCPackLog.h
@@ -17,7 +17,7 @@
#define cmCPack_Log(ctSelf, logType, msg) \
do { \
- cmOStringStream cmCPackLog_msg; \
+ std::ostringstream cmCPackLog_msg; \
cmCPackLog_msg << msg; \
(ctSelf)->Log(logType, __FILE__, __LINE__, cmCPackLog_msg.str().c_str());\
} while ( 0 )
diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx
index b506b06..8f63ca2 100644
--- a/Source/CPack/cmCPackNSISGenerator.cxx
+++ b/Source/CPack/cmCPackNSISGenerator.cxx
@@ -71,7 +71,7 @@ int cmCPackNSISGenerator::PackageFiles()
tmpFile += "/NSISOutput.log";
std::string nsisInstallOptions = nsisFileName + "/NSIS.InstallOptions.ini";
nsisFileName += "/project.nsi";
- cmOStringStream str;
+ std::ostringstream str;
std::vector<std::string>::const_iterator it;
for ( it = files.begin(); it != files.end(); ++ it )
{
@@ -91,7 +91,7 @@ int cmCPackNSISGenerator::PackageFiles()
std::vector<std::string> dirs;
this->GetListOfSubdirectories(toplevel.c_str(), dirs);
std::vector<std::string>::const_iterator sit;
- cmOStringStream dstr;
+ std::ostringstream dstr;
for ( sit = dirs.begin(); sit != dirs.end(); ++ sit )
{
std::string componentName;
@@ -190,7 +190,7 @@ int cmCPackNSISGenerator::PackageFiles()
std::string groupDescriptions;
std::string installTypesCode;
std::string defines;
- cmOStringStream macrosOut;
+ std::ostringstream macrosOut;
bool anyDownloadedComponents = false;
// Create installation types. The order is significant, so we first fill
@@ -503,8 +503,8 @@ int cmCPackNSISGenerator::InitializeInternal()
<< "not set" << std::endl);
}
- cmOStringStream str;
- cmOStringStream deleteStr;
+ std::ostringstream str;
+ std::ostringstream deleteStr;
if ( cpackPackageExecutables )
{
@@ -565,8 +565,8 @@ int cmCPackNSISGenerator::InitializeInternal()
}
//----------------------------------------------------------------------
-void cmCPackNSISGenerator::CreateMenuLinks( cmOStringStream& str,
- cmOStringStream& deleteStr)
+void cmCPackNSISGenerator::CreateMenuLinks( std::ostringstream& str,
+ std::ostringstream& deleteStr)
{
const char* cpackMenuLinks
= this->GetOption("CPACK_NSIS_MENU_LINKS");
@@ -694,7 +694,7 @@ bool cmCPackNSISGenerator::SupportsComponentInstallation() const
std::string
cmCPackNSISGenerator::
CreateComponentDescription(cmCPackComponent *component,
- cmOStringStream& macrosOut)
+ std::ostringstream& macrosOut)
{
// Basic description of the component
std::string componentCode = "Section ";
@@ -714,7 +714,7 @@ CreateComponentDescription(cmCPackComponent *component,
}
else if (!component->InstallationTypes.empty())
{
- cmOStringStream out;
+ std::ostringstream out;
std::vector<cmCPackInstallationType *>::iterator installTypeIter;
for (installTypeIter = component->InstallationTypes.begin();
installTypeIter != component->InstallationTypes.end();
@@ -734,7 +734,7 @@ CreateComponentDescription(cmCPackComponent *component,
// Compute the name of the archive.
std::string packagesDir = this->GetOption("CPACK_TEMPORARY_DIRECTORY");
packagesDir += ".dummy";
- cmOStringStream out;
+ std::ostringstream out;
out << cmSystemTools::GetFilenameWithoutLastExtension(packagesDir)
<< "-" << component->Name << ".zip";
component->ArchiveFile = out.str();
@@ -859,7 +859,7 @@ CreateComponentDescription(cmCPackComponent *component,
{
totalSizeInKbytes = 1;
}
- cmOStringStream out;
+ std::ostringstream out;
out << " AddSize " << totalSizeInKbytes << "\n"
<< " Push \"" << component->ArchiveFile << "\"\n"
<< " Call DownloadFile\n"
@@ -935,7 +935,7 @@ std::string cmCPackNSISGenerator::CreateSelectionDependenciesDescription
}
visited.insert(component);
- cmOStringStream out;
+ std::ostringstream out;
std::vector<cmCPackComponent *>::iterator dependIt;
for (dependIt = component->Dependencies.begin();
dependIt != component->Dependencies.end();
@@ -967,7 +967,7 @@ std::string cmCPackNSISGenerator::CreateDeselectionDependenciesDescription
}
visited.insert(component);
- cmOStringStream out;
+ std::ostringstream out;
std::vector<cmCPackComponent *>::iterator dependIt;
for (dependIt = component->ReverseDependencies.begin();
dependIt != component->ReverseDependencies.end();
@@ -992,7 +992,7 @@ std::string cmCPackNSISGenerator::CreateDeselectionDependenciesDescription
std::string
cmCPackNSISGenerator::
CreateComponentGroupDescription(cmCPackComponentGroup *group,
- cmOStringStream& macrosOut)
+ std::ostringstream& macrosOut)
{
if (group->Components.empty() && group->Subgroups.empty())
{
diff --git a/Source/CPack/cmCPackNSISGenerator.h b/Source/CPack/cmCPackNSISGenerator.h
index e46fbda..c7b2ce1 100644
--- a/Source/CPack/cmCPackNSISGenerator.h
+++ b/Source/CPack/cmCPackNSISGenerator.h
@@ -38,8 +38,8 @@ public:
protected:
virtual int InitializeInternal();
- void CreateMenuLinks( cmOStringStream& str,
- cmOStringStream& deleteStr);
+ void CreateMenuLinks( std::ostringstream& str,
+ std::ostringstream& deleteStr);
int PackageFiles();
virtual const char* GetOutputExtension() { return ".exe"; }
virtual const char* GetOutputPostfix() { return "win32"; }
@@ -56,7 +56,7 @@ protected:
/// macrosOut.
std::string
CreateComponentDescription(cmCPackComponent *component,
- cmOStringStream& macrosOut);
+ std::ostringstream& macrosOut);
/// Produce NSIS code that selects all of the components that this component
/// depends on, recursively.
@@ -75,7 +75,7 @@ protected:
/// added macros will be emitted via macrosOut.
std::string
CreateComponentGroupDescription(cmCPackComponentGroup *group,
- cmOStringStream& macrosOut);
+ std::ostringstream& macrosOut);
/// Translations any newlines found in the string into \\r\\n, so that the
/// resulting string can be used within NSIS.
diff --git a/Source/CPack/cmCPackOSXX11Generator.cxx b/Source/CPack/cmCPackOSXX11Generator.cxx
index 28c7f1d..313e08b 100644
--- a/Source/CPack/cmCPackOSXX11Generator.cxx
+++ b/Source/CPack/cmCPackOSXX11Generator.cxx
@@ -45,8 +45,8 @@ int cmCPackOSXX11Generator::PackageFiles()
{
cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackPackageExecutables: "
<< cpackPackageExecutables << "." << std::endl);
- cmOStringStream str;
- cmOStringStream deleteStr;
+ std::ostringstream str;
+ std::ostringstream deleteStr;
std::vector<std::string> cpackPackageExecutablesVector;
cmSystemTools::ExpandListArgument(cpackPackageExecutables,
cpackPackageExecutablesVector);
@@ -165,7 +165,7 @@ int cmCPackOSXX11Generator::PackageFiles()
std::string output;
std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
tmpFile += "/hdiutilOutput.log";
- cmOStringStream dmgCmd;
+ std::ostringstream dmgCmd;
dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM_DISK_IMAGE")
<< "\" create -ov -format UDZO -srcfolder \""
<< diskImageDirectory.c_str()
diff --git a/Source/CPack/cmCPackPackageMakerGenerator.cxx b/Source/CPack/cmCPackPackageMakerGenerator.cxx
index e799d06..8a22131 100644
--- a/Source/CPack/cmCPackPackageMakerGenerator.cxx
+++ b/Source/CPack/cmCPackPackageMakerGenerator.cxx
@@ -325,7 +325,7 @@ int cmCPackPackageMakerGenerator::PackageFiles()
if (this->Components.empty())
{
// Use PackageMaker to build the package.
- cmOStringStream pkgCmd;
+ std::ostringstream pkgCmd;
pkgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM")
<< "\" -build -p \"" << packageDirFileName << "\"";
if (this->Components.empty())
@@ -359,7 +359,7 @@ int cmCPackPackageMakerGenerator::PackageFiles()
std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
tmpFile += "/hdiutilOutput.log";
- cmOStringStream dmgCmd;
+ std::ostringstream dmgCmd;
dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM_DISK_IMAGE")
<< "\" create -ov -format UDZO -srcfolder \"" << packageDirFileName
<< "\" \"" << packageFileNames[0] << "\"";
@@ -687,7 +687,7 @@ cmCPackPackageMakerGenerator::GetPackageName(const cmCPackComponent& component)
{
std::string packagesDir = this->GetOption("CPACK_TEMPORARY_DIRECTORY");
packagesDir += ".dummy";
- cmOStringStream out;
+ std::ostringstream out;
out << cmSystemTools::GetFilenameWithoutLastExtension(packagesDir)
<< "-" << component.Name << ".pkg";
return out.str();
@@ -710,7 +710,7 @@ GenerateComponentPackage(const char *packageFile,
packageFile << std::endl);
// The command that will be used to run PackageMaker
- cmOStringStream pkgCmd;
+ std::ostringstream pkgCmd;
if (this->PackageCompatibilityVersion < 10.5 ||
this->PackageMakerVersion < 3.0)
@@ -800,7 +800,7 @@ WriteDistributionFile(const char* metapackageFile)
// Create the choice outline, which provides a tree-based view of
// the components in their groups.
- cmOStringStream choiceOut;
+ std::ostringstream choiceOut;
choiceOut << "<choices-outline>" << std::endl;
// Emit the outline for the groups
@@ -862,7 +862,8 @@ WriteDistributionFile(const char* metapackageFile)
//----------------------------------------------------------------------
void
cmCPackPackageMakerGenerator::
-CreateChoiceOutline(const cmCPackComponentGroup& group, cmOStringStream& out)
+CreateChoiceOutline(const cmCPackComponentGroup& group,
+ std::ostringstream& out)
{
out << "<line choice=\"" << group.Name << "Choice\">" << std::endl;
std::vector<cmCPackComponentGroup*>::const_iterator groupIt;
@@ -885,7 +886,7 @@ CreateChoiceOutline(const cmCPackComponentGroup& group, cmOStringStream& out)
//----------------------------------------------------------------------
void
cmCPackPackageMakerGenerator::CreateChoice(const cmCPackComponentGroup& group,
- cmOStringStream& out)
+ std::ostringstream& out)
{
out << "<choice id=\"" << group.Name << "Choice\" "
<< "title=\"" << group.DisplayName << "\" "
@@ -903,7 +904,7 @@ cmCPackPackageMakerGenerator::CreateChoice(const cmCPackComponentGroup& group,
//----------------------------------------------------------------------
void
cmCPackPackageMakerGenerator::CreateChoice(const cmCPackComponent& component,
- cmOStringStream& out)
+ std::ostringstream& out)
{
std::string packageId = "com.";
packageId += this->GetOption("CPACK_PACKAGE_VENDOR");
@@ -989,7 +990,7 @@ void
cmCPackPackageMakerGenerator::
AddDependencyAttributes(const cmCPackComponent& component,
std::set<const cmCPackComponent *>& visited,
- cmOStringStream& out)
+ std::ostringstream& out)
{
if (visited.find(&component) != visited.end())
{
@@ -1013,7 +1014,7 @@ void
cmCPackPackageMakerGenerator::
AddReverseDependencyAttributes(const cmCPackComponent& component,
std::set<const cmCPackComponent *>& visited,
- cmOStringStream& out)
+ std::ostringstream& out)
{
if (visited.find(&component) != visited.end())
{
diff --git a/Source/CPack/cmCPackPackageMakerGenerator.h b/Source/CPack/cmCPackPackageMakerGenerator.h
index e350a60..1b468d7 100644
--- a/Source/CPack/cmCPackPackageMakerGenerator.h
+++ b/Source/CPack/cmCPackPackageMakerGenerator.h
@@ -84,30 +84,30 @@ protected:
// dependency attributes for inter-component dependencies.
void AddDependencyAttributes(const cmCPackComponent& component,
std::set<const cmCPackComponent *>& visited,
- cmOStringStream& out);
+ std::ostringstream& out);
// Subroutine of WriteDistributionFile that writes out the
// reverse dependency attributes for inter-component dependencies.
void
AddReverseDependencyAttributes(const cmCPackComponent& component,
std::set<const cmCPackComponent *>& visited,
- cmOStringStream& out);
+ std::ostringstream& out);
// Generates XML that encodes the hierarchy of component groups and
// their components in a form that can be used by distribution
// metapackages.
void CreateChoiceOutline(const cmCPackComponentGroup& group,
- cmOStringStream& out);
+ std::ostringstream& out);
/// Create the "choice" XML element to describe a component group
/// for the installer GUI.
void CreateChoice(const cmCPackComponentGroup& group,
- cmOStringStream& out);
+ std::ostringstream& out);
/// Create the "choice" XML element to describe a component for the
/// installer GUI.
void CreateChoice(const cmCPackComponent& component,
- cmOStringStream& out);
+ std::ostringstream& out);
// Escape the given string to make it usable as an XML attribute
// value.
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx
index 26bf607..b1b122d 100644
--- a/Source/CPack/cpack.cxx
+++ b/Source/CPack/cpack.cxx
@@ -426,7 +426,7 @@ int main (int argc, char const* const* argv)
= mf->GetDefinition("CPACK_PACKAGE_VERSION_MINOR");
const char* projVersionPatch
= mf->GetDefinition("CPACK_PACKAGE_VERSION_PATCH");
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << projVersionMajor << "." << projVersionMinor << "."
<< projVersionPatch;
mf->AddDefinition("CPACK_PACKAGE_VERSION",
diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx
index a101e39..b1fb02d 100644
--- a/Source/CTest/cmCTestBuildAndTestHandler.cxx
+++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx
@@ -55,7 +55,7 @@ int cmCTestBuildAndTestHandler::ProcessHandler()
//----------------------------------------------------------------------
int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring,
- cmOStringStream &out, std::string &cmakeOutString, std::string &cwd,
+ std::ostringstream &out, std::string &cmakeOutString, std::string &cwd,
cmake *cm)
{
unsigned int k;
@@ -209,7 +209,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
std::string cmakeOutString;
cmCTestBuildAndTestCaptureRAII captureRAII(cm, cmakeOutString);
static_cast<void>(captureRAII);
- cmOStringStream out;
+ std::ostringstream out;
if ( this->CTest->GetConfigType().size() == 0 &&
this->ConfigSample.size())
diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h
index 5a7b916..a75c631 100644
--- a/Source/CTest/cmCTestBuildAndTestHandler.h
+++ b/Source/CTest/cmCTestBuildAndTestHandler.h
@@ -50,7 +50,7 @@ public:
protected:
///! Run CMake and build a test and then run it as a single test.
int RunCMakeAndTest(std::string* output);
- int RunCMake(std::string* outstring, cmOStringStream &out,
+ int RunCMake(std::string* outstring, std::ostringstream &out,
std::string &cmakeOutString,
std::string &cwd, cmake *cm);
diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx
index a5a593a..c4df741 100644
--- a/Source/CTest/cmCTestBuildCommand.cxx
+++ b/Source/CTest/cmCTestBuildCommand.cxx
@@ -148,7 +148,7 @@ cmCTestGenericHandler* cmCTestBuildCommand::InitializeHandler()
}
else
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "has no project to build. If this is a "
"\"built with CMake\" project, verify that CTEST_CMAKE_GENERATOR "
"and CTEST_PROJECT_NAME are set."
@@ -181,7 +181,7 @@ bool cmCTestBuildCommand::InitialPass(std::vector<std::string> const& args,
bool ret = cmCTestHandlerCommand::InitialPass(args, status);
if ( this->Values[ctb_NUMBER_ERRORS] && *this->Values[ctb_NUMBER_ERRORS])
{
- cmOStringStream str;
+ std::ostringstream str;
str << this->Handler->GetTotalErrors();
this->Makefile->AddDefinition(
this->Values[ctb_NUMBER_ERRORS], str.str().c_str());
@@ -189,7 +189,7 @@ bool cmCTestBuildCommand::InitialPass(std::vector<std::string> const& args,
if ( this->Values[ctb_NUMBER_WARNINGS]
&& *this->Values[ctb_NUMBER_WARNINGS])
{
- cmOStringStream str;
+ std::ostringstream str;
str << this->Handler->GetTotalWarnings();
this->Makefile->AddDefinition(
this->Values[ctb_NUMBER_WARNINGS], str.str().c_str());
diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx
index d226a6c..5e7d764 100644
--- a/Source/CTest/cmCTestBuildHandler.cxx
+++ b/Source/CTest/cmCTestBuildHandler.cxx
@@ -1094,11 +1094,8 @@ void cmCTestBuildHandler::ProcessBuffer(const char* data, int length,
{
// Create a contiguous array for the line
this->CurrentProcessingLine.clear();
- t_BuildProcessingQueueType::iterator cit;
- for ( cit = queue->begin(); cit != it; ++cit )
- {
- this->CurrentProcessingLine.push_back(*cit);
- }
+ this->CurrentProcessingLine.insert(this->CurrentProcessingLine.end(),
+ queue->begin(), queue->end());
this->CurrentProcessingLine.push_back(0);
const char* line = &*this->CurrentProcessingLine.begin();
diff --git a/Source/CTest/cmCTestConfigureCommand.cxx b/Source/CTest/cmCTestConfigureCommand.cxx
index ef62fd3..0f13263 100644
--- a/Source/CTest/cmCTestConfigureCommand.cxx
+++ b/Source/CTest/cmCTestConfigureCommand.cxx
@@ -66,7 +66,7 @@ cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler()
const std::string cmakelists_file = source_dir + "/CMakeLists.txt";
if ( !cmSystemTools::FileExists(cmakelists_file.c_str()) )
{
- cmOStringStream e;
+ std::ostringstream e;
e << "CMakeLists.txt file does not exist ["
<< cmakelists_file << "]";
this->SetError(e.str());
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index a1d770b..6598111 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -544,7 +544,7 @@ int cmCTestCoverageHandler::ProcessHandler()
cmsys::ifstream ifs(fullFileName.c_str());
if ( !ifs)
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "Cannot open source file: " << fullFileName;
errorsWhileAccumulating.push_back(ostr.str());
error ++;
@@ -563,7 +563,7 @@ int cmCTestCoverageHandler::ProcessHandler()
if ( !cmSystemTools::GetLineFromStream(ifs, line) &&
cc != fcov.size() -1 )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "Problem reading source file: " << fullFileName
<< " line:" << cc << " out total: " << fcov.size()-1;
errorsWhileAccumulating.push_back(ostr.str());
@@ -584,7 +584,7 @@ int cmCTestCoverageHandler::ProcessHandler()
}
if ( cmSystemTools::GetLineFromStream(ifs, line) )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "Looks like there are more lines in the file: " << fullFileName;
errorsWhileAccumulating.push_back(ostr.str());
}
@@ -633,7 +633,7 @@ int cmCTestCoverageHandler::ProcessHandler()
cmsys::ifstream ifs(fullPath.c_str());
if (!ifs)
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "Cannot open source file: " << fullPath;
errorsWhileAccumulating.push_back(ostr.str());
error ++;
@@ -2498,11 +2498,7 @@ void cmCTestCoverageHandler::LoadLabels(const char* dir)
// Label the source with the target labels.
LabelSet& labelSet = this->SourceLabels[source];
- for(std::vector<int>::const_iterator li = targetLabels.begin();
- li != targetLabels.end(); ++li)
- {
- labelSet.insert(*li);
- }
+ labelSet.insert(targetLabels.begin(), targetLabels.end());
}
}
}
diff --git a/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx b/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
index 5ddef01..e175592 100644
--- a/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
+++ b/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
@@ -24,7 +24,7 @@ bool cmCTestEmptyBinaryDirectoryCommand
if ( !cmCTestScriptHandler::EmptyBinaryDirectory(args[0].c_str()) )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "problem removing the binary directory: " << args[0];
this->SetError(ostr.str());
return false;
diff --git a/Source/CTest/cmCTestGenericHandler.cxx b/Source/CTest/cmCTestGenericHandler.cxx
index 2df2229..13c8ca5 100644
--- a/Source/CTest/cmCTestGenericHandler.cxx
+++ b/Source/CTest/cmCTestGenericHandler.cxx
@@ -103,7 +103,7 @@ bool cmCTestGenericHandler::StartResultingXML(cmCTest::Part part,
<< std::endl;);
return false;
}
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << name;
if ( this->SubmitIndex > 0 )
{
@@ -142,7 +142,7 @@ bool cmCTestGenericHandler::StartLogFile(const char* name,
"Cannot create log file without providing the name" << std::endl;);
return false;
}
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "Last" << name;
if ( this->SubmitIndex > 0 )
{
diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx
index 5b525dd..b886777 100644
--- a/Source/CTest/cmCTestHandlerCommand.cxx
+++ b/Source/CTest/cmCTestHandlerCommand.cxx
@@ -46,7 +46,7 @@ bool cmCTestHandlerCommand
if(!this->CheckArgumentKeyword(args[i]) &&
!this->CheckArgumentValue(args[i]))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with unknown argument \"" << args[i] << "\".";
this->SetError(e.str());
return false;
@@ -141,7 +141,7 @@ bool cmCTestHandlerCommand
int res = handler->ProcessHandler();
if ( this->Values[ct_RETURN_VALUE] && *this->Values[ct_RETURN_VALUE])
{
- cmOStringStream str;
+ std::ostringstream str;
str << res;
this->Makefile->AddDefinition(
this->Values[ct_RETURN_VALUE], str.str().c_str());
@@ -183,7 +183,7 @@ bool cmCTestHandlerCommand::CheckArgumentValue(std::string const& arg)
unsigned int k = this->ArgumentIndex;
if(this->Values[k])
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Called with more than one value for " << this->Arguments[k];
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
this->ArgumentDoing = ArgumentDoingError;
diff --git a/Source/CTest/cmCTestMemCheckHandler.cxx b/Source/CTest/cmCTestMemCheckHandler.cxx
index 09cf760..fd0388a 100644
--- a/Source/CTest/cmCTestMemCheckHandler.cxx
+++ b/Source/CTest/cmCTestMemCheckHandler.cxx
@@ -75,7 +75,7 @@ public:
this->ParseError(atts);
}
// Create the log
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << name << ":\n";
int i = 0;
for(; atts[i] != 0; i+=2)
@@ -198,7 +198,7 @@ void cmCTestMemCheckHandler::GenerateTestCommand(
{
std::vector<std::string>::size_type pp;
std::string index;
- cmOStringStream stream;
+ std::ostringstream stream;
std::string memcheckcommand
= cmSystemTools::ConvertToOutputPath(this->MemoryTester.c_str());
stream << test;
@@ -834,7 +834,7 @@ bool cmCTestMemCheckHandler::ProcessMemCheckSanitizerOutput(
int defects = 0;
std::vector<std::string> lines;
cmSystemTools::Split(str.c_str(), lines);
- cmOStringStream ostr;
+ std::ostringstream ostr;
log = "";
for( std::vector<std::string>::iterator i = lines.begin();
i != lines.end(); ++i)
@@ -878,7 +878,7 @@ bool cmCTestMemCheckHandler::ProcessMemCheckPurifyOutput(
{
std::vector<std::string> lines;
cmSystemTools::Split(str.c_str(), lines);
- cmOStringStream ostr;
+ std::ostringstream ostr;
log = "";
cmsys::RegularExpression pfW("^\\[[WEI]\\] ([A-Z][A-Z][A-Z][A-Z]*): ");
@@ -941,7 +941,7 @@ bool cmCTestMemCheckHandler::ProcessMemCheckValgrindOutput(
std::string::size_type cc;
- cmOStringStream ostr;
+ std::ostringstream ostr;
log = "";
int defects = 0;
@@ -1269,7 +1269,7 @@ void cmCTestMemCheckHandler::TestOutputFileNames(int test,
files)
{
std::string index;
- cmOStringStream stream;
+ std::ostringstream stream;
stream << test;
index = stream.str();
std::string ofile = this->MemoryTesterOutputFile;
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index 4c89caa..b32d47b 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -162,12 +162,9 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test)
//---------------------------------------------------------
void cmCTestMultiProcessHandler::LockResources(int index)
{
- for(std::set<std::string>::iterator i =
- this->Properties[index]->LockedResources.begin();
- i != this->Properties[index]->LockedResources.end(); ++i)
- {
- this->LockedResources.insert(*i);
- }
+ this->LockedResources.insert(
+ this->Properties[index]->LockedResources.begin(),
+ this->Properties[index]->LockedResources.end());
}
//---------------------------------------------------------
@@ -499,11 +496,7 @@ void cmCTestMultiProcessHandler::CreateParallelTestCostList()
i != previousSet.end(); ++i)
{
TestSet const& dependencies = this->Tests[*i];
- for(TestSet::const_iterator j = dependencies.begin();
- j != dependencies.end(); ++j)
- {
- currentSet.insert(*j);
- }
+ currentSet.insert(dependencies.begin(), dependencies.end());
}
for(TestSet::const_iterator i = currentSet.begin();
@@ -526,11 +519,8 @@ void cmCTestMultiProcessHandler::CreateParallelTestCostList()
TestList sortedCopy;
- for(TestSet::const_iterator j = currentSet.begin();
- j != currentSet.end(); ++j)
- {
- sortedCopy.push_back(*j);
- }
+ sortedCopy.insert(sortedCopy.end(),
+ currentSet.begin(), currentSet.end());
std::stable_sort(sortedCopy.begin(), sortedCopy.end(), comp);
@@ -668,7 +658,7 @@ void cmCTestMultiProcessHandler::PrintTestList()
{
cmCTestLog(this->CTest, HANDLER_OUTPUT, " Test");
}
- cmOStringStream indexStr;
+ std::ostringstream indexStr;
indexStr << " #" << p.Index << ":";
cmCTestLog(this->CTest, HANDLER_OUTPUT,
std::setw(3 + getNumWidth(this->TestHandler->GetMaxIndex()))
diff --git a/Source/CTest/cmCTestP4.cxx b/Source/CTest/cmCTestP4.cxx
index 0bb1a99..52b98d7 100644
--- a/Source/CTest/cmCTestP4.cxx
+++ b/Source/CTest/cmCTestP4.cxx
@@ -349,11 +349,7 @@ void cmCTestP4::SetP4Options(std::vector<char const*> &CommandOptions)
std::vector<std::string> args =
cmSystemTools::ParseArguments(opts.c_str());
- for(std::vector<std::string>::const_iterator ai = args.begin();
- ai != args.end(); ++ai)
- {
- P4Options.push_back(*ai);
- }
+ P4Options.insert(P4Options.end(), args.begin(), args.end());
}
CommandOptions.clear();
diff --git a/Source/CTest/cmCTestRunScriptCommand.cxx b/Source/CTest/cmCTestRunScriptCommand.cxx
index bdf9b9c..7afbe04 100644
--- a/Source/CTest/cmCTestRunScriptCommand.cxx
+++ b/Source/CTest/cmCTestRunScriptCommand.cxx
@@ -54,7 +54,7 @@ bool cmCTestRunScriptCommand
int ret;
cmCTestScriptHandler::RunScript(this->CTest, args[i].c_str(), !np,
&ret);
- cmOStringStream str;
+ std::ostringstream str;
str << ret;
this->Makefile->AddDefinition(returnVariable, str.str().c_str());
}
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 9e3c9fc..2a39051 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -116,10 +116,10 @@ void cmCTestRunTest::CompressOutput()
unsigned char *encoded_buffer
= new unsigned char[static_cast<int>(outSize * 1.5)];
- unsigned long rlen
+ size_t rlen
= cmsysBase64_Encode(out, strm.total_out, encoded_buffer, 1);
- for(unsigned long i = 0; i < rlen; i++)
+ for(size_t i = 0; i < rlen; i++)
{
this->CompressedOutput += encoded_buffer[i];
}
@@ -694,7 +694,7 @@ void cmCTestRunTest::WriteLogOutputTop(size_t completed, size_t total)
cmCTestLog(this->CTest, HANDLER_OUTPUT, "Test");
}
- cmOStringStream indexStr;
+ std::ostringstream indexStr;
indexStr << " #" << this->Index << ":";
cmCTestLog(this->CTest, HANDLER_OUTPUT,
std::setw(3 + getNumWidth(this->TestHandler->GetMaxIndex()))
diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx
index f958e7b..71edd5b 100644
--- a/Source/CTest/cmCTestScriptHandler.cxx
+++ b/Source/CTest/cmCTestScriptHandler.cxx
@@ -299,7 +299,7 @@ int cmCTestScriptHandler::ExecuteScript(const std::string& total_script_arg)
cmsysProcess_Delete(cp);
if(failed)
{
- cmOStringStream message;
+ std::ostringstream message;
message << "Error running command: [";
message << result << "] ";
for(std::vector<const char*>::iterator i = argv.begin();
diff --git a/Source/CTest/cmCTestStartCommand.cxx b/Source/CTest/cmCTestStartCommand.cxx
index 1a39a8a..8ea6cef 100644
--- a/Source/CTest/cmCTestStartCommand.cxx
+++ b/Source/CTest/cmCTestStartCommand.cxx
@@ -126,7 +126,7 @@ bool cmCTestStartCommand
}
if(!cmSystemTools::FileIsDirectory(sourceDir))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given source path\n"
<< " " << sourceDir << "\n"
<< "which is not an existing directory. "
diff --git a/Source/CTest/cmCTestSubmitCommand.cxx b/Source/CTest/cmCTestSubmitCommand.cxx
index 07a994d..4005a63 100644
--- a/Source/CTest/cmCTestSubmitCommand.cxx
+++ b/Source/CTest/cmCTestSubmitCommand.cxx
@@ -74,13 +74,8 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
std::vector<std::string> notesFiles;
cmCTest::VectorOfStrings newNotesFiles;
cmSystemTools::ExpandListArgument(notesFilesVariable,notesFiles);
- std::vector<std::string>::iterator it;
- for ( it = notesFiles.begin();
- it != notesFiles.end();
- ++ it )
- {
- newNotesFiles.push_back(*it);
- }
+ newNotesFiles.insert(newNotesFiles.end(),
+ notesFiles.begin(), notesFiles.end());
this->CTest->GenerateNotesFile(newNotesFiles);
}
@@ -91,13 +86,8 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
std::vector<std::string> extraFiles;
cmCTest::VectorOfStrings newExtraFiles;
cmSystemTools::ExpandListArgument(extraFilesVariable,extraFiles);
- std::vector<std::string>::iterator it;
- for ( it = extraFiles.begin();
- it != extraFiles.end();
- ++ it )
- {
- newExtraFiles.push_back(*it);
- }
+ newExtraFiles.insert(newExtraFiles.end(),
+ extraFiles.begin(), extraFiles.end());
if ( !this->CTest->SubmitExtraFiles(newExtraFiles))
{
this->SetError("problem submitting extra files.");
@@ -212,7 +202,7 @@ bool cmCTestSubmitCommand::CheckArgumentValue(std::string const& arg)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Part name \"" << arg << "\" is invalid.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
this->ArgumentDoing = ArgumentDoingError;
@@ -229,7 +219,7 @@ bool cmCTestSubmitCommand::CheckArgumentValue(std::string const& arg)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "File \"" << filename << "\" does not exist. Cannot submit "
<< "a non-existent file.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 6aa1c2b..fea94ba 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -1160,11 +1160,7 @@ int cmCTestSubmitHandler::ProcessHandler()
{
// Submit the explicitly selected files:
//
- cmCTest::SetOfStrings::const_iterator it;
- for (it = this->Files.begin(); it != this->Files.end(); ++it)
- {
- files.insert(*it);
- }
+ files.insert(this->Files.begin(), this->Files.end());
}
// Add to the list of files to submit from any selected, existing parts:
@@ -1219,11 +1215,7 @@ int cmCTestSubmitHandler::ProcessHandler()
// Submit files from this part.
std::vector<std::string> const& pfiles = this->CTest->GetSubmitFiles(p);
- for(std::vector<std::string>::const_iterator pi = pfiles.begin();
- pi != pfiles.end(); ++pi)
- {
- files.insert(*pi);
- }
+ files.insert(pfiles.begin(), pfiles.end());
}
if ( ofs )
@@ -1503,9 +1495,5 @@ void cmCTestSubmitHandler::SelectParts(std::set<cmCTest::Part> const& parts)
//----------------------------------------------------------------------------
void cmCTestSubmitHandler::SelectFiles(cmCTest::SetOfStrings const& files)
{
- cmCTest::SetOfStrings::const_iterator it;
- for (it = files.begin(); it != files.end(); ++it)
- {
- this->Files.insert(*it);
- }
+ this->Files.insert(files.begin(), files.end());
}
diff --git a/Source/CTest/cmCTestTestCommand.cxx b/Source/CTest/cmCTestTestCommand.cxx
index 231f035..d209094 100644
--- a/Source/CTest/cmCTestTestCommand.cxx
+++ b/Source/CTest/cmCTestTestCommand.cxx
@@ -53,7 +53,7 @@ cmCTestGenericHandler* cmCTestTestCommand::InitializeHandler()
if ( this->Values[ctt_START] || this->Values[ctt_END] ||
this->Values[ctt_STRIDE] )
{
- cmOStringStream testsToRunString;
+ std::ostringstream testsToRunString;
if ( this->Values[ctt_START] )
{
testsToRunString << this->Values[ctt_START];
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index b77825d..cfb0274 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -1865,7 +1865,7 @@ std::string cmCTestTestHandler::GenerateRegressionImages(
SPACE_REGEX "*(name|type|encoding|compression)=\"([^\"]*)\""
SPACE_REGEX "*>([^<]*)</DartMeasurementFile>");
- cmOStringStream ostr;
+ std::ostringstream ostr;
bool done = false;
std::string cxml = xml;
while ( ! done )
@@ -1976,9 +1976,8 @@ std::string cmCTestTestHandler::GenerateRegressionImages(
= new unsigned char [ static_cast<int>(
static_cast<double>(len) * 1.5 + 5.0) ];
- unsigned long rlen
+ size_t rlen
= cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);
- unsigned long cc;
ostr
<< "\t\t\t<NamedMeasurement"
@@ -1988,7 +1987,7 @@ std::string cmCTestTestHandler::GenerateRegressionImages(
<< measurementfile.match(4) << "\""
<< " encoding=\"base64\""
<< ">" << std::endl << "\t\t\t\t<Value>";
- for ( cc = 0; cc < rlen; cc ++ )
+ for (size_t cc = 0; cc < rlen; cc ++ )
{
ostr << encoded_buffer[cc];
if ( cc % 60 == 0 && cc )
@@ -2099,7 +2098,7 @@ bool cmCTestTestHandler::CleanTestOutput(std::string& output, size_t length)
output = output.substr(0, current - begin);
// Append truncation message.
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "...\n"
"The rest of the test output was removed since it exceeds the threshold "
"of " << length << " bytes.\n";
@@ -2164,11 +2163,7 @@ bool cmCTestTestHandler::SetTestsProperties(
std::vector<std::string> lval;
cmSystemTools::ExpandListArgument(val, lval);
- for(std::vector<std::string>::iterator f = lval.begin();
- f != lval.end(); ++f)
- {
- rtit->LockedResources.insert(*f);
- }
+ rtit->LockedResources.insert(lval.begin(), lval.end());
}
if ( key == "TIMEOUT" )
{
diff --git a/Source/CTest/cmCTestUpdateHandler.cxx b/Source/CTest/cmCTestUpdateHandler.cxx
index 7206914..772c9aa 100644
--- a/Source/CTest/cmCTestUpdateHandler.cxx
+++ b/Source/CTest/cmCTestUpdateHandler.cxx
@@ -413,7 +413,7 @@ bool cmCTestUpdateHandler::SelectVCS()
}
if (this->UpdateCommand.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot find UpdateCommand ";
if (key)
{
diff --git a/Source/CTest/cmCTestUpdateHandler.h b/Source/CTest/cmCTestUpdateHandler.h
index 954c024..d2423c0 100644
--- a/Source/CTest/cmCTestUpdateHandler.h
+++ b/Source/CTest/cmCTestUpdateHandler.h
@@ -17,10 +17,6 @@
#include "cmCTestGenericHandler.h"
#include "cmListFileCache.h"
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 1375 /* base class destructor not virtual */
-#endif
-
/** \class cmCTestUpdateHandler
* \brief A class that handles ctest -S invocations
*
@@ -70,8 +66,4 @@ private:
bool SelectVCS();
};
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma reset woff 1375 /* base class destructor not virtual */
-#endif
-
#endif
diff --git a/Source/CTest/cmCTestUploadCommand.cxx b/Source/CTest/cmCTestUploadCommand.cxx
index f7de294..5613751 100644
--- a/Source/CTest/cmCTestUploadCommand.cxx
+++ b/Source/CTest/cmCTestUploadCommand.cxx
@@ -55,7 +55,7 @@ bool cmCTestUploadCommand::CheckArgumentValue(std::string const& arg)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "File \"" << filename << "\" does not exist. Cannot submit "
<< "a non-existent file.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
diff --git a/Source/CTest/cmCTestVC.cxx b/Source/CTest/cmCTestVC.cxx
index 15f796f..6e93e95 100644
--- a/Source/CTest/cmCTestVC.cxx
+++ b/Source/CTest/cmCTestVC.cxx
@@ -105,7 +105,7 @@ bool cmCTestVC::RunChild(char const* const* cmd, OutputParser* out,
//----------------------------------------------------------------------------
std::string cmCTestVC::ComputeCommandLine(char const* const* cmd)
{
- cmOStringStream line;
+ std::ostringstream line;
const char* sep = "";
for(const char* const* arg = cmd; *arg; ++arg)
{
diff --git a/Source/CTest/cmParseCoberturaCoverage.cxx b/Source/CTest/cmParseCoberturaCoverage.cxx
index 0742be1..e19b199 100644
--- a/Source/CTest/cmParseCoberturaCoverage.cxx
+++ b/Source/CTest/cmParseCoberturaCoverage.cxx
@@ -12,9 +12,11 @@ public:
XMLParser(cmCTest* ctest, cmCTestCoverageHandlerContainer& cont)
: CTest(ctest), Coverage(cont)
{
- this->InSources = false;
- this->InSource = false;
+ this->InSources = false;
+ this->InSource = false;
+ this->SkipThisClass = false;
this->FilePaths.push_back(this->Coverage.SourceDir);
+ this->FilePaths.push_back(this->Coverage.BinaryDir);
this->CurFileName = "";
}
@@ -35,6 +37,10 @@ protected:
{
this->InSources=false;
}
+ else if(name == "class")
+ {
+ this->SkipThisClass = false;
+ }
}
virtual void CharacterDataHandler(const char* data, int length)
@@ -72,15 +78,33 @@ protected:
<< atts[tagCount+1]<< std::endl);
std::string filename = atts[tagCount+1];
this->CurFileName = "";
+
+ // Check if this is an absolute path that falls within our
+ // source or binary directories.
for(size_t i=0;i < FilePaths.size();i++)
{
- finalpath = FilePaths[i] + "/" + filename;
- if(cmSystemTools::FileExists(finalpath.c_str()))
+ if (filename.find(FilePaths[i]) == 0)
{
- this->CurFileName = finalpath;
+ this->CurFileName = filename;
break;
}
}
+
+ if (this->CurFileName == "")
+ {
+ // Check if this is a path that is relative to our source or
+ // binary directories.
+ for(size_t i=0;i < FilePaths.size();i++)
+ {
+ finalpath = FilePaths[i] + "/" + filename;
+ if(cmSystemTools::FileExists(finalpath.c_str()))
+ {
+ this->CurFileName = finalpath;
+ break;
+ }
+ }
+ }
+
cmsys::ifstream fin(this->CurFileName.c_str());
if(this->CurFileName == "" || !fin )
{
@@ -89,10 +113,11 @@ protected:
fin.open(this->CurFileName.c_str());
if (!fin)
{
- cmCTestLog(this->CTest, ERROR_MESSAGE,
- "Python Coverage: Error opening " << this->CurFileName
- << std::endl);
- this->Coverage.Error++;
+ cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
+ "Skipping system file " << filename <<
+ std::endl);
+
+ this->SkipThisClass = true;
break;
}
}
@@ -117,6 +142,10 @@ protected:
int curHits = -1;
while(true)
{
+ if(this->SkipThisClass)
+ {
+ break;
+ }
if(strcmp(atts[tagCount], "hits") == 0)
{
curHits = atoi(atts[tagCount+1]);
@@ -144,6 +173,7 @@ private:
bool InSources;
bool InSource;
+ bool SkipThisClass;
std::vector<std::string> FilePaths;
typedef cmCTestCoverageHandlerContainer::SingleFileCoverageVector
FileLinesType;
diff --git a/Source/CursesDialog/cmCursesStandardIncludes.h b/Source/CursesDialog/cmCursesStandardIncludes.h
index 791ac9b..6047ec5 100644
--- a/Source/CursesDialog/cmCursesStandardIncludes.h
+++ b/Source/CursesDialog/cmCursesStandardIncludes.h
@@ -22,25 +22,6 @@
#include <form.h>
-// This is a hack to prevent warnings about these functions being
-// declared but not referenced.
-#if defined(__sgi) && !defined(__GNUC__)
-class cmCursesStandardIncludesHack
-{
-public:
- enum
- {
- Ref1 = sizeof(cfgetospeed(0)),
- Ref2 = sizeof(cfgetispeed(0)),
- Ref3 = sizeof(tcgetattr(0, 0)),
- Ref4 = sizeof(tcsetattr(0, 0, 0)),
- Ref5 = sizeof(cfsetospeed(0,0)),
- Ref6 = sizeof(cfsetispeed(0,0))
- };
-};
-#endif
-
-
// on some machines move erase and clear conflict with stl
// so remove them from the namespace
inline void curses_move(unsigned int x, unsigned int y)
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx
index 818b910..8fb49ca 100644
--- a/Source/cmAddCustomCommandCommand.cxx
+++ b/Source/cmAddCustomCommandCommand.cxx
@@ -305,7 +305,7 @@ bool cmAddCustomCommandCommand
}
// No command for this output exists.
- cmOStringStream e;
+ std::ostringstream e;
e << "given APPEND option with output \"" << output[0]
<< "\" which is not already a custom command output.";
this->SetError(e.str());
@@ -354,7 +354,7 @@ bool cmAddCustomCommandCommand
}
if(!okay)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not locate source file with a custom command producing \""
<< output[0] << "\" even though this command tried to create it!";
this->SetError(e.str());
@@ -375,7 +375,7 @@ bool cmAddCustomCommandCommand
else
{
bool issueMessage = true;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0050))
{
@@ -436,7 +436,7 @@ cmAddCustomCommandCommand
std::string::size_type pos = o->find_first_of("#<>");
if(pos != o->npos)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "called with OUTPUT containing a \"" << (*o)[pos]
<< "\". This character is not allowed.";
this->SetError(msg.str());
diff --git a/Source/cmAddCustomTargetCommand.cxx b/Source/cmAddCustomTargetCommand.cxx
index 09c8af5..a0e20c8 100644
--- a/Source/cmAddCustomTargetCommand.cxx
+++ b/Source/cmAddCustomTargetCommand.cxx
@@ -30,7 +30,7 @@ bool cmAddCustomTargetCommand
// Check the target name.
if(targetName.find_first_of("/\\") != targetName.npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with invalid target name \"" << targetName
<< "\". Target names may not contain a slash. "
<< "Use ADD_CUSTOM_COMMAND to generate files.";
@@ -170,7 +170,7 @@ bool cmAddCustomTargetCommand
std::string::size_type pos = targetName.find_first_of("#<>");
if(pos != targetName.npos)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "called with target name containing a \"" << targetName[pos]
<< "\". This character is not allowed.";
this->SetError(msg.str());
@@ -189,7 +189,7 @@ bool cmAddCustomTargetCommand
if (!nameOk)
{
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
- cmOStringStream e;
+ std::ostringstream e;
bool issueMessage = false;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
{
diff --git a/Source/cmAddDependenciesCommand.cxx b/Source/cmAddDependenciesCommand.cxx
index e897d81..b560452 100644
--- a/Source/cmAddDependenciesCommand.cxx
+++ b/Source/cmAddDependenciesCommand.cxx
@@ -26,7 +26,7 @@ bool cmAddDependenciesCommand
std::string target_name = args[0];
if(this->Makefile->IsAlias(target_name))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot add target-level dependencies to alias target \""
<< target_name << "\".\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -35,7 +35,7 @@ bool cmAddDependenciesCommand
{
if (target->GetType() == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot add target-level dependencies to INTERFACE library "
"target \"" << target_name << "\".\n";
this->SetError(e.str());
@@ -51,7 +51,7 @@ bool cmAddDependenciesCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot add target-level dependencies to non-existent target \""
<< target_name << "\".\n"
<< "The add_dependencies works for top-level logical targets created "
diff --git a/Source/cmAddExecutableCommand.cxx b/Source/cmAddExecutableCommand.cxx
index c30e764..74dc8eb 100644
--- a/Source/cmAddExecutableCommand.cxx
+++ b/Source/cmAddExecutableCommand.cxx
@@ -79,7 +79,7 @@ bool cmAddExecutableCommand
if (!nameOk)
{
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
- cmOStringStream e;
+ std::ostringstream e;
bool issueMessage = false;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
{
@@ -149,7 +149,7 @@ bool cmAddExecutableCommand
}
if(args.size() != 3)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "ALIAS requires exactly one target argument.";
this->SetError(e.str());
return false;
@@ -158,7 +158,7 @@ bool cmAddExecutableCommand
const char *aliasedName = s->c_str();
if(this->Makefile->IsAlias(aliasedName))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << exename
<< "\" because target \"" << aliasedName << "\" is itself an ALIAS.";
this->SetError(e.str());
@@ -168,7 +168,7 @@ bool cmAddExecutableCommand
this->Makefile->FindTargetToUse(aliasedName, true);
if(!aliasedTarget)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << exename
<< "\" because target \"" << aliasedName << "\" does not already "
"exist.";
@@ -178,7 +178,7 @@ bool cmAddExecutableCommand
cmTarget::TargetType type = aliasedTarget->GetType();
if(type != cmTarget::EXECUTABLE)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << exename
<< "\" because target \"" << aliasedName << "\" is not an "
"executable.";
@@ -187,7 +187,7 @@ bool cmAddExecutableCommand
}
if(aliasedTarget->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << exename
<< "\" because target \"" << aliasedName << "\" is IMPORTED.";
this->SetError(e.str());
@@ -203,7 +203,7 @@ bool cmAddExecutableCommand
// Make sure the target does not already exist.
if(this->Makefile->FindTargetToUse(exename))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create imported target \"" << exename
<< "\" because another target with the same name already exists.";
this->SetError(e.str());
diff --git a/Source/cmAddLibraryCommand.cxx b/Source/cmAddLibraryCommand.cxx
index bba4d41..db2f6fb 100644
--- a/Source/cmAddLibraryCommand.cxx
+++ b/Source/cmAddLibraryCommand.cxx
@@ -51,7 +51,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting STATIC type.";
this->SetError(e.str());
return false;
@@ -64,7 +64,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting SHARED type.";
this->SetError(e.str());
return false;
@@ -77,7 +77,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting MODULE type.";
this->SetError(e.str());
return false;
@@ -90,7 +90,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting OBJECT type.";
this->SetError(e.str());
return false;
@@ -103,7 +103,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting UNKNOWN type.";
this->SetError(e.str());
return false;
@@ -116,7 +116,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting ALIAS type.";
this->SetError(e.str());
return false;
@@ -128,21 +128,21 @@ bool cmAddLibraryCommand
{
if (haveSpecifiedType)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting/multiple types.";
this->SetError(e.str());
return false;
}
if (isAlias)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified with conflicting ALIAS type.";
this->SetError(e.str());
return false;
}
if (excludeFromAll)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library may not be used with EXCLUDE_FROM_ALL.";
this->SetError(e.str());
return false;
@@ -155,7 +155,7 @@ bool cmAddLibraryCommand
{
if (type == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library may not be used with EXCLUDE_FROM_ALL.";
this->SetError(e.str());
return false;
@@ -175,7 +175,7 @@ bool cmAddLibraryCommand
}
else if(type == cmTarget::INTERFACE_LIBRARY && *s == "GLOBAL")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "GLOBAL option may only be used with IMPORTED libraries.";
this->SetError(e.str());
return false;
@@ -190,14 +190,14 @@ bool cmAddLibraryCommand
{
if (s != args.end())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library requires no source arguments.";
this->SetError(e.str());
return false;
}
if (importGlobal && !importTarget)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE library specified as GLOBAL, but not as IMPORTED.";
this->SetError(e.str());
return false;
@@ -214,7 +214,7 @@ bool cmAddLibraryCommand
if (!nameOk)
{
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
- cmOStringStream e;
+ std::ostringstream e;
bool issueMessage = false;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
{
@@ -267,7 +267,7 @@ bool cmAddLibraryCommand
}
if(args.size() != 3)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "ALIAS requires exactly one target argument.";
this->SetError(e.str());
return false;
@@ -276,7 +276,7 @@ bool cmAddLibraryCommand
const char *aliasedName = s->c_str();
if(this->Makefile->IsAlias(aliasedName))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << libName
<< "\" because target \"" << aliasedName << "\" is itself an ALIAS.";
this->SetError(e.str());
@@ -286,7 +286,7 @@ bool cmAddLibraryCommand
this->Makefile->FindTargetToUse(aliasedName, true);
if(!aliasedTarget)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << libName
<< "\" because target \"" << aliasedName << "\" does not already "
"exist.";
@@ -300,7 +300,7 @@ bool cmAddLibraryCommand
&& aliasedType != cmTarget::OBJECT_LIBRARY
&& aliasedType != cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << libName
<< "\" because target \"" << aliasedName << "\" is not a library.";
this->SetError(e.str());
@@ -308,7 +308,7 @@ bool cmAddLibraryCommand
}
if(aliasedTarget->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create ALIAS target \"" << libName
<< "\" because target \"" << aliasedName << "\" is IMPORTED.";
this->SetError(e.str());
@@ -333,7 +333,7 @@ bool cmAddLibraryCommand
(this->Makefile->GetCMakeInstance()->GetPropertyAsBool(
"TARGET_SUPPORTS_SHARED_LIBS") == false))
{
- cmOStringStream w;
+ std::ostringstream w;
w <<
"ADD_LIBRARY called with " <<
(type==cmTarget::SHARED_LIBRARY ? "SHARED" : "MODULE") <<
@@ -364,7 +364,7 @@ bool cmAddLibraryCommand
{
if (!cmGeneratorExpression::IsValidTargetName(libName))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Invalid name for IMPORTED INTERFACE library target: " << libName;
this->SetError(e.str());
return false;
@@ -374,7 +374,7 @@ bool cmAddLibraryCommand
// Make sure the target does not already exist.
if(this->Makefile->FindTargetToUse(libName))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create imported target \"" << libName
<< "\" because another target with the same name already exists.";
this->SetError(e.str());
@@ -413,7 +413,7 @@ bool cmAddLibraryCommand
if (!cmGeneratorExpression::IsValidTargetName(libName)
|| libName.find("::") != std::string::npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Invalid name for INTERFACE library target: " << libName;
this->SetError(e.str());
return false;
diff --git a/Source/cmAddSubDirectoryCommand.cxx b/Source/cmAddSubDirectoryCommand.cxx
index 477a3d9..8db5078 100644
--- a/Source/cmAddSubDirectoryCommand.cxx
+++ b/Source/cmAddSubDirectoryCommand.cxx
@@ -81,7 +81,7 @@ bool cmAddSubDirectoryCommand::InitialPass
if(!cmSystemTools::IsSubDirectory(srcPath,
this->Makefile->GetCurrentDirectory()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "not given a binary directory but the given source directory "
<< "\"" << srcPath << "\" is not a subdirectory of \""
<< this->Makefile->GetCurrentDirectory() << "\". "
diff --git a/Source/cmAddTestCommand.cxx b/Source/cmAddTestCommand.cxx
index 2531a1a..3472b98 100644
--- a/Source/cmAddTestCommand.cxx
+++ b/Source/cmAddTestCommand.cxx
@@ -36,11 +36,7 @@ bool cmAddTestCommand
// Collect the command with arguments.
std::vector<std::string> command;
- for(std::vector<std::string>::const_iterator it = args.begin() + 1;
- it != args.end(); ++it)
- {
- command.push_back(*it);
- }
+ command.insert(command.end(), args.begin() + 1, args.end());
// Create the test but add a generator only the first time it is
// seen. This preserves behavior from before test generators.
@@ -51,7 +47,7 @@ bool cmAddTestCommand
// allow it to be duplicated.
if(!test->GetOldStyle())
{
- cmOStringStream e;
+ std::ostringstream e;
e << " given test name \"" << args[0]
<< "\" which already exists in this directory.";
this->SetError(e.str());
@@ -135,7 +131,7 @@ bool cmAddTestCommand::HandleNameMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << " given unknown argument:\n " << args[i] << "\n";
this->SetError(e.str());
return false;
@@ -159,7 +155,7 @@ bool cmAddTestCommand::HandleNameMode(std::vector<std::string> const& args)
// Require a unique test name within the directory.
if(this->Makefile->GetTest(name))
{
- cmOStringStream e;
+ std::ostringstream e;
e << " given test NAME \"" << name
<< "\" which already exists in this directory.";
this->SetError(e.str());
diff --git a/Source/cmBreakCommand.cxx b/Source/cmBreakCommand.cxx
index ff527db..34245b3 100644
--- a/Source/cmBreakCommand.cxx
+++ b/Source/cmBreakCommand.cxx
@@ -18,7 +18,7 @@ bool cmBreakCommand::InitialPass(std::vector<std::string> const &args,
if(!this->Makefile->IsLoopBlock())
{
bool issueMessage = true;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0055))
{
@@ -53,7 +53,7 @@ bool cmBreakCommand::InitialPass(std::vector<std::string> const &args,
if(!args.empty())
{
bool issueMessage = true;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0055))
{
diff --git a/Source/cmBuildCommand.cxx b/Source/cmBuildCommand.cxx
index 93f7801..5d32437 100644
--- a/Source/cmBuildCommand.cxx
+++ b/Source/cmBuildCommand.cxx
@@ -78,7 +78,7 @@ bool cmBuildCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "unknown argument \"" << args[i] << "\"";
this->SetError(e.str());
return false;
diff --git a/Source/cmCMakeMinimumRequired.cxx b/Source/cmCMakeMinimumRequired.cxx
index 384e0a7..8591ed6 100644
--- a/Source/cmCMakeMinimumRequired.cxx
+++ b/Source/cmCMakeMinimumRequired.cxx
@@ -78,7 +78,7 @@ bool cmCMakeMinimumRequired
&required_major, &required_minor,
&required_patch, &required_tweak) < 2)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not parse VERSION \"" << version_string << "\".";
this->SetError(e.str());
return false;
@@ -97,7 +97,7 @@ bool cmCMakeMinimumRequired
current_tweak < required_tweak))
{
// The current version is too low.
- cmOStringStream e;
+ std::ostringstream e;
e << "CMake " << version_string
<< " or higher is required. You are running version "
<< cmVersion::GetCMakeVersion();
@@ -132,7 +132,7 @@ bool cmCMakeMinimumRequired::EnforceUnknownArguments()
{
if(!this->UnknownArguments.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with unknown argument \""
<< this->UnknownArguments[0] << "\".";
this->SetError(e.str());
diff --git a/Source/cmCMakePolicyCommand.cxx b/Source/cmCMakePolicyCommand.cxx
index ddd5d6a..9662fbf 100644
--- a/Source/cmCMakePolicyCommand.cxx
+++ b/Source/cmCMakePolicyCommand.cxx
@@ -56,7 +56,7 @@ bool cmCMakePolicyCommand
return this->HandleVersionMode(args);
}
- cmOStringStream e;
+ std::ostringstream e;
e << "given unknown first argument \"" << args[0] << "\"";
this->SetError(e.str());
return false;
@@ -82,7 +82,7 @@ bool cmCMakePolicyCommand::HandleSetMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "SET given unrecognized policy status \"" << args[2] << "\"";
this->SetError(e.str());
return false;
@@ -113,7 +113,7 @@ bool cmCMakePolicyCommand::HandleGetMode(std::vector<std::string> const& args)
cmPolicies::PolicyID pid;
if(!this->Makefile->GetPolicies()->GetPolicyID(id.c_str(), pid))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "GET given policy \"" << id << "\" which is not known to this "
<< "version of CMake.";
this->SetError(e.str());
@@ -140,7 +140,7 @@ bool cmCMakePolicyCommand::HandleGetMode(std::vector<std::string> const& args)
case cmPolicies::REQUIRED_ALWAYS:
// The policy is required to be set before anything needs it.
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Makefile->GetPolicies()->GetRequiredPolicyError(pid)
<< "\n"
<< "The call to cmake_policy(GET " << id << " ...) at which this "
diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx
index b304f28..d0dc30a 100644
--- a/Source/cmCPluginAPI.cxx
+++ b/Source/cmCPluginAPI.cxx
@@ -769,7 +769,7 @@ void CCONV cmSourceFileSetName(void *arg, const char* name, const char* dir,
}
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot find source file \"" << pathname << "\"";
e << "\n\nTried extensions";
for( std::vector<std::string>::const_iterator ext = sourceExts.begin();
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 80dbaf3..f80d4ac 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -240,7 +240,7 @@ int cmCTest::HTTPRequest(std::string url, HTTPMethod method,
//----------------------------------------------------------------------
std::string cmCTest::MakeURLSafe(const std::string& str)
{
- cmOStringStream ost;
+ std::ostringstream ost;
char buffer[10];
for ( std::string::size_type pos = 0; pos < str.size(); pos ++ )
{
@@ -1302,7 +1302,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
inst.TimeOut = timeout;
// Capture output of the child ctest.
- cmOStringStream oss;
+ std::ostringstream oss;
inst.SetStreams(&oss, &oss);
std::vector<std::string> args;
@@ -1316,7 +1316,7 @@ int cmCTest::RunTest(std::vector<const char*> argv,
if (strcmp(argv[i],"--build-generator") == 0 && timeout > 0)
{
args.push_back("--test-timeout");
- cmOStringStream msg;
+ std::ostringstream msg;
msg << timeout;
args.push_back(msg.str());
}
@@ -1674,7 +1674,8 @@ std::string cmCTest::Base64GzipEncodeFile(std::string file)
std::vector<std::string> files;
files.push_back(file);
- if(!cmSystemTools::CreateTar(tarFile.c_str(), files, true, false, false))
+ if(!cmSystemTools::CreateTar(tarFile.c_str(), files,
+ cmSystemTools::TarCompressGZip, false))
{
cmCTestLog(this, ERROR_MESSAGE, "Error creating tar while "
"encoding file: " << file << std::endl);
@@ -1688,7 +1689,7 @@ std::string cmCTest::Base64GzipEncodeFile(std::string file)
//----------------------------------------------------------------------
std::string cmCTest::Base64EncodeFile(std::string file)
{
- long len = cmSystemTools::FileLength(file);
+ size_t const len = cmSystemTools::FileLength(file);
cmsys::ifstream ifs(file.c_str(), std::ios::in
#ifdef _WIN32
| std::ios::binary
@@ -1699,14 +1700,13 @@ std::string cmCTest::Base64EncodeFile(std::string file)
ifs.close();
unsigned char *encoded_buffer
- = new unsigned char [ static_cast<int>(
- static_cast<double>(len) * 1.5 + 5.0) ];
+ = new unsigned char [ (len * 3) / 2 + 5 ];
- unsigned long rlen
+ size_t const rlen
= cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);
std::string base64 = "";
- for(unsigned long i = 0; i < rlen; i++)
+ for(size_t i = 0; i < rlen; i++)
{
base64 += encoded_buffer[i];
}
@@ -3190,9 +3190,9 @@ bool cmCTest::CompressString(std::string& str)
// Now base64 encode the resulting binary string
unsigned char* base64EncodedBuffer
- = new unsigned char[static_cast<int>(outSize * 1.5)];
+ = new unsigned char[(outSize * 3) / 2];
- unsigned long rlen
+ size_t rlen
= cmsysBase64_Encode(out, strm.total_out, base64EncodedBuffer, 1);
str = "";
diff --git a/Source/cmCTest.h b/Source/cmCTest.h
index e19d32c..deb8896 100644
--- a/Source/cmCTest.h
+++ b/Source/cmCTest.h
@@ -27,7 +27,7 @@ class cmCTestStartCommand;
#define cmCTestLog(ctSelf, logType, msg) \
do { \
- cmOStringStream cmCTestLog_msg; \
+ std::ostringstream cmCTestLog_msg; \
cmCTestLog_msg << msg; \
(ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__,\
cmCTestLog_msg.str().c_str());\
diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx
index 64b67c9..747b7e4 100644
--- a/Source/cmCommandArgumentParserHelper.cxx
+++ b/Source/cmCommandArgumentParserHelper.cxx
@@ -103,7 +103,7 @@ char* cmCommandArgumentParserHelper::ExpandSpecialVariable(const char* key,
}
return this->EmptyVariable;
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Syntax $" << key << "{} is not supported. "
<< "Only ${}, $ENV{}, and $CACHE{} are allowed.";
this->SetError(e.str());
@@ -118,7 +118,7 @@ char* cmCommandArgumentParserHelper::ExpandVariable(const char* var)
}
if(this->FileLine >= 0 && strcmp(var, "CMAKE_CURRENT_LIST_LINE") == 0)
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << this->FileLine;
return this->AddString(ostr.str());
}
@@ -136,7 +136,7 @@ char* cmCommandArgumentParserHelper::ExpandVariable(const char* var)
cmSystemTools::IsSubDirectory(this->FileName,
this->Makefile->GetHomeOutputDirectory()))
{
- cmOStringStream msg;
+ std::ostringstream msg;
cmListFileBacktrace bt(this->Makefile->GetLocalGenerator());
cmListFileContext lfc;
lfc.FilePath = this->FileName;
@@ -253,7 +253,7 @@ bool cmCommandArgumentParserHelper::HandleEscapeSymbol
break;
default:
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Invalid escape sequence \\" << symbol;
this->SetError(e.str());
}
@@ -335,7 +335,7 @@ int cmCommandArgumentParserHelper::LexInput(char* buf, int maxlen)
void cmCommandArgumentParserHelper::Error(const char* str)
{
unsigned long pos = static_cast<unsigned long>(this->InputBufferPos);
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << str << " (" << pos << ")";
this->SetError(ostr.str());
}
diff --git a/Source/cmCommandArgumentsHelper.cxx b/Source/cmCommandArgumentsHelper.cxx
index 1d5fc07..1a2efc6 100644
--- a/Source/cmCommandArgumentsHelper.cxx
+++ b/Source/cmCommandArgumentsHelper.cxx
@@ -50,13 +50,8 @@ void cmCommandArgument::FollowsGroup(const cmCommandArgumentGroup* group)
if (group!=0)
{
this->ArgumentsBeforeEmpty = false;
- for(std::vector<cmCommandArgument*>::const_iterator
- argIt= group->ContainedArguments.begin();
- argIt != group->ContainedArguments.end();
- ++argIt)
- {
- this->ArgumentsBefore.insert(*argIt);
- }
+ this->ArgumentsBefore.insert(group->ContainedArguments.begin(),
+ group->ContainedArguments.end());
}
}
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx
index a636d23..0ddb571 100644
--- a/Source/cmComputeLinkDepends.cxx
+++ b/Source/cmComputeLinkDepends.cxx
@@ -266,10 +266,9 @@ cmComputeLinkDepends::Compute()
// Iterate in reverse order so we can keep only the last occurrence
// of a shared library.
std::set<int> emmitted;
- const std::vector<int>& cFLO = this->FinalLinkOrder;
for(std::vector<int>::const_reverse_iterator
- li = cFLO.rbegin(),
- le = cFLO.rend();
+ li = this->FinalLinkOrder.rbegin(),
+ le = this->FinalLinkOrder.rend();
li != le; ++li)
{
int i = *li;
@@ -710,7 +709,7 @@ void cmComputeLinkDepends::CleanConstraintGraph()
void cmComputeLinkDepends::DisplayConstraintGraph()
{
// Display the graph nodes and their edges.
- cmOStringStream e;
+ std::ostringstream e;
for(unsigned int i=0; i < this->EntryConstraintGraph.size(); ++i)
{
EdgeList const& nl = this->EntryConstraintGraph[i];
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index f4fa5c6..479da75 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -408,11 +408,7 @@ cmComputeLinkInformation
// Construct a mask to not bother with this behavior for link
// directories already specified by the user.
std::vector<std::string> const& dirs = this->Target->GetLinkDirectories();
- for(std::vector<std::string>::const_iterator di = dirs.begin();
- di != dirs.end(); ++di)
- {
- this->OldLinkDirMask.insert(*di);
- }
+ this->OldLinkDirMask.insert(dirs.begin(), dirs.end());
}
}
@@ -448,18 +444,7 @@ std::string cmComputeLinkInformation::GetRPathLinkString()
}
// Construct the linker runtime search path.
- std::string rpath_link;
- const char* sep = "";
- std::vector<std::string> const& dirs =
- this->OrderDependentRPath->GetOrderedDirectories();
- for(std::vector<std::string>::const_iterator di = dirs.begin();
- di != dirs.end(); ++di)
- {
- rpath_link += sep;
- sep = ":";
- rpath_link += *di;
- }
- return rpath_link;
+ return cmJoin(this->OrderDependentRPath->GetOrderedDirectories(), ":");
}
//----------------------------------------------------------------------------
@@ -1342,7 +1327,7 @@ void cmComputeLinkInformation::AddFrameworkItem(std::string const& item)
// Try to separate the framework name and path.
if(!this->SplitFramework.find(item.c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Could not parse framework path \"" << item << "\" "
<< "linked by target " << this->Target->GetName() << ".";
cmSystemTools::Error(e.str().c_str());
@@ -1389,7 +1374,7 @@ void cmComputeLinkInformation::DropDirectoryItem(std::string const& item)
{
// A full path to a directory was found as a link item. Warn the
// user.
- cmOStringStream e;
+ std::ostringstream e;
e << "WARNING: Target \"" << this->Target->GetName()
<< "\" requests linking to directory \"" << item << "\". "
<< "Targets may link only to libraries. "
@@ -1420,11 +1405,8 @@ void cmComputeLinkInformation::ComputeFrameworkInfo()
cmSystemTools::ExpandListArgument(implicitDirs, implicitDirVec);
}
- for(std::vector<std::string>::const_iterator i = implicitDirVec.begin();
- i != implicitDirVec.end(); ++i)
- {
- this->FrameworkPathsEmmitted.insert(*i);
- }
+ this->FrameworkPathsEmmitted.insert(implicitDirVec.begin(),
+ implicitDirVec.end());
// Regular expression to extract a framework path and name.
this->SplitFramework.compile("(.*)/(.*)\\.framework$");
@@ -1505,7 +1487,7 @@ void cmComputeLinkInformation::HandleBadFullItem(std::string const& item,
if(!this->CMakeInstance->GetPropertyAsBool(wid))
{
this->CMakeInstance->SetProperty(wid, "1");
- cmOStringStream w;
+ std::ostringstream w;
w << (this->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0008)) << "\n"
<< "Target \"" << this->Target->GetName() << "\" links to item\n"
@@ -1524,7 +1506,7 @@ void cmComputeLinkInformation::HandleBadFullItem(std::string const& item,
case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS:
{
- cmOStringStream e;
+ std::ostringstream e;
e << (this->Makefile->GetPolicies()->
GetRequiredPolicyError(cmPolicies::CMP0008)) << "\n"
<< "Target \"" << this->Target->GetName() << "\" links to item\n"
@@ -1554,7 +1536,7 @@ bool cmComputeLinkInformation::FinishLinkerSearchDirectories()
if(!this->CMakeInstance->GetPropertyAsBool("CMP0003-WARNING-GIVEN"))
{
this->CMakeInstance->SetProperty("CMP0003-WARNING-GIVEN", "1");
- cmOStringStream w;
+ std::ostringstream w;
this->PrintLinkPolicyDiagnosis(w);
this->CMakeInstance->IssueMessage(cmake::AUTHOR_WARNING, w.str(),
this->Target->GetBacktrace());
@@ -1569,7 +1551,7 @@ bool cmComputeLinkInformation::FinishLinkerSearchDirectories()
case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS:
{
- cmOStringStream e;
+ std::ostringstream e;
e << (this->Makefile->GetPolicies()->
GetRequiredPolicyError(cmPolicies::CMP0003)) << "\n";
this->PrintLinkPolicyDiagnosis(e);
@@ -1694,11 +1676,7 @@ void cmComputeLinkInformation::LoadImplicitLinkInfo()
}
// Store implicit link directories.
- for(std::vector<std::string>::const_iterator i = implicitDirVec.begin();
- i != implicitDirVec.end(); ++i)
- {
- this->ImplicitLinkDirs.insert(*i);
- }
+ this->ImplicitLinkDirs.insert(implicitDirVec.begin(), implicitDirVec.end());
// Get language-specific implicit libraries.
std::vector<std::string> implicitLibVec;
@@ -1999,18 +1977,7 @@ std::string cmComputeLinkInformation::GetRPathString(bool for_install)
this->GetRPath(runtimeDirs, for_install);
// Concatenate the paths.
- std::string rpath;
- const char* sep = "";
- for(std::vector<std::string>::const_iterator ri = runtimeDirs.begin();
- ri != runtimeDirs.end(); ++ri)
- {
- // Separate from previous path.
- rpath += sep;
- sep = this->GetRuntimeSep().c_str();
-
- // Add this path.
- rpath += *ri;
- }
+ std::string rpath = cmJoin(runtimeDirs, this->GetRuntimeSep());
// If the rpath will be replaced at install time, prepare space.
if(!for_install && this->RuntimeUseChrpath)
diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx
index 75d3967..cf2b88e 100644
--- a/Source/cmComputeTargetDepends.cxx
+++ b/Source/cmComputeTargetDepends.cxx
@@ -361,7 +361,7 @@ void cmComputeTargetDepends::AddTargetDepend(
cmMakefile *makefile = depender->GetMakefile();
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
bool issueMessage = false;
- cmOStringStream e;
+ std::ostringstream e;
switch(depender->GetPolicyStatusCMP0046())
{
case cmPolicies::WARN:
@@ -539,7 +539,7 @@ cmComputeTargetDepends
bool strong)
{
// Construct the error message.
- cmOStringStream e;
+ std::ostringstream e;
e << "The inter-target dependency graph contains the following "
<< "strongly connected component (cycle):\n";
std::vector<NodeList> const& components = ccg.GetComponents();
diff --git a/Source/cmConditionEvaluator.cxx b/Source/cmConditionEvaluator.cxx
index aba26de..eb4f3a1 100644
--- a/Source/cmConditionEvaluator.cxx
+++ b/Source/cmConditionEvaluator.cxx
@@ -53,10 +53,7 @@ bool cmConditionEvaluator::IsTrue(
cmArgumentList newArgs;
// copy to the list structure
- for(unsigned int i = 0; i < args.size(); ++i)
- {
- newArgs.push_back(args[i]);
- }
+ newArgs.insert(newArgs.end(), args.begin(), args.end());
// now loop through the arguments and see if we can reduce any of them
// we do this multiple times. Once for each level of precedence
@@ -119,7 +116,7 @@ const char* cmConditionEvaluator::GetDefinitionIfUnquoted(
if(!hasBeenReported)
{
- cmOStringStream e;
+ std::ostringstream e;
e << (this->Makefile.GetPolicies()->GetPolicyWarning(
cmPolicies::CMP0054)) << "\n";
e << "Quoted variables like \"" << argument.GetValue() <<
@@ -169,7 +166,7 @@ bool cmConditionEvaluator::IsKeyword(std::string const& keyword,
if(!hasBeenReported)
{
- cmOStringStream e;
+ std::ostringstream e;
e << (this->Makefile.GetPolicies()->GetPolicyWarning(
cmPolicies::CMP0054)) << "\n";
e << "Quoted keywords like \"" << argument.GetValue() <<
@@ -411,10 +408,7 @@ bool cmConditionEvaluator::HandleLevel0(cmArgumentList &newArgs,
// copy to the list structure
cmArgumentList::iterator argP1 = arg;
argP1++;
- for(; argP1 != argClose; argP1++)
- {
- newArgs2.push_back(*argP1);
- }
+ newArgs2.insert(newArgs2.end(), argP1, argClose);
newArgs2.pop_back();
// now recursively invoke IsTrue to handle the values inside the
// parenthetical expression
@@ -559,7 +553,7 @@ bool cmConditionEvaluator::HandleLevel2(cmArgumentList &newArgs,
cmsys::RegularExpression regEntry;
if ( !regEntry.compile(rex) )
{
- cmOStringStream error;
+ std::ostringstream error;
error << "Regular expression \"" << rex << "\" cannot compile";
errorString = error.str();
status = cmake::FATAL_ERROR;
diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in
index 79776f4..c0a1aa9 100644
--- a/Source/cmConfigure.cmake.h.in
+++ b/Source/cmConfigure.cmake.h.in
@@ -9,10 +9,6 @@
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
-#cmakedefine CMAKE_NO_STD_NAMESPACE
-#cmakedefine CMAKE_NO_ANSI_STREAM_HEADERS
-#cmakedefine CMAKE_NO_ANSI_STRING_STREAM
-#cmakedefine CMAKE_NO_ANSI_FOR_SCOPE
#cmakedefine HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE
#cmakedefine HAVE_UNSETENV
#cmakedefine CMAKE_USE_ELF_PARSER
diff --git a/Source/cmConfigureFileCommand.cxx b/Source/cmConfigureFileCommand.cxx
index cc6cf5f..fa7f486 100644
--- a/Source/cmConfigureFileCommand.cxx
+++ b/Source/cmConfigureFileCommand.cxx
@@ -34,7 +34,7 @@ bool cmConfigureFileCommand
// If the input location is a directory, error out.
if(cmSystemTools::FileIsDirectory(this->InputFile))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "input location\n"
<< " " << this->InputFile << "\n"
<< "is a directory but a file was expected.";
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index 0030b84..002e75a 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -150,7 +150,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
}
else
{
- cmOStringStream m;
+ std::ostringstream m;
m << "try_compile given unknown argument \"" << argv[i] << "\".";
this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, m.str());
}
@@ -220,7 +220,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
// do not allow recursive try Compiles
if (this->BinaryDirectory == this->Makefile->GetHomeOutputDirectory())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Attempt at a recursive or nested TRY_COMPILE in directory\n"
<< " " << this->BinaryDirectory << "\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -256,7 +256,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
}
else
{
- cmOStringStream err;
+ std::ostringstream err;
err << "Unknown extension \"" << ext << "\" for file\n"
<< " " << *si << "\n"
<< "try_compile() works only for enabled languages. "
@@ -282,7 +282,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
FILE *fout = cmsys::SystemTools::Fopen(outFileName,"w");
if (!fout)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Failed to open\n"
<< " " << outFileName << "\n"
<< cmSystemTools::GetLastSystemError();
@@ -337,7 +337,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
if(this->Makefile->PolicyOptionalWarningEnabled(
"CMAKE_POLICY_WARNING_CMP0056"))
{
- cmOStringStream w;
+ std::ostringstream w;
w << (this->Makefile->GetCMakeInstance()->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0056)) << "\n"
"For compatibility with older versions of CMake, try_compile "
@@ -553,7 +553,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
!cmSystemTools::CopyFileAlways(this->OutputFile,
copyFile))
{
- cmOStringStream emsg;
+ std::ostringstream emsg;
emsg << "Cannot copy output executable\n"
<< " '" << this->OutputFile << "'\n"
<< "to destination specified by COPY_FILE:\n"
@@ -691,7 +691,7 @@ void cmCoreTryCompile::FindOutputFile(const std::string& targetName)
}
}
- cmOStringStream emsg;
+ std::ostringstream emsg;
emsg << "Unable to find the executable at any of:\n";
for (unsigned int i = 0; i < searchDirs.size(); ++i)
{
diff --git a/Source/cmCustomCommand.cxx b/Source/cmCustomCommand.cxx
index 2afb029..015825d 100644
--- a/Source/cmCustomCommand.cxx
+++ b/Source/cmCustomCommand.cxx
@@ -131,21 +131,14 @@ const char* cmCustomCommand::GetComment() const
//----------------------------------------------------------------------------
void cmCustomCommand::AppendCommands(const cmCustomCommandLines& commandLines)
{
- for(cmCustomCommandLines::const_iterator i=commandLines.begin();
- i != commandLines.end(); ++i)
- {
- this->CommandLines.push_back(*i);
- }
+ this->CommandLines.insert(this->CommandLines.end(),
+ commandLines.begin(), commandLines.end());
}
//----------------------------------------------------------------------------
void cmCustomCommand::AppendDepends(const std::vector<std::string>& depends)
{
- for(std::vector<std::string>::const_iterator i=depends.begin();
- i != depends.end(); ++i)
- {
- this->Depends.push_back(*i);
- }
+ this->Depends.insert(this->Depends.end(), depends.begin(), depends.end());
}
//----------------------------------------------------------------------------
diff --git a/Source/cmDefinePropertyCommand.cxx b/Source/cmDefinePropertyCommand.cxx
index 6b729de..5ff0186 100644
--- a/Source/cmDefinePropertyCommand.cxx
+++ b/Source/cmDefinePropertyCommand.cxx
@@ -53,7 +53,7 @@ bool cmDefinePropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid scope " << args[0] << ". "
<< "Valid scopes are "
<< "GLOBAL, DIRECTORY, TARGET, SOURCE, "
@@ -100,7 +100,7 @@ bool cmDefinePropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid argument \"" << args[i] << "\".";
this->SetError(e.str());
return false;
diff --git a/Source/cmDepends.cxx b/Source/cmDepends.cxx
index 947db82..d419011 100644
--- a/Source/cmDepends.cxx
+++ b/Source/cmDepends.cxx
@@ -123,7 +123,7 @@ void cmDepends::Clear(const char *file)
// Print verbose output.
if(this->Verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Clearing dependencies in \"" << file << "\"." << std::endl;
cmSystemTools::Stdout(msg.str().c_str());
}
@@ -213,7 +213,7 @@ bool cmDepends::CheckDependencies(std::istream& internalDepends,
// Print verbose output.
if(this->Verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Dependee \"" << dependee
<< "\" does not exist for depender \""
<< depender << "\"." << std::endl;
@@ -235,7 +235,7 @@ bool cmDepends::CheckDependencies(std::istream& internalDepends,
// Print verbose output.
if(this->Verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Dependee \"" << dependee
<< "\" is newer than depender \""
<< depender << "\"." << std::endl;
@@ -257,7 +257,7 @@ bool cmDepends::CheckDependencies(std::istream& internalDepends,
// Print verbose output.
if(this->Verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Dependee \"" << dependee
<< "\" is newer than depends file \""
<< internalDependsFileName << "\"." << std::endl;
diff --git a/Source/cmDependsC.cxx b/Source/cmDependsC.cxx
index a1fc268..a8711eb 100644
--- a/Source/cmDependsC.cxx
+++ b/Source/cmDependsC.cxx
@@ -125,11 +125,7 @@ bool cmDependsC::WriteDependencies(const std::set<std::string>& sources,
this->ValidDeps->find(obj);
if (tmpIt!= this->ValidDeps->end())
{
- for(DependencyVector::const_iterator i=tmpIt->second.begin();
- i != tmpIt->second.end(); ++i)
- {
- dependencies.insert(*i);
- }
+ dependencies.insert(tmpIt->second.begin(), tmpIt->second.end());
haveDeps = true;
}
}
diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx
index 4082d24..d9818ce 100644
--- a/Source/cmDependsFortran.cxx
+++ b/Source/cmDependsFortran.cxx
@@ -319,17 +319,13 @@ void cmDependsFortran::LocateModules()
infoI != objInfo.end(); ++infoI)
{
cmDependsFortranSourceInfo const& info = infoI->second;
- for(std::set<std::string>::const_iterator i = info.Provides.begin();
- i != info.Provides.end(); ++i)
- {
- // Include this module in the set provided by this target.
- this->Internal->TargetProvides.insert(*i);
- }
+ // Include this module in the set provided by this target.
+ this->Internal->TargetProvides.insert(info.Provides.begin(),
+ info.Provides.end());
for(std::set<std::string>::const_iterator i = info.Requires.begin();
i != info.Requires.end(); ++i)
{
- // Include this module in the set required by this target.
this->Internal->TargetRequires[*i] = "";
}
}
diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx
index cab23b7..d062987 100644
--- a/Source/cmELF.cxx
+++ b/Source/cmELF.cxx
@@ -532,7 +532,7 @@ cmELFInternalImpl<Types>
break;
}
#endif
- cmOStringStream e;
+ std::ostringstream e;
e << "Unknown ELF file type " << eti;
this->SetErrorMessage(e.str().c_str());
return;
diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx
index 11f8ae5..0707906 100644
--- a/Source/cmExecuteProcessCommand.cxx
+++ b/Source/cmExecuteProcessCommand.cxx
@@ -189,7 +189,7 @@ bool cmExecuteProcessCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << " given unknown argument \"" << args[i] << "\".";
this->SetError(e.str());
return false;
diff --git a/Source/cmExportBuildFileGenerator.cxx b/Source/cmExportBuildFileGenerator.cxx
index 134ee98..a28ec48 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -45,7 +45,7 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given target \"" << te->GetName() << "\" more than once.";
this->Makefile->GetCMakeInstance()
->IssueMessage(cmake::FATAL_ERROR, e.str(), this->Backtrace);
@@ -70,7 +70,7 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
cmTarget* te = *tei;
if (te->GetProperty("INTERFACE_SOURCES"))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \""
<< te->GetName()
<< "\" has a populated INTERFACE_SOURCES property. This is not "
@@ -313,7 +313,7 @@ cmExportBuildFileGenerator
return;
}
- cmOStringStream e;
+ std::ostringstream e;
e << "export called with target \"" << depender->GetName()
<< "\" which requires target \"" << dependee->GetName() << "\" ";
if (occurrences == 0)
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
index db21c49..76283d4 100644
--- a/Source/cmExportCommand.cxx
+++ b/Source/cmExportCommand.cxx
@@ -89,7 +89,7 @@ bool cmExportCommand
if(cmSystemTools::GetFilenameLastExtension(this->Filename.GetCString())
!= ".cmake")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "FILE option given filename \"" << this->Filename.GetString()
<< "\" which does not have an extension of \".cmake\".\n";
this->SetError(e.str());
@@ -103,7 +103,7 @@ bool cmExportCommand
{
if(!this->Makefile->CanIWriteThisFile(fname.c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "FILE option given filename \"" << fname
<< "\" which is in the source tree.\n";
this->SetError(e.str());
@@ -126,7 +126,7 @@ bool cmExportCommand
{
if (this->Append.IsEnabled())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "EXPORT signature does not recognise the APPEND option.";
this->SetError(e.str());
return false;
@@ -134,7 +134,7 @@ bool cmExportCommand
if (this->ExportOld.IsEnabled())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "EXPORT signature does not recognise the "
"EXPORT_LINK_INTERFACE_LIBRARIES option.";
this->SetError(e.str());
@@ -145,7 +145,7 @@ bool cmExportCommand
std::string setName = this->ExportSetName.GetString();
if (setMap.find(setName) == setMap.end())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Export set \"" << setName << "\" not found.";
this->SetError(e.str());
return false;
@@ -161,7 +161,7 @@ bool cmExportCommand
{
if (this->Makefile->IsAlias(*currentTarget))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given ALIAS target \"" << *currentTarget
<< "\" which may not be exported.";
this->SetError(e.str());
@@ -172,7 +172,7 @@ bool cmExportCommand
{
if(target->GetType() == cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given OBJECT library \"" << *currentTarget
<< "\" which may not be exported.";
this->SetError(e.str());
@@ -181,7 +181,7 @@ bool cmExportCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given target \"" << *currentTarget
<< "\" which is not built by this project.";
this->SetError(e.str());
@@ -261,7 +261,7 @@ bool cmExportCommand::HandlePackage(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "PACKAGE given unknown argument: " << args[i];
this->SetError(e.str());
return false;
@@ -278,7 +278,7 @@ bool cmExportCommand::HandlePackage(std::vector<std::string> const& args)
cmsys::RegularExpression packageRegex(packageExpr);
if(!packageRegex.find(package.c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "PACKAGE given invalid package name \"" << package << "\". "
<< "Package names must match \"" << packageExpr << "\".";
this->SetError(e.str());
@@ -314,7 +314,7 @@ void cmExportCommand::ReportRegistryError(std::string const& msg,
std::string const& key,
long err)
{
- cmOStringStream e;
+ std::ostringstream e;
e << msg << "\n"
<< " HKEY_CURRENT_USER\\" << key << "\n";
wchar_t winmsg[1024];
@@ -355,7 +355,7 @@ void cmExportCommand::StorePackageRegistryWin(std::string const& package,
RegCloseKey(hKey);
if(err != ERROR_SUCCESS)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Cannot set registry value \"" << hash << "\" under key";
this->ReportRegistryError(msg.str(), key, err);
return;
@@ -400,7 +400,7 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package,
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot create package registry file:\n"
<< " " << fname << "\n"
<< cmSystemTools::GetLastSystemError() << "\n";
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 1f39d7a..af4ce8b 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -81,7 +81,7 @@ bool cmExportFileGenerator::GenerateImportFile()
if(!foutPtr.get() || !*foutPtr)
{
std::string se = cmSystemTools::GetLastSystemError();
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot write to file \"" << this->MainImportFile
<< "\": " << se;
cmSystemTools::Error(e.str().c_str());
@@ -247,7 +247,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
continue;
}
cmake::MessageType messageType = cmake::FATAL_ERROR;
- cmOStringStream e;
+ std::ostringstream e;
if (genexPos != std::string::npos)
{
switch (target->GetPolicyStatusCMP0041())
@@ -295,7 +295,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
{
case cmPolicies::WARN:
{
- cmOStringStream s;
+ std::ostringstream s;
s << target->GetMakefile()->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0052) << "\n";
s << "Directory:\n \"" << *li << "\"\nin "
@@ -391,7 +391,7 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
if (cge->GetHadContextSensitiveCondition())
{
cmMakefile* mf = target->GetMakefile();
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << target->GetName() << "\" is installed with "
"INCLUDES DESTINATION set to a context sensitive path. Paths which "
"depend on the configuration, policy values or the link interface are "
@@ -456,11 +456,7 @@ void getPropertyContents(cmTarget const* tgt, const std::string& prop,
}
std::vector<std::string> content;
cmSystemTools::ExpandListArgument(p, content);
- for (std::vector<std::string>::const_iterator ci = content.begin();
- ci != content.end(); ++ci)
- {
- ifaceProperties.insert(*ci);
- }
+ ifaceProperties.insert(content.begin(), content.end());
}
//----------------------------------------------------------------------------
@@ -473,7 +469,7 @@ void getCompatibleInterfaceProperties(cmTarget *target,
if (!info)
{
cmMakefile* mf = target->GetMakefile();
- cmOStringStream e;
+ std::ostringstream e;
e << "Exporting the target \"" << target->GetName() << "\" is not "
"allowed since its linker language cannot be determined";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -773,7 +769,7 @@ cmExportFileGenerator
if(newCMP0022Behavior && !this->ExportOld)
{
cmMakefile *mf = target->GetMakefile();
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << target->GetName() << "\" has policy CMP0022 enabled, "
"but also has old-style LINK_INTERFACE_LIBRARIES properties "
"populated, but it was exported without the "
@@ -857,7 +853,7 @@ cmExportFileGenerator
{
std::string prop = "IMPORTED_LINK_INTERFACE_MULTIPLICITY";
prop += suffix;
- cmOStringStream m;
+ std::ostringstream m;
m << iface->Multiplicity;
properties[prop] = m.str();
}
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index 3f5866a..98ed818 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -56,7 +56,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "install(EXPORT \""
<< this->IEGen->GetExportSet()->GetName()
<< "\" ...) " << "includes target \"" << te->Target->GetName()
@@ -133,7 +133,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
if (te->GetProperty("INTERFACE_SOURCES"))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \""
<< te->GetName()
<< "\" has a populated INTERFACE_SOURCES property. This is not "
@@ -290,7 +290,7 @@ cmExportInstallFileGenerator::GenerateImportFileConfig(
if(!exportFileStream)
{
std::string se = cmSystemTools::GetLastSystemError();
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot write to file \"" << fileName
<< "\": " << se;
cmSystemTools::Error(e.str().c_str());
@@ -516,7 +516,7 @@ cmExportInstallFileGenerator
cmTarget* dependee,
int occurrences)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "install(EXPORT \""
<< this->IEGen->GetExportSet()->GetName()
<< "\" ...) "
diff --git a/Source/cmExprParserHelper.cxx b/Source/cmExprParserHelper.cxx
index cc35f84..6016c4c 100644
--- a/Source/cmExprParserHelper.cxx
+++ b/Source/cmExprParserHelper.cxx
@@ -99,7 +99,7 @@ int cmExprParserHelper::LexInput(char* buf, int maxlen)
void cmExprParserHelper::Error(const char* str)
{
unsigned long pos = static_cast<unsigned long>(this->InputBufferPos);
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << str << " (" << pos << ")";
this->ErrorString = ostr.str();
}
diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index 79d7bcaff..69857ef 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -615,12 +615,8 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
std::vector<std::string> includes;
target->GetMakefile()->GetLocalGenerator()->
GetIncludeDirectories(includes, gtgt, "C", buildType);
- for(std::vector<std::string>::const_iterator dirIt=includes.begin();
- dirIt != includes.end();
- ++dirIt)
- {
- uniqIncludeDirs.insert(*dirIt);
- }
+
+ uniqIncludeDirs.insert(includes.begin(), includes.end());
std::string systemIncludeDirs = makefile->GetSafeDefinition(
"CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS");
@@ -628,12 +624,7 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
{
std::vector<std::string> dirs;
cmSystemTools::ExpandListArgument(systemIncludeDirs, dirs);
- for(std::vector<std::string>::const_iterator dirIt=dirs.begin();
- dirIt != dirs.end();
- ++dirIt)
- {
- uniqIncludeDirs.insert(*dirIt);
- }
+ uniqIncludeDirs.insert(dirs.begin(), dirs.end());
}
systemIncludeDirs = makefile->GetSafeDefinition(
@@ -642,12 +633,7 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
{
std::vector<std::string> dirs;
cmSystemTools::ExpandListArgument(systemIncludeDirs, dirs);
- for(std::vector<std::string>::const_iterator dirIt=dirs.begin();
- dirIt != dirs.end();
- ++dirIt)
- {
- uniqIncludeDirs.insert(*dirIt);
- }
+ uniqIncludeDirs.insert(dirs.begin(), dirs.end());
}
for(std::set<std::string>::const_iterator dirIt=uniqIncludeDirs.begin();
diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx
index cc42bca..eb50a7d 100644
--- a/Source/cmExtraCodeLiteGenerator.cxx
+++ b/Source/cmExtraCodeLiteGenerator.cxx
@@ -454,7 +454,7 @@ cmExtraCodeLiteGenerator::GetBuildCommand(const cmMakefile* mf) const
else if ( generator == "MinGW Makefiles" ||
generator == "Unix Makefiles" )
{
- cmOStringStream ss;
+ std::ostringstream ss;
ss << make << " -j " << this->CpuCount;
buildCommand = ss.str();
}
@@ -482,7 +482,7 @@ cmExtraCodeLiteGenerator::GetSingleFileBuildCommand
std::string generator = mf->GetSafeDefinition("CMAKE_GENERATOR");
if ( generator == "Unix Makefiles" || generator == "MinGW Makefiles" )
{
- cmOStringStream ss;
+ std::ostringstream ss;
ss << make << " -f$(ProjectPath)/Makefile $(CurrentFileName).cpp.o";
buildCommand = ss.str();
}
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 3c2dfa5..0306f18 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -404,7 +404,7 @@ bool cmFileCommand::HandleHashCommand(std::vector<std::string> const& args)
#if defined(CMAKE_BUILD_WITH_CMAKE)
if(args.size() != 3)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " requires a file name and output variable";
this->SetError(e.str());
return false;
@@ -419,14 +419,14 @@ bool cmFileCommand::HandleHashCommand(std::vector<std::string> const& args)
this->Makefile->AddDefinition(args[2], out.c_str());
return true;
}
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " failed to read file \"" << args[1] << "\": "
<< cmSystemTools::GetLastSystemError();
this->SetError(e.str());
}
return false;
#else
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " not available during bootstrap";
this->SetError(e.str().c_str());
return false;
@@ -519,7 +519,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
if(sscanf(args[i].c_str(), "%d", &limit_input) != 1 ||
limit_input < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option LIMIT_INPUT value \""
<< args[i] << "\" is not an unsigned integer.";
this->SetError(e.str());
@@ -532,7 +532,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
if(sscanf(args[i].c_str(), "%d", &limit_output) != 1 ||
limit_output < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option LIMIT_OUTPUT value \""
<< args[i] << "\" is not an unsigned integer.";
this->SetError(e.str());
@@ -545,7 +545,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
int count;
if(sscanf(args[i].c_str(), "%d", &count) != 1 || count < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option LIMIT_COUNT value \""
<< args[i] << "\" is not an unsigned integer.";
this->SetError(e.str());
@@ -559,7 +559,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
int len;
if(sscanf(args[i].c_str(), "%d", &len) != 1 || len < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option LENGTH_MINIMUM value \""
<< args[i] << "\" is not an unsigned integer.";
this->SetError(e.str());
@@ -573,7 +573,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
int len;
if(sscanf(args[i].c_str(), "%d", &len) != 1 || len < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option LENGTH_MAXIMUM value \""
<< args[i] << "\" is not an unsigned integer.";
this->SetError(e.str());
@@ -586,7 +586,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
{
if(!regex.compile(args[i].c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option REGEX value \""
<< args[i] << "\" could not be compiled.";
this->SetError(e.str());
@@ -603,7 +603,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS option ENCODING \""
<< args[i] << "\" not recognized.";
this->SetError(e.str());
@@ -613,7 +613,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS given unknown argument \""
<< args[i] << "\"";
this->SetError(e.str());
@@ -641,7 +641,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
#endif
if(!fin)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "STRINGS file \"" << fileName << "\" cannot be read.";
this->SetError(e.str());
return false;
@@ -1037,7 +1037,7 @@ cmFileCommand::HandleDifferentCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "DIFFERENT given unknown argument " << args[i];
this->SetError(e.str());
return false;
@@ -1152,7 +1152,7 @@ protected:
{
if(permissions && !cmSystemTools::SetPermissions(toFile, permissions))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot set permissions on \"" << toFile << "\"";
this->FileCommand->SetError(e.str());
return false;
@@ -1176,7 +1176,7 @@ protected:
else if(arg == "SETGID") { permissions |= mode_setgid; }
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " given invalid permission \"" << arg << "\".";
this->FileCommand->SetError(e.str());
return false;
@@ -1203,7 +1203,7 @@ protected:
virtual bool ReportMissing(const char* fromFile)
{
// The input file does not exist and installation is not optional.
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot find \"" << fromFile << "\".";
this->FileCommand->SetError(e.str());
return false;
@@ -1236,14 +1236,14 @@ protected:
void NotBeforeMatch(std::string const& arg)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "option " << arg << " may not appear before PATTERN or REGEX.";
this->FileCommand->SetError(e.str());
this->Doing = DoingError;
}
void NotAfterMatch(std::string const& arg)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "option " << arg << " may not appear after PATTERN or REGEX.";
this->FileCommand->SetError(e.str());
this->Doing = DoingError;
@@ -1281,7 +1281,7 @@ bool cmFileCopier::Parse(std::vector<std::string> const& args)
if(!this->CheckKeyword(args[i]) &&
!this->CheckValue(args[i]))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with unknown argument \"" << args[i] << "\".";
this->FileCommand->SetError(e.str());
return false;
@@ -1297,7 +1297,7 @@ bool cmFileCopier::Parse(std::vector<std::string> const& args)
// Require a destination.
if(this->Destination.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " given no DESTINATION";
this->FileCommand->SetError(e.str());
return false;
@@ -1477,7 +1477,7 @@ bool cmFileCopier::CheckValue(std::string const& arg)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not compile PATTERN \"" << arg << "\".";
this->FileCommand->SetError(e.str());
this->Doing = DoingError;
@@ -1493,7 +1493,7 @@ bool cmFileCopier::CheckValue(std::string const& arg)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not compile REGEX \"" << arg << "\".";
this->FileCommand->SetError(e.str());
this->Doing = DoingError;
@@ -1573,7 +1573,7 @@ bool cmFileCopier::Install(const char* fromFile, const char* toFile)
{
if(!*fromFile)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL encountered an empty string input file name.";
this->FileCommand->SetError(e.str());
return false;
@@ -1614,7 +1614,7 @@ bool cmFileCopier::InstallSymlink(const char* fromFile, const char* toFile)
std::string symlinkTarget;
if(!cmSystemTools::ReadSymlink(fromFile, symlinkTarget))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot read symlink \"" << fromFile
<< "\" to duplicate at \"" << toFile << "\".";
this->FileCommand->SetError(e.str());
@@ -1647,7 +1647,7 @@ bool cmFileCopier::InstallSymlink(const char* fromFile, const char* toFile)
// Create the symlink.
if(!cmSystemTools::CreateSymlink(symlinkTarget, toFile))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot duplicate symlink \"" << fromFile
<< "\" at \"" << toFile << "\".";
this->FileCommand->SetError(e.str());
@@ -1679,7 +1679,7 @@ bool cmFileCopier::InstallFile(const char* fromFile, const char* toFile,
// Copy the file.
if(copy && !cmSystemTools::CopyAFile(fromFile, toFile, true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot copy file \"" << fromFile
<< "\" to \"" << toFile << "\".";
this->FileCommand->SetError(e.str());
@@ -1698,7 +1698,7 @@ bool cmFileCopier::InstallFile(const char* fromFile, const char* toFile,
}
if (!cmSystemTools::CopyFileTime(fromFile, toFile))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot set modification time on \""
<< toFile << "\"";
this->FileCommand->SetError(e.str());
@@ -1730,7 +1730,7 @@ bool cmFileCopier::InstallDirectory(const char* source,
// Make sure the destination directory exists.
if(!cmSystemTools::MakeDirectory(destination))
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Name << " cannot make directory \"" << destination << "\": "
<< cmSystemTools::GetLastSystemError();
this->FileCommand->SetError(e.str());
@@ -2075,7 +2075,7 @@ bool cmFileInstaller::CheckKeyword(std::string const& arg)
else if(arg == "COMPONENTS" || arg == "CONFIGURATIONS" ||
arg == "PROPERTIES")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL called with old-style " << arg << " argument. "
<< "This script was generated with an older version of CMake. "
<< "Re-run this cmake version on your build tree.";
@@ -2143,7 +2143,7 @@ bool cmFileInstaller
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Option TYPE given unknown value \"" << stype << "\".";
this->FileCommand->SetError(e.str());
return false;
@@ -2288,7 +2288,7 @@ cmFileCommand::HandleRPathChangeCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_CHANGE given unknown argument " << args[i];
this->SetError(e.str());
return false;
@@ -2311,7 +2311,7 @@ cmFileCommand::HandleRPathChangeCommand(std::vector<std::string> const& args)
}
if(!cmSystemTools::FileExists(file, true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_CHANGE given FILE \"" << file << "\" that does not exist.";
this->SetError(e.str());
return false;
@@ -2323,7 +2323,7 @@ cmFileCommand::HandleRPathChangeCommand(std::vector<std::string> const& args)
bool changed;
if(!cmSystemTools::ChangeRPath(file, oldRPath, newRPath, &emsg, &changed))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_CHANGE could not write new RPATH:\n"
<< " " << newRPath << "\n"
<< "to the file:\n"
@@ -2373,7 +2373,7 @@ cmFileCommand::HandleRPathRemoveCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_REMOVE given unknown argument " << args[i];
this->SetError(e.str());
return false;
@@ -2386,7 +2386,7 @@ cmFileCommand::HandleRPathRemoveCommand(std::vector<std::string> const& args)
}
if(!cmSystemTools::FileExists(file, true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_REMOVE given FILE \"" << file << "\" that does not exist.";
this->SetError(e.str());
return false;
@@ -2398,7 +2398,7 @@ cmFileCommand::HandleRPathRemoveCommand(std::vector<std::string> const& args)
bool removed;
if(!cmSystemTools::RemoveRPath(file, &emsg, &removed))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_REMOVE could not remove RPATH from file:\n"
<< " " << file << "\n"
<< emsg;
@@ -2454,7 +2454,7 @@ cmFileCommand::HandleRPathCheckCommand(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "RPATH_CHECK given unknown argument " << args[i];
this->SetError(e.str());
return false;
@@ -2555,7 +2555,7 @@ bool cmFileCommand::HandleRename(std::vector<std::string> const& args)
if(!cmSystemTools::RenameFile(oldname.c_str(), newname.c_str()))
{
std::string err = cmSystemTools::GetLastSystemError();
- cmOStringStream e;
+ std::ostringstream e;
e << "RENAME failed to rename\n"
<< " " << oldname << "\n"
<< "to\n"
@@ -2722,7 +2722,7 @@ namespace {
if (updated)
{
- cmOStringStream oss;
+ std::ostringstream oss;
oss << "[" << this->Text << " " << this->CurrentPercentage
<< "% complete]";
status = oss.str();
@@ -2994,7 +2994,7 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
msg += "\"";
if(statusVar.size())
{
- cmOStringStream result;
+ std::ostringstream result;
result << (int)0 << ";\"" << msg;
this->Makefile->AddDefinition(statusVar,
result.str().c_str());
@@ -3133,7 +3133,7 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
if(statusVar.size())
{
- cmOStringStream result;
+ std::ostringstream result;
result << (int)res << ";\"" << ::curl_easy_strerror(res) << "\"";
this->Makefile->AddDefinition(statusVar,
result.str().c_str());
@@ -3159,7 +3159,7 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
if (expectedHash != actualHash)
{
- cmOStringStream oss;
+ std::ostringstream oss;
oss << "DOWNLOAD HASH mismatch" << std::endl
<< " for file: [" << file << "]" << std::endl
<< " expected hash: [" << expectedHash << "]" << std::endl
@@ -3392,7 +3392,7 @@ cmFileCommand::HandleUploadCommand(std::vector<std::string> const& args)
if(statusVar.size())
{
- cmOStringStream result;
+ std::ostringstream result;
result << (int)res << ";\"" << ::curl_easy_strerror(res) << "\"";
this->Makefile->AddDefinition(statusVar,
result.str().c_str());
@@ -3568,7 +3568,7 @@ bool cmFileCommand::HandleLockCommand(
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << merr << ", but got:\n \"" << args[i] << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
@@ -3601,7 +3601,7 @@ bool cmFileCommand::HandleLockCommand(
if(!cmSystemTools::StringToLong(args[i].c_str(), &scanned)
|| scanned < 0)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TIMEOUT value \"" << args[i] << "\" is not an unsigned integer.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
@@ -3610,7 +3610,7 @@ bool cmFileCommand::HandleLockCommand(
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "expected DIRECTORY, RELEASE, GUARD, RESULT_VARIABLE or TIMEOUT\n";
e << "but got: \"" << args[i] << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -3635,7 +3635,7 @@ bool cmFileCommand::HandleLockCommand(
std::string parentDir = cmSystemTools::GetParentDirectory(path);
if (!cmSystemTools::MakeDirectory(parentDir))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "directory\n \"" << parentDir << "\"\ncreation failed ";
e << "(check permissions).";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -3645,7 +3645,7 @@ bool cmFileCommand::HandleLockCommand(
FILE *file = cmsys::SystemTools::Fopen(path, "w");
if (!file)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "file\n \"" << path << "\"\ncreation failed (check permissions).";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
cmSystemTools::SetFatalErrorOccured();
@@ -3685,7 +3685,7 @@ bool cmFileCommand::HandleLockCommand(
if (resultVariable.empty() && !fileLockResult.IsOk())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "error locking file\n \"" << path << "\"\n" << result << ".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
cmSystemTools::SetFatalErrorOccured();
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index beb6dde..013724e 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -184,10 +184,8 @@ bool cmFindBase::ParseArguments(std::vector<std::string> const& argsIn)
std::vector<std::string> shortArgs = this->Names;
this->Names.clear(); // clear out any values in Names
this->Names.push_back(shortArgs[0]);
- for(unsigned int j = 1; j < shortArgs.size(); ++j)
- {
- this->UserGuessArgs.push_back(shortArgs[j]);
- }
+ this->UserGuessArgs.insert(this->UserGuessArgs.end(),
+ shortArgs.begin() + 1, shortArgs.end());
}
this->ExpandPaths();
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index 8410cda..72737b7 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -80,15 +80,12 @@ void cmFindPackageCommand::AppendSearchPathGroups()
PathLabel::SystemRegistry);
// Create the new path objects
- this->LabeledPaths.insert(
- std::pair<cmFindCommon::PathLabel, cmSearchPath>(
- PathLabel::UserRegistry, cmSearchPath(this)));
- this->LabeledPaths.insert(
- std::pair<cmFindCommon::PathLabel, cmSearchPath>(
- PathLabel::Builds, cmSearchPath(this)));
- this->LabeledPaths.insert(
- std::pair<cmFindCommon::PathLabel, cmSearchPath>(
- PathLabel::SystemRegistry, cmSearchPath(this)));
+ this->LabeledPaths.insert(std::make_pair(PathLabel::UserRegistry,
+ cmSearchPath(this)));
+ this->LabeledPaths.insert(std::make_pair(PathLabel::Builds,
+ cmSearchPath(this)));
+ this->LabeledPaths.insert(std::make_pair(PathLabel::SystemRegistry,
+ cmSearchPath(this)));
}
//----------------------------------------------------------------------------
@@ -301,7 +298,7 @@ bool cmFindPackageCommand
if(args[i].find_first_of(":/\\") != args[i].npos ||
cmSystemTools::GetFilenameLastExtension(args[i]) != ".cmake")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given CONFIGS option followed by invalid file name \""
<< args[i] << "\". The names given must be file names without "
<< "a path and with a \".cmake\" extension.";
@@ -317,7 +314,7 @@ bool cmFindPackageCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with invalid argument \"" << args[i] << "\"";
this->SetError(e.str());
return false;
@@ -330,7 +327,7 @@ bool cmFindPackageCommand
std::back_inserter(doubledComponents));
if(!doubledComponents.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "called with components that are both required and optional:\n";
for(unsigned int i=0; i<doubledComponents.size(); ++i)
{
@@ -345,7 +342,7 @@ bool cmFindPackageCommand
this->UseConfigFiles = moduleArgs.empty();
if(!this->UseFindModules && !this->UseConfigFiles)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given options exclusive to Module mode:\n";
for(std::set<unsigned int>::const_iterator si = moduleArgs.begin();
si != moduleArgs.end(); ++si)
@@ -427,7 +424,7 @@ bool cmFindPackageCommand
{
if (this->Required)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "for module " << this->Name << " called with REQUIRED, but "
<< disableFindPackageVar
<< " is enabled. A REQUIRED package cannot be disabled.";
@@ -460,7 +457,7 @@ bool cmFindPackageCommand
if(this->UseFindModules && this->UseConfigFiles &&
this->Makefile->IsOn("CMAKE_FIND_PACKAGE_WARN_NO_MODULE"))
{
- cmOStringStream aw;
+ std::ostringstream aw;
if(this->RequiredCMakeVersion >= CMake_VERSION_ENCODE(2,8,8))
{
aw << "find_package called without either MODULE or CONFIG option and "
@@ -751,8 +748,8 @@ bool cmFindPackageCommand::HandlePackageMode()
if (result && !found && (!this->Quiet || this->Required))
{
// The variable is not set.
- cmOStringStream e;
- cmOStringStream aw;
+ std::ostringstream e;
+ std::ostringstream aw;
if (configFileSetFOUNDFalse)
{
e << "Found package configuration file:\n"
@@ -1470,7 +1467,7 @@ void cmFindPackageCommand::FillPrefixesBuilds()
// It is likely that CMake will have recently built the project.
for(int i=0; i <= 10; ++i)
{
- cmOStringStream r;
+ std::ostringstream r;
r <<
"[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\"
"Settings\\StartPath;WhereBuild" << i << "]";
diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx
index 03d6590..8e3510d 100644
--- a/Source/cmForEachCommand.cxx
+++ b/Source/cmForEachCommand.cxx
@@ -170,7 +170,7 @@ bool cmForEachCommand
step == 0
)
{
- cmOStringStream str;
+ std::ostringstream str;
str << "called with incorrect range specification: start ";
str << start << ", stop " << stop << ", step " << step;
this->SetError(str.str());
@@ -243,7 +243,7 @@ bool cmForEachCommand::HandleInMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Unknown argument:\n" << " " << args[i] << "\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return true;
diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx
index 3580374..b213e80 100644
--- a/Source/cmFunctionCommand.cxx
+++ b/Source/cmFunctionCommand.cxx
@@ -103,7 +103,7 @@ bool cmFunctionHelperCommand::InvokeInitialPass
cmMakefile::PolicyPushPop polScope(this->Makefile, true, this->Policies);
// set the value of argc
- cmOStringStream strStream;
+ std::ostringstream strStream;
strStream << expandedArgs.size();
this->Makefile->AddDefinition("ARGC",strStream.str().c_str());
this->Makefile->MarkVariableAsUsed("ARGC");
@@ -111,7 +111,7 @@ bool cmFunctionHelperCommand::InvokeInitialPass
// set the values for ARGV0 ARGV1 ...
for (unsigned int t = 0; t < expandedArgs.size(); ++t)
{
- cmOStringStream tmpStream;
+ std::ostringstream tmpStream;
tmpStream << "ARGV" << t;
this->Makefile->AddDefinition(tmpStream.str(),
expandedArgs[t].c_str());
@@ -271,11 +271,7 @@ bool cmFunctionCommand
// create a function blocker
cmFunctionFunctionBlocker *f = new cmFunctionFunctionBlocker();
- for(std::vector<std::string>::const_iterator j = args.begin();
- j != args.end(); ++j)
- {
- f->Args.push_back(*j);
- }
+ f->Args.insert(f->Args.end(), args.begin(), args.end());
this->Makefile->AddFunctionBlocker(f);
return true;
}
diff --git a/Source/cmGeneratedFileStream.h b/Source/cmGeneratedFileStream.h
index 7adee7b..2aa6beb 100644
--- a/Source/cmGeneratedFileStream.h
+++ b/Source/cmGeneratedFileStream.h
@@ -15,10 +15,6 @@
#include "cmStandardIncludes.h"
#include <cmsys/FStream.hxx>
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 1375 /* base class destructor not virtual */
-#endif
-
// This is the first base class of cmGeneratedFileStream. It will be
// created before and destroyed after the ofstream portion and can
// therefore be used to manage the temporary file.
@@ -146,8 +142,4 @@ private:
cmGeneratedFileStream(cmGeneratedFileStream const&); // not implemented
};
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma reset woff 1375 /* base class destructor not virtual */
-#endif
-
#endif
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx
index 75a84cb..c8b9949 100644
--- a/Source/cmGeneratorExpressionDAGChecker.cxx
+++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -66,9 +66,7 @@ cmGeneratorExpressionDAGChecker::Initialize()
if (it != top->Seen.end())
{
const std::set<std::string> &propSet = it->second;
- const std::set<std::string>::const_iterator i
- = propSet.find(this->Property);
- if (i != propSet.end())
+ if (propSet.find(this->Property) != propSet.end())
{
this->CheckResult = ALREADY_SEEN;
return;
@@ -106,7 +104,7 @@ void cmGeneratorExpressionDAGChecker::ReportError(
if (parent && !parent->Parent)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Error evaluating generator expression:\n"
<< " " << expr << "\n"
<< "Self reference on target \""
@@ -118,7 +116,7 @@ void cmGeneratorExpressionDAGChecker::ReportError(
}
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Error evaluating generator expression:\n"
<< " " << expr << "\n"
<< "Dependency loop found.";
@@ -130,7 +128,7 @@ void cmGeneratorExpressionDAGChecker::ReportError(
int loopStep = 1;
while (parent)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Loop step " << loopStep << "\n"
<< " "
<< (parent->Content ? parent->Content->GetOriginalExpression() : expr)
diff --git a/Source/cmGeneratorExpressionEvaluationFile.cxx b/Source/cmGeneratorExpressionEvaluationFile.cxx
index 03d0bc6..4e2a868 100644
--- a/Source/cmGeneratorExpressionEvaluationFile.cxx
+++ b/Source/cmGeneratorExpressionEvaluationFile.cxx
@@ -51,7 +51,7 @@ void cmGeneratorExpressionEvaluationFile::Generate(const std::string& config,
}
if (condResult != "1")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Evaluation file condition \"" << rawCondition << "\" did "
"not evaluate to valid content. Got \"" << condResult << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -73,7 +73,7 @@ void cmGeneratorExpressionEvaluationFile::Generate(const std::string& config,
{
return;
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Evaluation file to be written multiple times for different "
"configurations with different content:\n " << outputFileName;
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -123,7 +123,7 @@ void cmGeneratorExpressionEvaluationFile::Generate()
cmsys::ifstream fin(this->Input.c_str());
if(!fin)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Evaluation file \"" << this->Input << "\" cannot be read.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return;
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 7ddf4d0..2f17915 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -36,7 +36,7 @@ void reportError(cmGeneratorExpressionContext *context,
return;
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Error evaluating generator expression:\n"
<< " " << expr << "\n"
<< result;
@@ -456,7 +456,7 @@ struct CompilerIdNode : public cmGeneratorExpressionNode
{
case cmPolicies::WARN:
{
- cmOStringStream e;
+ std::ostringstream e;
e << context->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0044);
context->Makefile->GetCMakeInstance()
@@ -803,18 +803,9 @@ static const struct JoinNode : public cmGeneratorExpressionNode
const GeneratorExpressionContent *,
cmGeneratorExpressionDAGChecker *) const
{
- std::string result;
-
std::vector<std::string> list;
cmSystemTools::ExpandListArgument(parameters.front(), list);
- std::string sep;
- for(std::vector<std::string>::const_iterator li = list.begin();
- li != list.end(); ++li)
- {
- result += sep + *li;
- sep = parameters[1];
- }
- return result;
+ return cmJoin(list, parameters[1]);
}
} joinNode;
@@ -953,7 +944,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
if (!target)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \""
<< targetName
<< "\" not found.";
@@ -1253,7 +1244,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
{
if (!context->EvaluateForBuildsystem)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The evaluation of the TARGET_OBJECTS generator expression "
"is only suitable for consumption by CMake. It is not suitable "
"for writing out elsewhere.";
@@ -1266,7 +1257,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
context->Makefile->FindGeneratorTargetToUse(tgtName);
if (!gt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Objects of target \"" << tgtName
<< "\" referenced but no such target exists.";
reportError(context, content->GetOriginalExpression(), e.str());
@@ -1274,7 +1265,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
}
if (gt->GetType() != cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Objects of target \"" << tgtName
<< "\" referenced but is not an OBJECT library.";
reportError(context, content->GetOriginalExpression(), e.str());
@@ -2028,7 +2019,7 @@ std::string GeneratorExpressionContent::EvaluateParameters(
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "$<" + identifier + "> expression requires "
<< numExpected
<< " comma separated parameters, but got "
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 2b531e2..8d18c3a 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -31,7 +31,7 @@ void reportBadObjLib(std::vector<cmSourceFile*> const& badObjLib,
{
if(!badObjLib.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "OBJECT library \"" << target->GetName() << "\" contains:\n";
for(std::vector<cmSourceFile*>::const_iterator i = badObjLib.begin();
i != badObjLib.end(); ++i)
@@ -489,11 +489,7 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(const std::string& dir,
unique.insert(*li);
}
result.clear();
- for(std::set<std::string>::iterator li = unique.begin();
- li != unique.end(); ++li)
- {
- result.push_back(*li);
- }
+ result.insert(result.end(), unique.begin(), unique.end());
IncludeCacheType::value_type entry(config_upper, result);
iter = this->SystemIncludesCache.insert(entry).first;
@@ -630,7 +626,7 @@ cmTargetTraceDependencies
this->GlobalGenerator->GetFilenameTargetDepends(sf);
if (tgts.find(this->Target) != tgts.end())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Evaluation output file\n \"" << sf->GetFullPath()
<< "\"\ndepends on the sources of a target it is used in. This "
"is a dependency loop and is not allowed.";
@@ -822,11 +818,7 @@ cmTargetTraceDependencies
= ge.Parse(*cli);
cge->Evaluate(this->Makefile, "", true);
std::set<cmTarget*> geTargets = cge->GetTargets();
- for(std::set<cmTarget*>::const_iterator it = geTargets.begin();
- it != geTargets.end(); ++it)
- {
- targets.insert(*it);
- }
+ targets.insert(geTargets.begin(), geTargets.end());
}
}
diff --git a/Source/cmGetPropertyCommand.cxx b/Source/cmGetPropertyCommand.cxx
index 3c59c25..f0b2686 100644
--- a/Source/cmGetPropertyCommand.cxx
+++ b/Source/cmGetPropertyCommand.cxx
@@ -73,7 +73,7 @@ bool cmGetPropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid scope " << args[1] << ". "
<< "Valid scopes are "
<< "GLOBAL, DIRECTORY, TARGET, SOURCE, TEST, VARIABLE, CACHE, INSTALL.";
@@ -122,7 +122,7 @@ bool cmGetPropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid argument \"" << args[i] << "\".";
this->SetError(e.str());
return false;
@@ -312,7 +312,7 @@ bool cmGetPropertyCommand::HandleTargetMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not find TARGET " << this->Name
<< ". Perhaps it has not yet been created.";
this->SetError(e.str());
@@ -338,7 +338,7 @@ bool cmGetPropertyCommand::HandleSourceMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given SOURCE name that could not be found or created: "
<< this->Name;
this->SetError(e.str());
@@ -362,7 +362,7 @@ bool cmGetPropertyCommand::HandleTestMode()
}
// If not found it is an error.
- cmOStringStream e;
+ std::ostringstream e;
e << "given TEST name that does not exist: " << this->Name;
this->SetError(e.str());
return false;
@@ -423,7 +423,7 @@ bool cmGetPropertyCommand::HandleInstallMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given INSTALL name that could not be found or created: "
<< this->Name;
this->SetError(e.str());
diff --git a/Source/cmGetTargetPropertyCommand.cxx b/Source/cmGetTargetPropertyCommand.cxx
index aa6f0c1..eed19f4 100644
--- a/Source/cmGetTargetPropertyCommand.cxx
+++ b/Source/cmGetTargetPropertyCommand.cxx
@@ -23,6 +23,7 @@ bool cmGetTargetPropertyCommand
std::string var = args[0];
const std::string& targetName = args[1];
std::string prop;
+ bool prop_exists = false;
if(args[2] == "ALIASED_TARGET")
{
@@ -32,6 +33,7 @@ bool cmGetTargetPropertyCommand
this->Makefile->FindTargetToUse(targetName))
{
prop = target->GetName();
+ prop_exists = true;
}
}
}
@@ -42,12 +44,13 @@ bool cmGetTargetPropertyCommand
if(prop_cstr)
{
prop = prop_cstr;
+ prop_exists = true;
}
}
else
{
bool issueMessage = false;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0045))
{
@@ -74,7 +77,7 @@ bool cmGetTargetPropertyCommand
}
}
}
- if (!prop.empty())
+ if (prop_exists)
{
this->Makefile->AddDefinition(var, prop.c_str());
return true;
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index dd7fbc8..aee96dd 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -88,7 +88,7 @@ bool cmGlobalGenerator::SetGeneratorPlatform(std::string const& p,
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e <<
"Generator\n"
" " << this->GetName() << "\n"
@@ -109,7 +109,7 @@ bool cmGlobalGenerator::SetGeneratorToolset(std::string const& ts,
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e <<
"Generator\n"
" " << this->GetName() << "\n"
@@ -284,7 +284,7 @@ void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf)
if(!mf->GetDefinition("CMAKE_MAKE_PROGRAM")
|| cmSystemTools::IsOff(mf->GetDefinition("CMAKE_MAKE_PROGRAM")))
{
- cmOStringStream err;
+ std::ostringstream err;
err << "CMake was unable to find a build program corresponding to \""
<< this->GetName() << "\". CMAKE_MAKE_PROGRAM is not set. You "
<< "probably need to select a different build tool.";
@@ -405,7 +405,7 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
const char* lang = li->c_str();
if(this->LanguagesReady.find(lang) == this->LanguagesReady.end())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The test project needs language "
<< lang << " which is not enabled.";
this->TryCompileOuterMakefile
@@ -467,7 +467,7 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
#ifdef KWSYS_WINDOWS_DEPRECATED_GetVersionEx
# pragma warning (pop)
#endif
- cmOStringStream windowsVersionString;
+ std::ostringstream windowsVersionString;
windowsVersionString << osvi.dwMajorVersion << "." << osvi.dwMinorVersion;
windowsVersionString.str();
mf->AddDefinition("CMAKE_HOST_SYSTEM_VERSION",
@@ -660,7 +660,7 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
std::string compilerEnv = "CMAKE_";
compilerEnv += lang;
compilerEnv += "_COMPILER_ENV_VAR";
- cmOStringStream noCompiler;
+ std::ostringstream noCompiler;
const char* compilerFile = mf->GetDefinition(compilerName);
if(!compilerFile || !*compilerFile ||
cmSystemTools::IsNOTFOUND(compilerFile))
@@ -852,7 +852,7 @@ void cmGlobalGenerator::CheckCompilerIdCompatibility(cmMakefile* mf,
if(!this->CMakeInstance->GetIsInTryCompile() &&
mf->PolicyOptionalWarningEnabled("CMAKE_POLICY_WARNING_CMP0025"))
{
- cmOStringStream w;
+ std::ostringstream w;
w << policies->GetPolicyWarning(cmPolicies::CMP0025) << "\n"
"Converting " << lang <<
" compiler id \"AppleClang\" to \"Clang\" for compatibility."
@@ -884,7 +884,7 @@ void cmGlobalGenerator::CheckCompilerIdCompatibility(cmMakefile* mf,
if(!this->CMakeInstance->GetIsInTryCompile() &&
mf->PolicyOptionalWarningEnabled("CMAKE_POLICY_WARNING_CMP0047"))
{
- cmOStringStream w;
+ std::ostringstream w;
w << policies->GetPolicyWarning(cmPolicies::CMP0047) << "\n"
"Converting " << lang <<
" compiler id \"QCC\" to \"GNU\" for compatibility."
@@ -1147,7 +1147,7 @@ void cmGlobalGenerator::Configure()
if ( this->CMakeInstance->GetWorkingMode() == cmake::NORMAL_MODE)
{
- cmOStringStream msg;
+ std::ostringstream msg;
if(cmSystemTools::GetErrorOccuredFlag())
{
msg << "Configuring incomplete, errors occurred!";
@@ -1196,7 +1196,7 @@ bool cmGlobalGenerator::CheckALLOW_DUPLICATE_CUSTOM_TARGETS() const
}
// This generator does not support duplicate custom targets.
- cmOStringStream e;
+ std::ostringstream e;
e << "This project has enabled the ALLOW_DUPLICATE_CUSTOM_TARGETS "
<< "global property. "
<< "The \"" << this->GetName() << "\" generator does not support "
@@ -1346,7 +1346,7 @@ void cmGlobalGenerator::Generate()
if(!this->CMP0042WarnTargets.empty())
{
- cmOStringStream w;
+ std::ostringstream w;
w <<
(this->GetCMakeInstance()->GetPolicies()->
GetPolicyWarning(cmPolicies::CMP0042)) << "\n";
@@ -2331,7 +2331,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
cpackCommandLines.erase(cpackCommandLines.begin(),
cpackCommandLines.end());
depends.erase(depends.begin(), depends.end());
- cmOStringStream ostr;
+ std::ostringstream ostr;
if ( componentsSet->size() > 0 )
{
ostr << "Available install components are:";
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 6f0586b..3c07be1 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -71,7 +71,7 @@ std::string cmGlobalNinjaGenerator::EncodeIdent(const std::string &ident,
if (std::find_if(ident.begin(), ident.end(),
std::not1(std::ptr_fun(IsIdentChar))) != ident.end()) {
static unsigned VarNum = 0;
- cmOStringStream names;
+ std::ostringstream names;
names << "ident" << VarNum++;
vars << names.str() << " = " << ident << "\n";
return "$" + names.str();
@@ -191,7 +191,7 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
build += " " + rule;
// Write the variables bound to this build statement.
- cmOStringStream variable_assignments;
+ std::ostringstream variable_assignments;
for(cmNinjaVars::const_iterator i = variables.begin();
i != variables.end(); ++i)
cmGlobalNinjaGenerator::WriteVariable(variable_assignments,
@@ -295,7 +295,7 @@ cmGlobalNinjaGenerator::AddMacOSXContentRule()
cmLocalGenerator *lg = this->LocalGenerators[0];
cmMakefile* mfRoot = lg->GetMakefile();
- cmOStringStream cmd;
+ std::ostringstream cmd;
cmd << lg->ConvertToOutputFormat(
mfRoot->GetRequiredDefinition("CMAKE_COMMAND"),
cmLocalGenerator::SHELL)
@@ -1021,12 +1021,9 @@ void cmGlobalNinjaGenerator::WriteUnknownExplicitDependencies(std::ostream& os)
}
//insert outputs from all WirteBuild commands
- for(std::set<std::string>::iterator i = this->CombinedBuildOutputs.begin();
- i != this->CombinedBuildOutputs.end(); ++i)
- {
- //these paths have already be encoded when added to CombinedBuildOutputs
- knownDependencies.insert(*i);
- }
+ //these paths have already be encoded when added to CombinedBuildOutputs
+ knownDependencies.insert(this->CombinedBuildOutputs.begin(),
+ this->CombinedBuildOutputs.end());
//after we have combined the data into knownDependencies we have no need
//to keep this data around
@@ -1103,7 +1100,7 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
cmLocalGenerator *lg = this->LocalGenerators[0];
cmMakefile* mfRoot = lg->GetMakefile();
- cmOStringStream cmd;
+ std::ostringstream cmd;
cmd << lg->ConvertToOutputFormat(
mfRoot->GetRequiredDefinition("CMAKE_COMMAND"),
cmLocalGenerator::SHELL)
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx
index 3478534..1f08629 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator3.cxx
@@ -783,7 +783,7 @@ cmGlobalUnixMakefileGenerator3
lg->GetMakefile()->GetHomeOutputDirectory();
progressDir += cmake::GetCMakeFilesDirectory();
{
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
// all target counts
progCmd << lg->Convert(progressDir,
@@ -824,7 +824,7 @@ cmGlobalUnixMakefileGenerator3
{
// TODO: Convert the total progress count to a make variable.
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
// # in target
progCmd << lg->Convert(progressDir,
@@ -841,7 +841,7 @@ cmGlobalUnixMakefileGenerator3
commands.push_back(lg->GetRecursiveMakeCall
(tmp.c_str(),localName));
{
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0
progCmd << lg->Convert(progressDir,
cmLocalGenerator::FULL,
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 499ac56..531a714 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -156,7 +156,7 @@ cmGlobalVisualStudio10Generator::SetGeneratorToolset(std::string const& ts,
if (this->SystemIsWindowsCE && ts.empty() &&
this->DefaultPlatformToolset.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->GetName() << " Windows CE version '" << this->SystemVersion
<< "' requires CMAKE_GENERATOR_TOOLSET to be set.";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -202,7 +202,7 @@ bool cmGlobalVisualStudio10Generator::InitializeSystem(cmMakefile* mf)
{
if(this->DefaultPlatformName != "Win32")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "CMAKE_SYSTEM_NAME is 'Android' but CMAKE_GENERATOR "
<< "specifies a platform too: '" << this->GetName() << "'";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -231,7 +231,7 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile* mf)
{
if (this->DefaultPlatformName != "Win32")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "CMAKE_SYSTEM_NAME is 'WindowsCE' but CMAKE_GENERATOR "
<< "specifies a platform too: '" << this->GetName() << "'";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -246,7 +246,7 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile* mf)
//----------------------------------------------------------------------------
bool cmGlobalVisualStudio10Generator::InitializeWindowsPhone(cmMakefile* mf)
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->GetName() << " does not support Windows Phone.";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
@@ -255,7 +255,7 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsPhone(cmMakefile* mf)
//----------------------------------------------------------------------------
bool cmGlobalVisualStudio10Generator::InitializeWindowsStore(cmMakefile* mf)
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->GetName() << " does not support Windows Store.";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
@@ -320,7 +320,7 @@ void cmGlobalVisualStudio10Generator::Generate()
if(this->LongestSource.Length > 0)
{
cmMakefile* mf = this->LongestSource.Target->GetMakefile();
- cmOStringStream e;
+ std::ostringstream e;
e <<
"The binary and/or source directory paths may be too long to generate "
"Visual Studio 10 files for this project. "
@@ -574,7 +574,7 @@ bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf)
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\"
"Windows\\v7.1;InstallationFolder", winSDK_7_1))
{
- cmOStringStream m;
+ std::ostringstream m;
m << "Found Windows SDK v7.1: " << winSDK_7_1;
mf->DisplayStatus(m.str().c_str(), -1);
this->DefaultPlatformToolset = "Windows7.1SDK";
@@ -582,7 +582,7 @@ bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot enable 64-bit tools with Visual Studio 2010 Express.\n"
<< "Install the Microsoft Windows SDK v7.1 to get 64-bit tools:\n"
<< " http://msdn.microsoft.com/en-us/windows/bb980924.aspx";
diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx
index 2b69222..3013200 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -133,7 +133,7 @@ bool cmGlobalVisualStudio11Generator::InitializeWindowsPhone(cmMakefile* mf)
{
if(!this->SelectWindowsPhoneToolset(this->DefaultPlatformToolset))
{
- cmOStringStream e;
+ std::ostringstream e;
if(this->DefaultPlatformToolset.empty())
{
e << this->GetName() << " supports Windows Phone '8.0', but not '"
@@ -156,7 +156,7 @@ bool cmGlobalVisualStudio11Generator::InitializeWindowsStore(cmMakefile* mf)
{
if(!this->SelectWindowsStoreToolset(this->DefaultPlatformToolset))
{
- cmOStringStream e;
+ std::ostringstream e;
if(this->DefaultPlatformToolset.empty())
{
e << this->GetName() << " supports Windows Store '8.0', but not '"
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx
index 047f2ad..2bc9379 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -113,7 +113,7 @@ bool cmGlobalVisualStudio12Generator::InitializeWindowsPhone(cmMakefile* mf)
{
if(!this->SelectWindowsPhoneToolset(this->DefaultPlatformToolset))
{
- cmOStringStream e;
+ std::ostringstream e;
if(this->DefaultPlatformToolset.empty())
{
e << this->GetName() << " supports Windows Phone '8.0' and '8.1', but "
@@ -136,7 +136,7 @@ bool cmGlobalVisualStudio12Generator::InitializeWindowsStore(cmMakefile* mf)
{
if(!this->SelectWindowsStoreToolset(this->DefaultPlatformToolset))
{
- cmOStringStream e;
+ std::ostringstream e;
if(this->DefaultPlatformToolset.empty())
{
e << this->GetName() << " supports Windows Store '8.0' and '8.1', but "
diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx
index a67a649..64f9cee 100644
--- a/Source/cmGlobalVisualStudio71Generator.cxx
+++ b/Source/cmGlobalVisualStudio71Generator.cxx
@@ -93,6 +93,11 @@ void cmGlobalVisualStudio71Generator
cmLocalGenerator* root,
std::vector<cmLocalGenerator*>& generators)
{
+#ifdef CMAKE_ENCODING_UTF8
+ // Add UTF-8 BOM for .sln file to indicate encoding
+ const unsigned char utf8_bom[3] = {0xEF,0xBB,0xBF};
+ fout.write(reinterpret_cast<const char*>(utf8_bom), 3);
+#endif
// Write out the header for a SLN file
this->WriteSLNHeader(fout);
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 401e475..0eb7d2c 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -558,6 +558,11 @@ void cmGlobalVisualStudio7Generator
cmLocalGenerator* root,
std::vector<cmLocalGenerator*>& generators)
{
+#ifdef CMAKE_ENCODING_UTF8
+ // Add UTF-8 BOM for .sln file to indicate encoding
+ const unsigned char utf8_bom[3] = {0xEF,0xBB,0xBF};
+ fout.write(reinterpret_cast<const char*>(utf8_bom), 3);
+#endif
// Write out the header for a SLN file
this->WriteSLNHeader(fout);
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index 2dab23c..320a1f4 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -845,22 +845,14 @@ cmGlobalVisualStudioGenerator::TargetCompare
cmGlobalVisualStudioGenerator::OrderedTargetDependSet
::OrderedTargetDependSet(TargetDependSet const& targets)
{
- for(TargetDependSet::const_iterator ti =
- targets.begin(); ti != targets.end(); ++ti)
- {
- this->insert(*ti);
- }
+ this->insert(targets.begin(), targets.end());
}
//----------------------------------------------------------------------------
cmGlobalVisualStudioGenerator::OrderedTargetDependSet
::OrderedTargetDependSet(TargetSet const& targets)
{
- for(TargetSet::const_iterator ti = targets.begin();
- ti != targets.end(); ++ti)
- {
- this->insert(*ti);
- }
+ this->insert(targets.begin(), targets.end());
}
std::string cmGlobalVisualStudioGenerator::ExpandCFGIntDir(
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 6a480a9..8831a8b 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1170,7 +1170,7 @@ cmGlobalXCodeGenerator::CreateXCodeTargets(cmLocalGenerator* gen,
this->CreateString("2147483647"));
copyFilesBuildPhase->AddAttribute("dstSubfolderSpec",
this->CreateString("6"));
- cmOStringStream ostr;
+ std::ostringstream ostr;
if (cmtarget.IsFrameworkOnApple())
{
// dstPath in frameworks is relative to Versions/<version>
@@ -1581,7 +1581,7 @@ void cmGlobalXCodeGenerator
}
else
{
- cmOStringStream str;
+ std::ostringstream str;
str << "_buildpart_" << count++ ;
tname[&ccg.GetCC()] = std::string(target.GetName()) + str.str();
makefileStream << "\\\n\t" << tname[&ccg.GetCC()];
@@ -2299,7 +2299,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
// VERSION -> current_version
target.GetTargetVersion(false, major, minor, patch);
- cmOStringStream v;
+ std::ostringstream v;
// Xcode always wants at least 1.0.0 or nothing
if(!(major == 0 && minor == 0 && patch == 0))
@@ -2311,7 +2311,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
// SOVERSION -> compatibility_version
target.GetTargetVersion(true, major, minor, patch);
- cmOStringStream vso;
+ std::ostringstream vso;
// Xcode always wants at least 1.0.0 or nothing
if(!(major == 0 && minor == 0 && patch == 0))
diff --git a/Source/cmGraphVizWriter.cxx b/Source/cmGraphVizWriter.cxx
index 601993f..11a5466 100644
--- a/Source/cmGraphVizWriter.cxx
+++ b/Source/cmGraphVizWriter.cxx
@@ -497,7 +497,7 @@ int cmGraphVizWriter::CollectAllTargets()
continue;
}
//std::cout << "Found target: " << tit->first.c_str() << std::endl;
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << this->GraphNodePrefix << cnt++;
this->TargetNamesNodes[realTargetName] = ostr.str();
this->TargetPtrs[realTargetName] = &tit->second;
@@ -544,7 +544,7 @@ int cmGraphVizWriter::CollectAllExternalLibs(int cnt)
this->TargetPtrs.find(libName);
if ( tarIt == this->TargetPtrs.end() )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << this->GraphNodePrefix << cnt++;
this->TargetNamesNodes[libName] = ostr.str();
this->TargetPtrs[libName] = NULL;
diff --git a/Source/cmIncludeCommand.cxx b/Source/cmIncludeCommand.cxx
index 0a1d280..9d44db1 100644
--- a/Source/cmIncludeCommand.cxx
+++ b/Source/cmIncludeCommand.cxx
@@ -98,7 +98,7 @@ bool cmIncludeCommand
if (gg->IsExportedTargetsFile(fname_abs))
{
const char *modal = 0;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0024))
diff --git a/Source/cmIncludeDirectoryCommand.cxx b/Source/cmIncludeDirectoryCommand.cxx
index df5508e..f37d8bc 100644
--- a/Source/cmIncludeDirectoryCommand.cxx
+++ b/Source/cmIncludeDirectoryCommand.cxx
@@ -71,11 +71,7 @@ bool cmIncludeDirectoryCommand
}
if (system)
{
- for (std::vector<std::string>::const_iterator li = includes.begin();
- li != includes.end(); ++li)
- {
- systemIncludes.insert(*li);
- }
+ systemIncludes.insert(includes.begin(), includes.end());
}
}
std::reverse(beforeIncludes.begin(), beforeIncludes.end());
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index c3c9c55..2d7d7cc 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -273,7 +273,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
if(!unknownArgs.empty())
{
// Unknown argument.
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given unknown argument \"" << unknownArgs[0] << "\".";
this->SetError(e.str());
return false;
@@ -373,7 +373,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
if (this->Makefile->IsAlias(*targetIt))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given target \"" << (*targetIt)
<< "\" which is an alias.";
this->SetError(e.str());
@@ -390,7 +390,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
target->GetType() != cmTarget::OBJECT_LIBRARY &&
target->GetType() != cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given target \"" << (*targetIt)
<< "\" which is not an executable, library, or module.";
this->SetError(e.str());
@@ -398,7 +398,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else if(target->GetType() == cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given OBJECT library \"" << (*targetIt)
<< "\" which may not be installed.";
this->SetError(e.str());
@@ -410,7 +410,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
else
{
// Did not find the target.
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given target \"" << (*targetIt)
<< "\" which does not exist in this directory.";
this->SetError(e.str());
@@ -502,7 +502,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no FRAMEWORK DESTINATION for shared library "
"FRAMEWORK target \"" << target.GetName() << "\".";
this->SetError(e.str());
@@ -522,7 +522,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no LIBRARY DESTINATION for shared library "
"target \"" << target.GetName() << "\".";
this->SetError(e.str());
@@ -542,7 +542,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no ARCHIVE DESTINATION for static library "
"target \"" << target.GetName() << "\".";
this->SetError(e.str());
@@ -563,7 +563,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no LIBRARY DESTINATION for module target \""
<< target.GetName() << "\".";
this->SetError(e.str());
@@ -598,7 +598,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
if(!bundleGenerator)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE "
"executable target \"" << target.GetName() << "\".";
this->SetError(e.str());
@@ -615,7 +615,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "TARGETS given no RUNTIME DESTINATION for executable "
"target \"" << target.GetName() << "\".";
this->SetError(e.str());
@@ -681,7 +681,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL TARGETS - target " << target.GetName() << " has "
<< "PRIVATE_HEADER files but no PRIVATE_HEADER DESTINATION.";
cmSystemTools::Message(e.str().c_str(), "Warning");
@@ -708,7 +708,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL TARGETS - target " << target.GetName() << " has "
<< "PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION.";
cmSystemTools::Message(e.str().c_str(), "Warning");
@@ -734,7 +734,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL TARGETS - target " << target.GetName() << " has "
<< "RESOURCE files but no RESOURCE DESTINATION.";
cmSystemTools::Message(e.str().c_str(), "Warning");
@@ -777,19 +777,8 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
->GetExportSets()[exports.GetString()]->AddTargetExport(te);
- std::vector<std::string> dirs = includesArgs.GetIncludeDirs();
- if(!dirs.empty())
- {
- std::string dirString;
- const char *sep = "";
- for (std::vector<std::string>::const_iterator it = dirs.begin();
- it != dirs.end(); ++it)
- {
- te->InterfaceIncludeDirectories += sep;
- te->InterfaceIncludeDirectories += *it;
- sep = ";";
- }
- }
+ te->InterfaceIncludeDirectories =
+ cmJoin(includesArgs.GetIncludeDirs(), ";");
}
}
@@ -855,7 +844,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
if(!unknownArgs.empty())
{
// Unknown argument.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given unknown argument \"" << unknownArgs[0] << "\".";
this->SetError(e.str());
return false;
@@ -870,7 +859,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
if(!ica.GetRename().empty() && files.GetVector().size() > 1)
{
// The rename option works only with one file.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given RENAME option with more than one file.";
this->SetError(e.str());
return false;
@@ -890,7 +879,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
if(ica.GetDestination().empty())
{
// A destination is required.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given no DESTINATION!";
this->SetError(e.str());
return false;
@@ -931,7 +920,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -945,7 +934,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -960,7 +949,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -988,7 +977,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
// Add this property to the current match rule.
if(!in_match_mode || doing == DoingPattern || doing == DoingRegex)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" before a PATTERN or REGEX is given.";
this->SetError(e.str());
@@ -1001,7 +990,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(!in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" before a PATTERN or REGEX is given.";
this->SetError(e.str());
@@ -1016,7 +1005,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1030,7 +1019,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1044,7 +1033,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1059,7 +1048,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1074,7 +1063,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1088,7 +1077,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
{
if(in_match_mode)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " does not allow \""
<< args[i] << "\" after PATTERN or REGEX.";
this->SetError(e.str());
@@ -1113,7 +1102,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
if(cmSystemTools::FileExists(dir.c_str()) &&
!cmSystemTools::FileIsDirectory(dir))
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given non-directory \""
<< args[i] << "\" to install.";
this->SetError(e.str());
@@ -1169,7 +1158,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
// Check the requested permission.
if(!cmInstallCommandArguments::CheckPermissions(args[i],permissions_file))
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given invalid file permission \""
<< args[i] << "\".";
this->SetError(e.str());
@@ -1181,7 +1170,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
// Check the requested permission.
if(!cmInstallCommandArguments::CheckPermissions(args[i],permissions_dir))
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given invalid directory permission \""
<< args[i] << "\".";
this->SetError(e.str());
@@ -1193,7 +1182,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
// Check the requested permission.
if(!cmInstallCommandArguments::CheckPermissions(args[i], literal_args))
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given invalid permission \""
<< args[i] << "\".";
this->SetError(e.str());
@@ -1203,7 +1192,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
else
{
// Unknown argument.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given unknown argument \"" << args[i] << "\".";
this->SetError(e.str());
return false;
@@ -1224,7 +1213,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
if(!destination)
{
// A destination is required.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given no DESTINATION!";
this->SetError(e.str());
return false;
@@ -1271,7 +1260,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
if (!unknownArgs.empty())
{
// Unknown argument.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given unknown argument \"" << unknownArgs[0] << "\".";
this->SetError(e.str());
return false;
@@ -1286,7 +1275,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
if(ica.GetDestination().empty())
{
// A destination is required.
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given no DESTINATION!";
this->SetError(e.str());
return false;
@@ -1296,7 +1285,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
std::string fname = filename.GetString();
if(fname.find_first_of(":/\\") != fname.npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given invalid export file name \"" << fname << "\". "
<< "The FILE argument may not contain a path. "
<< "Specify the path in the DESTINATION argument.";
@@ -1308,7 +1297,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
if(!fname.empty() &&
cmSystemTools::GetFilenameLastExtension(fname) != ".cmake")
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given invalid export file name \"" << fname << "\". "
<< "The FILE argument must specify a name ending in \".cmake\".";
this->SetError(e.str());
@@ -1323,7 +1312,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
if(fname.find_first_of(":/\\") != fname.npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " given export name \"" << exp.GetString() << "\". "
<< "This name cannot be safely converted to a file name. "
<< "Specify a different export name or use the FILE option to set "
@@ -1348,7 +1337,7 @@ bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
if(!newCMP0022Behavior)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL(EXPORT) given keyword \""
<< "EXPORT_LINK_INTERFACE_LIBRARIES" << "\", but target \""
<< te->Target->GetName()
@@ -1395,7 +1384,7 @@ bool cmInstallCommand::MakeFilesFullPath(const char* modeName,
// Make sure the file is not a directory.
if(gpos == file.npos && cmSystemTools::FileIsDirectory(file))
{
- cmOStringStream e;
+ std::ostringstream e;
e << modeName << " given directory \"" << (*fileIt) << "\" to install.";
this->SetError(e.str());
return false;
diff --git a/Source/cmInstallExportGenerator.cxx b/Source/cmInstallExportGenerator.cxx
index ddfd6c5..4480cc6 100644
--- a/Source/cmInstallExportGenerator.cxx
+++ b/Source/cmInstallExportGenerator.cxx
@@ -121,7 +121,7 @@ void cmInstallExportGenerator::GenerateScript(std::ostream& os)
// Skip empty sets.
if(ExportSet->GetTargetExports()->empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INSTALL(EXPORT) given unknown export \""
<< ExportSet->GetName() << "\"";
cmSystemTools::Error(e.str().c_str());
diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx
index f106e1a..a007693 100644
--- a/Source/cmInstallFilesCommand.cxx
+++ b/Source/cmInstallFilesCommand.cxx
@@ -47,11 +47,8 @@ bool cmInstallFilesCommand
else
{
this->IsFilesForm = false;
- std::vector<std::string>::const_iterator s = args.begin();
- for (++s;s != args.end(); ++s)
- {
- this->FinalArgs.push_back(*s);
- }
+ this->FinalArgs.insert(this->FinalArgs.end(),
+ args.begin() + 1, args.end());
}
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx
index 0405769..cc223ab 100644
--- a/Source/cmInstallProgramsCommand.cxx
+++ b/Source/cmInstallProgramsCommand.cxx
@@ -27,11 +27,7 @@ bool cmInstallProgramsCommand
this->Destination = args[0];
- std::vector<std::string>::const_iterator s = args.begin();
- for (++s;s != args.end(); ++s)
- {
- this->FinalArgs.push_back(*s);
- }
+ this->FinalArgs.insert(this->FinalArgs.end(), args.begin() + 1, args.end());
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
->AddInstallComponent(this->Makefile->GetSafeDefinition(
diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx
index bb346fb..8701b73 100644
--- a/Source/cmInstallTargetGenerator.cxx
+++ b/Source/cmInstallTargetGenerator.cxx
@@ -47,7 +47,7 @@ void cmInstallTargetGenerator::GenerateScript(std::ostream& os)
// Warn if installing an exclude-from-all target.
if(this->Target->GetPropertyAsBool("EXCLUDE_FROM_ALL"))
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "WARNING: Target \"" << this->Target->GetName()
<< "\" has EXCLUDE_FROM_ALL set and will not be built by default "
<< "but an install rule has been provided for it. CMake does "
@@ -424,7 +424,7 @@ cmInstallTargetGenerator
::AddTweak(std::ostream& os, Indent const& indent, const std::string& config,
std::string const& file, TweakMethod tweak)
{
- cmOStringStream tw;
+ std::ostringstream tw;
(this->*tweak)(tw, indent.Next(), config, file);
std::string tws = tw.str();
if(!tws.empty())
@@ -450,7 +450,7 @@ cmInstallTargetGenerator
else
{
// Generate a foreach loop to tweak multiple files.
- cmOStringStream tw;
+ std::ostringstream tw;
this->AddTweak(tw, indent.Next(), config, "${file}", tweak);
std::string tws = tw.str();
if(!tws.empty())
@@ -699,7 +699,7 @@ cmInstallTargetGenerator
(!oldRuntimeDirs.empty() || !newRuntimeDirs.empty())
)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "WARNING: Target \"" << this->Target->GetName()
<< "\" has runtime paths which cannot be changed during install. "
<< "To change runtime paths, OS X version 10.6 or newer is required. "
diff --git a/Source/cmLinkDirectoriesCommand.cxx b/Source/cmLinkDirectoriesCommand.cxx
index 3644d93..ade1feb 100644
--- a/Source/cmLinkDirectoriesCommand.cxx
+++ b/Source/cmLinkDirectoriesCommand.cxx
@@ -36,7 +36,7 @@ void cmLinkDirectoriesCommand::AddLinkDir(std::string const& dir)
if(!cmSystemTools::FileIsFullPath(unixPath.c_str()))
{
bool convertToAbsolute = false;
- cmOStringStream e;
+ std::ostringstream e;
e << "This command specifies the relative path\n"
<< " " << unixPath << "\n"
<< "as a link directory.\n";
diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx
index f1ea088..c3f0f57 100644
--- a/Source/cmListCommand.cxx
+++ b/Source/cmListCommand.cxx
@@ -225,7 +225,7 @@ bool cmListCommand::HandleGetCommand(std::vector<std::string> const& args)
}
if ( item < 0 || nitem <= (size_t)item )
{
- cmOStringStream str;
+ std::ostringstream str;
str << "index: " << item << " out of range (-"
<< varArgsExpanded.size() << ", "
<< varArgsExpanded.size()-1 << ")";
@@ -322,7 +322,7 @@ bool cmListCommand::HandleInsertCommand(std::vector<std::string> const& args)
if((!this->GetList(varArgsExpanded, listName)
|| varArgsExpanded.empty()) && item != 0)
{
- cmOStringStream str;
+ std::ostringstream str;
str << "index: " << item << " out of range (0, 0)";
this->SetError(str.str());
return false;
@@ -337,7 +337,7 @@ bool cmListCommand::HandleInsertCommand(std::vector<std::string> const& args)
}
if ( item < 0 || nitem <= (size_t)item )
{
- cmOStringStream str;
+ std::ostringstream str;
str << "index: " << item << " out of range (-"
<< varArgsExpanded.size() << ", "
<< (varArgsExpanded.size() == 0?0:(varArgsExpanded.size()-1)) << ")";
@@ -353,15 +353,7 @@ bool cmListCommand::HandleInsertCommand(std::vector<std::string> const& args)
cnt ++;
}
- std::string value;
- const char* sep = "";
- for ( cc = 0; cc < varArgsExpanded.size(); cc ++ )
- {
- value += sep;
- value += varArgsExpanded[cc];
- sep = ";";
- }
-
+ std::string value = cmJoin(varArgsExpanded, ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
}
@@ -402,15 +394,8 @@ bool cmListCommand
}
}
- std::string value;
- const char* sep = "";
- for ( cc = 0; cc < varArgsExpanded.size(); cc ++ )
- {
- value += sep;
- value += varArgsExpanded[cc];
- sep = ";";
- }
+ std::string value = cmJoin(varArgsExpanded, ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
}
@@ -518,16 +503,7 @@ bool cmListCommand
std::sort(varArgsExpanded.begin(), varArgsExpanded.end());
- std::string value;
- std::vector<std::string>::iterator it;
- const char* sep = "";
- for ( it = varArgsExpanded.begin(); it != varArgsExpanded.end(); ++ it )
- {
- value += sep;
- value += it->c_str();
- sep = ";";
- }
-
+ std::string value = cmJoin(varArgsExpanded, ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
}
@@ -570,7 +546,7 @@ bool cmListCommand::HandleRemoveAtCommand(
}
if ( item < 0 || nitem <= (size_t)item )
{
- cmOStringStream str;
+ std::ostringstream str;
str << "index: " << item << " out of range (-"
<< varArgsExpanded.size() << ", "
<< varArgsExpanded.size()-1 << ")";
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index 1c39563..3e26349 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -68,7 +68,7 @@ bool cmListFileParser::ParseFile()
bom != cmListFileLexer_BOM_UTF8)
{
cmListFileLexer_SetFileName(this->Lexer, 0, 0);
- cmOStringStream m;
+ std::ostringstream m;
m << "File\n " << this->FileName << "\n"
<< "starts with a Byte-Order-Mark that is not UTF-8.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, m.str());
@@ -108,7 +108,7 @@ bool cmListFileParser::ParseFile()
}
else
{
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n"
<< this->FileName << ":" << token->line << ":\n"
<< "Parse error. Expected a newline, got "
@@ -120,7 +120,7 @@ bool cmListFileParser::ParseFile()
}
else
{
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n"
<< this->FileName << ":" << token->line << ":\n"
<< "Parse error. Expected a command name, got "
@@ -268,7 +268,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
token->type == cmListFileLexer_Token_Space) {}
if(!token)
{
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n" << this->FileName << ":"
<< cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n"
<< "Parse error. Function missing opening \"(\".";
@@ -277,7 +277,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
}
if(token->type != cmListFileLexer_Token_ParenLeft)
{
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n" << this->FileName << ":"
<< cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n"
<< "Parse error. Expected \"(\", got "
@@ -355,7 +355,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
else
{
// Error.
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n" << this->FileName << ":"
<< cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n"
<< "Parse error. Function missing ending \")\". "
@@ -367,7 +367,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
}
}
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n"
<< this->FileName << ":" << lastLine << ":\n"
<< "Parse error. Function missing ending \")\". "
@@ -389,7 +389,7 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token,
}
bool isError = (this->Separation == SeparationError ||
delim == cmListFileArgument::Bracket);
- cmOStringStream m;
+ std::ostringstream m;
m << "Syntax " << (isError? "Error":"Warning") << " in cmake code at\n"
<< " " << this->FileName << ":" << token->line << ":"
<< token->column << "\n"
diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx
index a4063a6..cdfd00c 100644
--- a/Source/cmLoadCommandCommand.cxx
+++ b/Source/cmLoadCommandCommand.cxx
@@ -226,7 +226,7 @@ bool cmLoadCommandCommand
std::string fullPath = cmSystemTools::FindFile(moduleName.c_str(), path);
if (fullPath == "")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Attempt to load command failed from file \""
<< moduleName << "\"";
this->SetError(e.str());
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 2de6c93..7b54b88 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -153,7 +153,7 @@ void cmLocalGenerator::ComputeObjectMaxPath()
}
else
{
- cmOStringStream w;
+ std::ostringstream w;
w << "CMAKE_OBJECT_PATH_MAX is set to " << pmax
<< ", which is less than the minimum of 128. "
<< "The value will be ignored.";
@@ -162,7 +162,7 @@ void cmLocalGenerator::ComputeObjectMaxPath()
}
else
{
- cmOStringStream w;
+ std::ostringstream w;
w << "CMAKE_OBJECT_PATH_MAX is set to \"" << plen
<< "\", which fails to parse as a positive integer. "
<< "The value will be ignored.";
@@ -191,7 +191,7 @@ void cmLocalGenerator::ReadInputFile()
// The file is missing. Check policy CMP0014.
cmMakefile* mf = this->Parent->GetMakefile();
- cmOStringStream e;
+ std::ostringstream e;
e << "The source directory\n"
<< " " << this->Makefile->GetStartDirectory() << "\n"
<< "does not contain a CMakeLists.txt file.";
@@ -634,11 +634,7 @@ void cmLocalGenerator::AddCustomCommandToCreateObject(const char* ofname,
// Parse the string to get the custom command line.
cmCustomCommandLine commandLine;
std::vector<std::string> cmd = cmSystemTools::ParseArguments(i->c_str());
- for(std::vector<std::string>::iterator a = cmd.begin();
- a != cmd.end(); ++a)
- {
- commandLine.push_back(*a);
- }
+ commandLine.insert(commandLine.end(), cmd.begin(), cmd.end());
// Store this command line.
commandLines.push_back(commandLine);
@@ -745,11 +741,7 @@ void cmLocalGenerator::AddBuildTargetRule(const std::string& llang,
// Parse the string to get the custom command line.
cmCustomCommandLine commandLine;
std::vector<std::string> cmd = cmSystemTools::ParseArguments(i->c_str());
- for(std::vector<std::string>::iterator a = cmd.begin();
- a != cmd.end(); ++a)
- {
- commandLine.push_back(*a);
- }
+ commandLine.insert(commandLine.end(), cmd.begin(), cmd.end());
// Store this command line.
commandLines.push_back(commandLine);
@@ -1245,7 +1237,7 @@ void cmLocalGenerator::InsertRuleLauncher(std::string& s, cmTarget* target,
{
if(const char* val = this->GetRuleLauncher(target, prop))
{
- cmOStringStream wrapped;
+ std::ostringstream wrapped;
wrapped << val << " " << s;
s = wrapped.str();
}
@@ -1326,7 +1318,7 @@ std::string cmLocalGenerator::GetIncludeFlags(
}
OutputFormat shellFormat = forResponseFile? RESPONSE : SHELL;
- cmOStringStream includeFlags;
+ std::ostringstream includeFlags;
std::string flagVar = "CMAKE_INCLUDE_FLAG_";
flagVar += lang;
@@ -1521,7 +1513,7 @@ void cmLocalGenerator::AddCompileOptions(
}
if (this->Makefile->IsLaterStandard(it->first, standard, it->second))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The COMPILE_FEATURES property of target \""
<< target->GetName() << "\" was evaluated when computing the link "
"implementation, and the \"" << it->first << "_STANDARD\" was \""
@@ -1880,7 +1872,7 @@ void cmLocalGenerator::OutputLinkLibraries(std::string& linkLibraries,
OutputFormat shellFormat = (forResponseFile) ? RESPONSE :
((useWatcomQuote) ? WATCOMQUOTE : SHELL);
bool escapeAllowMakeVars = !forResponseFile;
- cmOStringStream fout;
+ std::ostringstream fout;
std::string config = this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
cmComputeLinkInformation* pcli = tgt.Target->GetLinkInformation(config);
if(!pcli)
@@ -2242,7 +2234,7 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
const char *opt = target->GetMakefile()->GetDefinition(option_flag);
if (!opt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << target->GetName() << "\" requires the language "
"dialect \"" << lang << standardProp << "\" "
<< (ext ? "(with compiler extensions)" : "") << ", but CMake "
@@ -2327,7 +2319,7 @@ static void AddVisibilityCompileOption(std::string &flags, cmTarget* target,
&& strcmp(prop, "protected") != 0
&& strcmp(prop, "internal") != 0 )
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target " << target->GetName() << " uses unsupported value \""
<< prop << "\" for " << flagDefine << ".";
cmSystemTools::Error(e.str().c_str());
@@ -2442,7 +2434,7 @@ bool cmLocalGenerator::GetShouldUseOldFlags(bool shared,
{
case cmPolicies::WARN:
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Variable " << flagsVar << " has been modified. CMake "
"will ignore the POSITION_INDEPENDENT_CODE target property for "
"shared libraries and will use the " << flagsVar << " variable "
@@ -3251,7 +3243,7 @@ cmLocalGenerator
// Warn if this is the first time the path has been seen.
if(this->ObjectMaxPathViolations.insert(dir_max).second)
{
- cmOStringStream m;
+ std::ostringstream m;
m << "The object file directory\n"
<< " " << dir_max << "\n"
<< "has " << dir_max.size() << " characters. "
@@ -3649,7 +3641,7 @@ bool cmLocalGenerator::CheckDefinition(std::string const& define) const
}
if(function_style)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "WARNING: Function-style preprocessor definitions may not be "
<< "passed on the compiler command line because many compilers "
<< "do not support it.\n"
@@ -3662,7 +3654,7 @@ bool cmLocalGenerator::CheckDefinition(std::string const& define) const
// Many compilers do not support # in the value so we disable it.
if(define.find_first_of("#") != define.npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "WARNING: Preprocessor definitions containing '#' may not be "
<< "passed on the compiler command line because many compilers "
<< "do not support it.\n"
@@ -3704,7 +3696,7 @@ void cmLocalGenerator::GenerateAppleInfoPList(cmTarget* target,
}
if(!cmSystemTools::FileExists(inFile.c_str(), true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target " << target->GetName() << " Info.plist template \""
<< inFile << "\" could not be found.";
cmSystemTools::Error(e.str().c_str());
@@ -3748,7 +3740,7 @@ void cmLocalGenerator::GenerateFrameworkInfoPList(cmTarget* target,
}
if(!cmSystemTools::FileExists(inFile.c_str(), true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target " << target->GetName() << " Info.plist template \""
<< inFile << "\" could not be found.";
cmSystemTools::Error(e.str().c_str());
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index 0b0d971..413dc0f 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -369,7 +369,7 @@ std::string cmLocalNinjaGenerator::BuildCommandLine(
return ":";
#endif
- cmOStringStream cmd;
+ std::ostringstream cmd;
for (std::vector<std::string>::const_iterator li = cmdLines.begin();
li != cmdLines.end(); ++li)
#ifdef _WIN32
@@ -409,7 +409,7 @@ void cmLocalNinjaGenerator::AppendCustomCommandLines(
if (wd.empty())
wd = this->GetMakefile()->GetStartOutputDirectory();
- cmOStringStream cdCmd;
+ std::ostringstream cdCmd;
#ifdef _WIN32
std::string cdStr = "cd /D ";
#else
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 812ded3..ebaee37 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1554,7 +1554,7 @@ bool cmLocalUnixMakefileGenerator3::UpdateDependencies(const char* tgtInfo,
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Dependee \"" << tgtInfo
<< "\" is newer than depender \""
<< internalDependFile << "\"." << std::endl;
@@ -1577,7 +1577,7 @@ bool cmLocalUnixMakefileGenerator3::UpdateDependencies(const char* tgtInfo,
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Dependee \"" << dirInfoFile
<< "\" is newer than depender \""
<< internalDependFile << "\"." << std::endl;
@@ -1788,7 +1788,7 @@ void cmLocalUnixMakefileGenerator3::CheckMultipleOutputs(bool verbose)
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Deleting primary custom command output \"" << dependee
<< "\" because another output \""
<< depender << "\" does not exist." << std::endl;
@@ -1856,13 +1856,8 @@ void cmLocalUnixMakefileGenerator3
{
text = "Running external command ...";
}
- std::set<std::string>::const_iterator dit;
- for ( dit = glIt->second.GetUtilities().begin();
- dit != glIt->second.GetUtilities().end();
- ++ dit )
- {
- depends.push_back(*dit);
- }
+ depends.insert(depends.end(), glIt->second.GetUtilities().begin(),
+ glIt->second.GetUtilities().end());
this->AppendEcho(commands, text,
cmLocalUnixMakefileGenerator3::EchoGlobal);
@@ -1918,7 +1913,7 @@ void cmLocalUnixMakefileGenerator3
std::string progressDir = this->Makefile->GetHomeOutputDirectory();
progressDir += cmake::GetCMakeFilesDirectory();
{
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd <<
"$(CMAKE_COMMAND) -E cmake_progress_start ";
progCmd << this->Convert(progressDir,
@@ -1942,7 +1937,7 @@ void cmLocalUnixMakefileGenerator3
this->Makefile->GetHomeOutputDirectory(),
cmLocalGenerator::START_OUTPUT);
{
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0
progCmd << this->Convert(progressDir,
cmLocalGenerator::FULL,
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index b9a5074..1d62093 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -1321,7 +1321,7 @@ void cmLocalVisualStudio6Generator
int major;
int minor;
target.GetTargetVersion(major, minor);
- cmOStringStream targetVersionStream;
+ std::ostringstream targetVersionStream;
targetVersionStream << "/version:" << major << "." << minor;
targetVersionFlag = targetVersionStream.str();
}
@@ -1998,7 +1998,7 @@ cmLocalVisualStudio6Generator
if(define.find_first_of(" ") != define.npos &&
define.find_first_of("\"$;") != define.npos)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "WARNING: The VS6 IDE does not support preprocessor definition "
<< "values with spaces and '\"', '$', or ';'.\n"
<< "CMake is dropping a preprocessor definition: " << define << "\n"
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 0e66764..914df5f 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1115,7 +1115,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
if(this->GetVersion() < VS8 || this->FortranProject)
{
- cmOStringStream libdeps;
+ std::ostringstream libdeps;
this->Internal->OutputObjects(libdeps, &target);
if(!libdeps.str().empty())
{
@@ -1713,7 +1713,7 @@ bool cmLocalVisualStudio7Generator
// Write the children to temporary output.
bool hasChildrenWithSources = false;
- cmOStringStream tmpOut;
+ std::ostringstream tmpOut;
for(unsigned int i=0;i<children.size();++i)
{
if(this->WriteGroup(&children[i], target, tmpOut, libName, configs))
diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx
index ae81c58..567403f 100644
--- a/Source/cmMacroCommand.cxx
+++ b/Source/cmMacroCommand.cxx
@@ -107,7 +107,7 @@ bool cmMacroHelperCommand::InvokeInitialPass
cmMakefile::PolicyPushPop polScope(this->Makefile, true, this->Policies);
// set the value of argc
- cmOStringStream argcDefStream;
+ std::ostringstream argcDefStream;
argcDefStream << expandedArgs.size();
std::string argcDef = argcDefStream.str();
@@ -328,11 +328,7 @@ bool cmMacroCommand::InitialPass(std::vector<std::string> const& args,
// create a function blocker
cmMacroFunctionBlocker *f = new cmMacroFunctionBlocker();
- for(std::vector<std::string>::const_iterator j = args.begin();
- j != args.end(); ++j)
- {
- f->Args.push_back(*j);
- }
+ f->Args.insert(f->Args.end(), args.begin(), args.end());
this->Makefile->AddFunctionBlocker(f);
return true;
}
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 20dae5a..d188331 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -363,7 +363,7 @@ cmListFileBacktrace cmMakefile::GetBacktrace() const
//----------------------------------------------------------------------------
void cmMakefile::PrintCommandTrace(const cmListFileFunction& lff) const
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << lff.FilePath << "(" << lff.Line << "): ";
msg << lff.Name << "(";
for(std::vector<cmListFileArgument>::const_iterator i =
@@ -556,7 +556,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
case cmPolicies::WARN:
// Warn because the user did not set this policy.
{
- cmOStringStream w;
+ std::ostringstream w;
w << policies->GetPolicyWarning(cmPolicies::CMP0011) << "\n"
<< "The included script\n " << this->File << "\n"
<< "affects policy settings. "
@@ -568,7 +568,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS:
{
- cmOStringStream e;
+ std::ostringstream e;
e << policies->GetRequiredPolicyError(cmPolicies::CMP0011) << "\n"
<< "The included script\n " << this->File << "\n"
<< "affects policy settings, so it requires this policy to be set.";
@@ -741,7 +741,7 @@ void cmMakefile::EnforceDirectoryLevelRules() const
// Diagnose a violation of CMP0000 if necessary.
if(this->CheckCMP0000)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "No cmake_minimum_required command is present. "
<< "A line of code such as\n"
<< " cmake_minimum_required(VERSION "
@@ -897,7 +897,7 @@ cmMakefile::AddCustomCommandToTarget(const std::string& target,
{
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
bool issueMessage = false;
- cmOStringStream e;
+ std::ostringstream e;
switch(this->GetPolicyStatus(cmPolicies::CMP0040))
{
case cmPolicies::WARN:
@@ -924,7 +924,7 @@ cmMakefile::AddCustomCommandToTarget(const std::string& target,
if(ti->second.GetType() == cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << target << "\" is an OBJECT library "
"that may not have PRE_BUILD, PRE_LINK, or POST_BUILD commands.";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -932,7 +932,7 @@ cmMakefile::AddCustomCommandToTarget(const std::string& target,
}
if(ti->second.GetType() == cmTarget::INTERFACE_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << target << "\" is an INTERFACE library "
"that may not have PRE_BUILD, PRE_LINK, or POST_BUILD commands.";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -997,7 +997,7 @@ cmMakefile::AddCustomCommandToOutput(const std::vector<std::string>& outputs,
cmCustomCommandLine const& cl = *i;
if(!cl.empty() && !cl[0].empty() && cl[0][0] == '"')
{
- cmOStringStream e;
+ std::ostringstream e;
e << "COMMAND may not contain literal quotes:\n " << cl[0] << "\n";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
return 0;
@@ -1555,7 +1555,7 @@ void cmMakefile::AddLinkLibraryForTarget(const std::string& target,
(tgt->GetType() == cmTarget::INTERFACE_LIBRARY) ||
tgt->IsExecutableWithExports()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << lib << "\" of type "
<< cmTarget::GetTargetTypeName(tgt->GetType())
<< " may not be linked into another target. "
@@ -1568,7 +1568,7 @@ void cmMakefile::AddLinkLibraryForTarget(const std::string& target,
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Attempt to add link library \""
<< lib << "\" to target \""
<< target << "\" which is not built in this directory.";
@@ -1584,7 +1584,7 @@ void cmMakefile::AddLinkDirectoryForTarget(const std::string& target,
{
if(this->IsAlias(target))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "ALIAS target \"" << target << "\" "
<< "may not be linked into another target.";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1791,22 +1791,12 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
return;
}
- std::string incString;
- std::string sep;
-
- for(std::vector<std::string>::const_iterator li = incs.begin();
- li != incs.end(); ++li)
- {
- incString += sep + *li;
- sep = ";";
- }
-
std::vector<cmValueWithOrigin>::iterator position =
before ? this->IncludeDirectoriesEntries.begin()
: this->IncludeDirectoriesEntries.end();
cmListFileBacktrace lfbt = this->GetBacktrace();
- cmValueWithOrigin entry(incString, lfbt);
+ cmValueWithOrigin entry(cmJoin(incs, ";"), lfbt);
this->IncludeDirectoriesEntries.insert(position, entry);
// Property on each target:
@@ -1822,11 +1812,7 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
void
cmMakefile::AddSystemIncludeDirectories(const std::set<std::string> &incs)
{
- for(std::set<std::string>::const_iterator li = incs.begin();
- li != incs.end(); ++li)
- {
- this->SystemIncludeDirectories.insert(*li);
- }
+ this->SystemIncludeDirectories.insert(incs.begin(), incs.end());
for (cmTargets::iterator l = this->Targets.begin();
l != this->Targets.end(); ++l)
@@ -2006,7 +1992,7 @@ void cmMakefile::CheckForUnused(const char* reason,
!cmSystemTools::IsSubDirectory(path,
cmake::GetCMakeFilesDirectory())))
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "unused variable (" << reason << ") \'" << name << "\'";
this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
msg.str(),
@@ -2311,7 +2297,7 @@ void cmMakefile::ExpandVariablesCMP0019()
{
return;
}
- cmOStringStream w;
+ std::ostringstream w;
const char *includeDirs = this->GetProperty("INCLUDE_DIRECTORIES");
if(mightExpandVariablesCMP0019(includeDirs))
@@ -2389,7 +2375,7 @@ void cmMakefile::ExpandVariablesCMP0019()
if(!w.str().empty())
{
- cmOStringStream m;
+ std::ostringstream m;
m << this->GetPolicies()->GetPolicyWarning(cmPolicies::CMP0019)
<< "\n"
<< "The following variable evaluations were encountered:\n"
@@ -2567,12 +2553,7 @@ std::vector<std::string> cmMakefile
}
std::vector<std::string> res;
-
- std::set<std::string>::iterator fit;
- for ( fit = definitions.begin(); fit != definitions.end(); fit ++ )
- {
- res.push_back(*fit);
- }
+ res.insert(res.end(), definitions.begin(), definitions.end());
return res;
}
@@ -2782,7 +2763,7 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringOld(
else
{
// Construct the main error message.
- cmOStringStream error;
+ std::ostringstream error;
error << "Syntax error in cmake code ";
if(filename && line > 0)
{
@@ -2890,7 +2871,7 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
case NORMAL:
if(filename && lookup == lineVar)
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << line;
varresult = ostr.str();
}
@@ -2932,7 +2913,7 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
cmSystemTools::IsSubDirectory(filename,
this->GetHomeOutputDirectory()))
{
- cmOStringStream msg;
+ std::ostringstream msg;
cmListFileBacktrace bt(this->GetLocalGenerator());
cmListFileContext lfc;
lfc.FilePath = filename;
@@ -3126,7 +3107,7 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
if(error)
{
- cmOStringStream emsg;
+ std::ostringstream emsg;
emsg << "Syntax error in cmake code ";
if(filename)
{
@@ -3341,7 +3322,7 @@ void cmMakefile::PopFunctionBlockerBarrier(bool reportError)
{
// Report the context in which the unclosed block was opened.
cmListFileContext const& lfc = fb->GetStartingContext();
- cmOStringStream e;
+ std::ostringstream e;
e << "A logical block opening on the line\n"
<< " " << lfc << "\n"
<< "is not closed.";
@@ -3499,7 +3480,7 @@ cmMakefile::RemoveFunctionBlocker(cmFunctionBlocker* fb,
if(!(*pos)->ShouldRemove(lff, *this))
{
cmListFileContext const& lfc = fb->GetStartingContext();
- cmOStringStream e;
+ std::ostringstream e;
e << "A logical block opening on the line\n"
<< " " << lfc << "\n"
<< "closes on the line\n"
@@ -3559,14 +3540,14 @@ void cmMakefile::SetScriptModeFile(const char* scriptfile)
void cmMakefile::SetArgcArgv(const std::vector<std::string>& args)
{
- cmOStringStream strStream;
+ std::ostringstream strStream;
strStream << args.size();
this->AddDefinition("CMAKE_ARGC", strStream.str().c_str());
//this->MarkVariableAsUsed("CMAKE_ARGC");
for (unsigned int t = 0; t < args.size(); ++t)
{
- cmOStringStream tmpStream;
+ std::ostringstream tmpStream;
tmpStream << "CMAKE_ARGV" << t;
this->AddDefinition(tmpStream.str(), args[t].c_str());
//this->MarkVariableAsUsed(tmpStream.str().c_str());
@@ -3918,7 +3899,7 @@ std::string cmMakefile::GetModulesFile(const char* filename) const
{
case cmPolicies::WARN:
{
- cmOStringStream e;
+ std::ostringstream e;
e << "File " << currentFile << " includes "
<< moduleInCMakeModulePath
<< " (found via CMAKE_MODULE_PATH) which shadows "
@@ -4098,7 +4079,7 @@ int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
if(bom != cmsys::FStream::BOM_None &&
bom != cmsys::FStream::BOM_UTF8)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "File starts with a Byte-Order-Mark that is not UTF-8:\n "
<< sinfile;
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -4310,7 +4291,7 @@ const char *cmMakefile::GetProperty(const std::string& prop,
}
else if (prop == "LINK_DIRECTORIES")
{
- cmOStringStream str;
+ std::ostringstream str;
for (std::vector<std::string>::const_iterator
it = this->GetLinkDirectories().begin();
it != this->GetLinkDirectories().end();
@@ -4488,7 +4469,7 @@ void cmMakefile::AddCMakeDependFilesFromUser()
std::string cmMakefile::GetListFileStack() const
{
- cmOStringStream tmp;
+ std::ostringstream tmp;
size_t depth = this->ListFileStack.size();
if (depth > 0)
{
@@ -4561,16 +4542,8 @@ void cmMakefile::PopScope()
this->Internal->VarInitStack.pop();
this->Internal->VarUsageStack.pop();
// Push initialization and usage up to the parent scope.
- it = init.begin();
- for (; it != init.end(); ++it)
- {
- this->Internal->VarInitStack.top().insert(*it);
- }
- it = usage.begin();
- for (; it != usage.end(); ++it)
- {
- this->Internal->VarUsageStack.top().insert(*it);
- }
+ this->Internal->VarInitStack.top().insert(init.begin(), init.end());
+ this->Internal->VarUsageStack.top().insert(usage.begin(), usage.end());
}
void cmMakefile::RaiseScope(const std::string& var, const char *varDef)
@@ -4606,7 +4579,7 @@ void cmMakefile::RaiseScope(const std::string& var, const char *varDef)
}
else
{
- cmOStringStream m;
+ std::ostringstream m;
m << "Cannot set \"" << var << "\": current scope has no parent.";
this->IssueMessage(cmake::AUTHOR_WARNING, m.str());
}
@@ -4701,7 +4674,7 @@ bool cmMakefile::EnforceUniqueName(std::string const& name, std::string& msg,
{
if(this->IsAlias(name))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create target \"" << name
<< "\" because an alias with the same name already exists.";
msg = e.str();
@@ -4715,7 +4688,7 @@ bool cmMakefile::EnforceUniqueName(std::string const& name, std::string& msg,
{
// Imported targets were not supported in previous versions.
// This is new code, so we can make it an error.
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create target \"" << name
<< "\" because an imported target with the same name already exists.";
msg = e.str();
@@ -4754,7 +4727,7 @@ bool cmMakefile::EnforceUniqueName(std::string const& name, std::string& msg,
// Produce an error that tells the user how to work around the
// problem.
- cmOStringStream e;
+ std::ostringstream e;
e << "cannot create target \"" << name
<< "\" because another target with the same name already exists. "
<< "The existing target is ";
@@ -4800,7 +4773,7 @@ bool cmMakefile::EnforceUniqueDir(const std::string& srcPath,
{
return true;
}
- cmOStringStream e;
+ std::ostringstream e;
switch (this->GetPolicyStatus(cmPolicies::CMP0013))
{
case cmPolicies::WARN:
@@ -4985,7 +4958,7 @@ bool cmMakefile::SetPolicy(const char *id,
cmPolicies::PolicyID pid;
if (!this->GetPolicies()->GetPolicyID(id, /* out */ pid))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Policy \"" << id << "\" is not known to this version of CMake.";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
@@ -5200,7 +5173,7 @@ AddRequiredTargetFeature(cmTarget *target, const std::string& feature,
availableFeatures.end(),
feature) == availableFeatures.end())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The compiler feature \"" << feature
<< "\" is not known to " << lang << " compiler\n\""
<< this->GetDefinition("CMAKE_" + lang + "_COMPILER_ID")
@@ -5240,7 +5213,7 @@ CompileFeatureKnown(cmTarget const* target, const std::string& feature,
lang = "CXX";
return true;
}
- cmOStringStream e;
+ std::ostringstream e;
if (error)
{
e << "specified";
@@ -5271,7 +5244,7 @@ CompileFeaturesAvailable(const std::string& lang, std::string *error) const
if (!featuresKnown || !*featuresKnown)
{
- cmOStringStream e;
+ std::ostringstream e;
if (error)
{
e << "no";
@@ -5326,7 +5299,7 @@ HaveCFeatureAvailable(cmTarget const* target, const std::string& feature) const
if (std::find_if(cmArrayBegin(C_STANDARDS), cmArrayEnd(C_STANDARDS),
cmStrCmp(existingCStandard)) == cmArrayEnd(C_STANDARDS))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The C_STANDARD property on target \"" << target->GetName()
<< "\" contained an invalid value: \"" << existingCStandard << "\".";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -5403,7 +5376,7 @@ bool cmMakefile::HaveCxxFeatureAvailable(cmTarget const* target,
if (std::find_if(cmArrayBegin(CXX_STANDARDS), cmArrayEnd(CXX_STANDARDS),
cmStrCmp(existingCxxStandard)) == cmArrayEnd(CXX_STANDARDS))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The CXX_STANDARD property on target \"" << target->GetName()
<< "\" contained an invalid value: \"" << existingCxxStandard << "\".";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -5478,7 +5451,7 @@ AddRequiredTargetCxxFeature(cmTarget *target,
if (std::find_if(cmArrayBegin(CXX_STANDARDS), cmArrayEnd(CXX_STANDARDS),
cmStrCmp(existingCxxStandard)) == cmArrayEnd(CXX_STANDARDS))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The CXX_STANDARD property on target \"" << target->GetName()
<< "\" contained an invalid value: \"" << existingCxxStandard << "\".";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -5577,7 +5550,7 @@ AddRequiredTargetCFeature(cmTarget *target, const std::string& feature) const
if (std::find_if(cmArrayBegin(C_STANDARDS), cmArrayEnd(C_STANDARDS),
cmStrCmp(existingCStandard)) == cmArrayEnd(C_STANDARDS))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The C_STANDARD property on target \"" << target->GetName()
<< "\" contained an invalid value: \"" << existingCStandard << "\".";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index fc52ccc..d4036d2 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -371,8 +371,8 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
std::string targetVersionMajor;
std::string targetVersionMinor;
{
- cmOStringStream majorStream;
- cmOStringStream minorStream;
+ std::ostringstream majorStream;
+ std::ostringstream minorStream;
int major;
int minor;
this->Target->GetTargetVersion(major, minor);
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 305d81d..cdda36c 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -566,8 +566,8 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
std::string targetVersionMajor;
std::string targetVersionMinor;
{
- cmOStringStream majorStream;
- cmOStringStream minorStream;
+ std::ostringstream majorStream;
+ std::ostringstream minorStream;
int major;
int minor;
this->Target->GetTargetVersion(major, minor);
@@ -805,7 +805,7 @@ cmMakefileLibraryTargetGenerator
if(major > 0 || minor > 0 || patch > 0)
{
// Append the flag since a non-zero version is specified.
- cmOStringStream vflag;
+ std::ostringstream vflag;
vflag << flag << major << "." << minor << "." << patch;
this->LocalGenerator->AppendFlags(flags, vflag.str());
}
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index cbf8573..f8471fd 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -451,7 +451,7 @@ void cmMakefileTargetGenerator
}
else
{
- cmOStringStream err;
+ std::ostringstream err;
err << "Warning: Source file \""
<< source.GetFullPath()
<< "\" is listed multiple times for target \""
@@ -759,13 +759,10 @@ cmMakefileTargetGenerator
if(const char* extra_outputs_str =
source.GetProperty("OBJECT_OUTPUTS"))
{
+ // Register these as extra files to clean.
cmSystemTools::ExpandListArgument(extra_outputs_str, outputs);
- for(std::vector<std::string>::const_iterator eoi = outputs.begin()+1;
- eoi != outputs.end(); ++eoi)
- {
- // Register this as an extra file to clean.
- this->CleanFiles.push_back(*eoi);
- }
+ this->CleanFiles.insert(this->CleanFiles.end(),
+ outputs.begin() + 1, outputs.end());
}
// Write the rule.
@@ -1101,7 +1098,7 @@ void cmMakefileTargetGenerator::WriteTargetDependRules()
// Add a command to call CMake to scan dependencies. CMake will
// touch the corresponding depends file after scanning dependencies.
- cmOStringStream depCmd;
+ std::ostringstream depCmd;
// TODO: Account for source file properties and directory-level
// definitions when scanning for dependencies.
#if !defined(_WIN32) || defined(__CYGWIN__)
@@ -1174,11 +1171,7 @@ cmMakefileTargetGenerator
{
cmCustomCommandGenerator ccg(*cc, this->ConfigName, this->Makefile);
const std::vector<std::string>& outputs = ccg.GetOutputs();
- for(std::vector<std::string>::const_iterator o = outputs.begin();
- o != outputs.end(); ++o)
- {
- depends.push_back(*o);
- }
+ depends.insert(depends.end(), outputs.begin(), outputs.end());
}
}
}
@@ -1217,7 +1210,7 @@ void cmMakefileTargetGenerator
}
// Now append the actual user-specified commands.
- cmOStringStream content;
+ std::ostringstream content;
this->LocalGenerator->AppendCustomCommand(commands, ccg, this->Target, false,
cmLocalGenerator::HOME_OUTPUT,
&content);
@@ -1279,7 +1272,7 @@ cmMakefileTargetGenerator::AppendProgress(std::vector<std::string>& commands)
}
std::string progressDir = this->Makefile->GetHomeOutputDirectory();
progressDir += cmake::GetCMakeFilesDirectory();
- cmOStringStream progCmd;
+ std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
progCmd << this->LocalGenerator->Convert(progressDir,
cmLocalGenerator::FULL,
@@ -1462,11 +1455,8 @@ void cmMakefileTargetGenerator::WriteTargetDriverRule(
}
// Make sure the extra files are built.
- for(std::set<std::string>::const_iterator i = this->ExtraFiles.begin();
- i != this->ExtraFiles.end(); ++i)
- {
- depends.push_back(*i);
- }
+ depends.insert(depends.end(),
+ this->ExtraFiles.begin(), this->ExtraFiles.end());
}
// Write the driver rule.
@@ -1553,11 +1543,7 @@ void cmMakefileTargetGenerator
if(cmComputeLinkInformation* cli = this->Target->GetLinkInformation(cfg))
{
std::vector<std::string> const& libDeps = cli->GetDepends();
- for(std::vector<std::string>::const_iterator j = libDeps.begin();
- j != libDeps.end(); ++j)
- {
- depends.push_back(*j);
- }
+ depends.insert(depends.end(), libDeps.begin(), libDeps.end());
}
}
@@ -1577,12 +1563,8 @@ void cmMakefileTargetGenerator
}
// Add dependencies on the external object files.
- for(std::vector<std::string>::const_iterator obj
- = this->ExternalObjects.begin();
- obj != this->ExternalObjects.end(); ++obj)
- {
- depends.push_back(*obj);
- }
+ depends.insert(depends.end(),
+ this->ExternalObjects.begin(), this->ExternalObjects.end());
// Add a dependency on the rule file itself.
this->LocalGenerator->AppendRuleDepend(depends,
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 53b7a8e..32a5ccf 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -218,8 +218,8 @@ cmNinjaNormalTargetGenerator
std::string targetVersionMajor;
std::string targetVersionMinor;
{
- cmOStringStream majorStream;
- cmOStringStream minorStream;
+ std::ostringstream majorStream;
+ std::ostringstream minorStream;
int major;
int minor;
this->GetTarget()->GetTargetVersion(major, minor);
@@ -255,10 +255,10 @@ cmNinjaNormalTargetGenerator
this->GetLocalGenerator()->BuildCommandLine(linkCmds);
// Write the linker rule with response file if needed.
- cmOStringStream comment;
+ std::ostringstream comment;
comment << "Rule for linking " << this->TargetLinkLanguage << " "
<< this->GetVisibleTypeName() << ".";
- cmOStringStream description;
+ std::ostringstream description;
description << "Linking " << this->TargetLinkLanguage << " "
<< this->GetVisibleTypeName() << " $TARGET_FILE";
this->GetGlobalGenerator()->AddRule(ruleName,
@@ -435,7 +435,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
cmNinjaVars vars;
// Compute the comment.
- cmOStringStream comment;
+ std::ostringstream comment;
comment <<
"Link the " << this->GetVisibleTypeName() << " " << targetOutputReal;
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index b36ff93..c019ceb 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -468,9 +468,9 @@ cmNinjaTargetGenerator
// Write the rule for compiling file of the given language.
- cmOStringStream comment;
+ std::ostringstream comment;
comment << "Rule for compiling " << lang << " files.";
- cmOStringStream description;
+ std::ostringstream description;
description << "Building " << lang << " object $out";
this->GetGlobalGenerator()->AddRule(this->LanguageCompilerRule(lang),
cmdLine,
diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx
index 3cdd2f6..116d42f 100644
--- a/Source/cmOrderDirectories.cxx
+++ b/Source/cmOrderDirectories.cxx
@@ -86,7 +86,7 @@ public:
}
}
- void FindImplicitConflicts(cmOStringStream& w)
+ void FindImplicitConflicts(std::ostringstream& w)
{
bool first = true;
for(unsigned int i=0; i < this->OD->OriginalDirectories.size(); ++i)
@@ -541,7 +541,7 @@ void cmOrderDirectories::FindImplicitConflicts()
{
// Check for items in implicit link directories that have conflicts
// in the explicit directories.
- cmOStringStream conflicts;
+ std::ostringstream conflicts;
for(unsigned int i=0; i < this->ImplicitDirEntries.size(); ++i)
{
this->ImplicitDirEntries[i]->FindImplicitConflicts(conflicts);
@@ -555,7 +555,7 @@ void cmOrderDirectories::FindImplicitConflicts()
}
// Warn about the conflicts.
- cmOStringStream w;
+ std::ostringstream w;
w << "Cannot generate a safe " << this->Purpose
<< " for target " << this->Target->GetName()
<< " because files in some directories may conflict with "
@@ -624,7 +624,7 @@ void cmOrderDirectories::DiagnoseCycle()
this->CycleDiagnosed = true;
// Construct the message.
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot generate a safe " << this->Purpose
<< " for target " << this->Target->GetName()
<< " because there is a cycle in the constraint graph:\n";
diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx
index 1a27a25..da64617 100644
--- a/Source/cmPolicies.cxx
+++ b/Source/cmPolicies.cxx
@@ -41,7 +41,7 @@ public:
std::string GetVersionString()
{
- cmOStringStream v;
+ std::ostringstream v;
v << this->MajorVersionIntroduced << "." << this->MinorVersionIntroduced;
if(this->PatchVersionIntroduced > 0)
{
@@ -432,7 +432,7 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
if(sscanf(ver.c_str(), "%u.%u.%u.%u",
&majorVer, &minorVer, &patchVer, &tweakVer) < 2)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Invalid policy version value \"" << ver << "\". "
<< "A numeric major.minor[.patch[.tweak]] must be given.";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -462,7 +462,7 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
patchVer == cmVersion::GetPatchVersion() &&
tweakVer > cmVersion::GetTweakVersion()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "An attempt was made to set the policy version of CMake to \""
<< version << "\" which is greater than this version of CMake. "
<< "This is not allowed because the greater version may have new "
@@ -534,7 +534,7 @@ bool cmPolicies::GetPolicyDefault(cmMakefile* mf, std::string const& policy,
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << defaultVar << " has value \"" << defaultValue
<< "\" but must be \"OLD\", \"NEW\", or \"\" (empty).";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -584,7 +584,7 @@ std::string cmPolicies::GetPolicyWarning(cmPolicies::PolicyID id)
return "Request for warning text for undefined policy!";
}
- cmOStringStream msg;
+ std::ostringstream msg;
msg <<
"Policy " << pos->second->IDString << " is not set: "
"" << pos->second->ShortDescription << " "
@@ -608,7 +608,7 @@ std::string cmPolicies::GetRequiredPolicyError(cmPolicies::PolicyID id)
return "Request for error text for undefined policy!";
}
- cmOStringStream error;
+ std::ostringstream error;
error <<
"Policy " << pos->second->IDString << " is not set to NEW: "
"" << pos->second->ShortDescription << " "
@@ -645,7 +645,7 @@ std::string
cmPolicies::GetRequiredAlwaysPolicyError(cmPolicies::PolicyID id)
{
std::string pid = this->GetPolicyIDString(id);
- cmOStringStream e;
+ std::ostringstream e;
e << "Policy " << pid << " may not be set to OLD behavior because this "
<< "version of CMake no longer supports it. "
<< "The policy was introduced in "
@@ -667,7 +667,7 @@ cmPolicies::DiagnoseAncientPolicies(std::vector<PolicyID> const& ancient,
unsigned int patchVer,
cmMakefile* mf)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The project requests behavior compatible with CMake version \""
<< majorVer << "." << minorVer << "." << patchVer
<< "\", which requires the OLD behavior for some policies:\n";
diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx
index 12318c8..61c0133 100644
--- a/Source/cmProjectCommand.cxx
+++ b/Source/cmProjectCommand.cxx
@@ -215,7 +215,7 @@ bool cmProjectCommand
}
if(!vw.empty())
{
- cmOStringStream w;
+ std::ostringstream w;
w << (this->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0048))
<< "\nThe following variable(s) would be set to empty:" << vw;
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index a01a384..bf79066 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -224,16 +224,7 @@ std::string cmQtAutoGenerators::ListQt5RccInputs(cmSourceFile* sf,
}
}
depends.insert(depends.end(), qrcEntries.begin(), qrcEntries.end());
- std::string entriesList;
- const char* sep = "";
- for(std::vector<std::string>::const_iterator it = qrcEntries.begin();
- it != qrcEntries.end(); ++it)
- {
- entriesList += sep;
- entriesList += *it;
- sep = "@list_sep@";
- }
- return entriesList;
+ return cmJoin(qrcEntries, "@list_sep@");
}
std::string cmQtAutoGenerators::ListQt4RccInputs(cmSourceFile* sf,
@@ -512,29 +503,13 @@ static void GetCompileDefinitionsAndDirectories(cmTarget const* target,
// Get the include dirs for this target, without stripping the implicit
// include dirs off, see http://public.kitware.com/Bug/view.php?id=13667
localGen->GetIncludeDirectories(includeDirs, gtgt, "CXX", config, false);
- const char* sep = "";
- incs = "";
- for(std::vector<std::string>::const_iterator incDirIt = includeDirs.begin();
- incDirIt != includeDirs.end();
- ++incDirIt)
- {
- incs += sep;
- sep = ";";
- incs += *incDirIt;
- }
+
+ incs = cmJoin(includeDirs, ";");
std::set<std::string> defines;
localGen->AddCompileDefinitions(defines, target, config);
- sep = "";
- for(std::set<std::string>::const_iterator defIt = defines.begin();
- defIt != defines.end();
- ++defIt)
- {
- defs += sep;
- sep = ";";
- defs += *defIt;
- }
+ defs += cmJoin(defines, ";");
}
void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target)
@@ -879,16 +854,7 @@ static void GetUicOpts(cmTarget const* target, const std::string& config,
{
std::vector<std::string> opts;
target->GetAutoUicOptions(opts, config);
-
- const char* sep = "";
- for(std::vector<std::string>::const_iterator optIt = opts.begin();
- optIt != opts.end();
- ++optIt)
- {
- optString += sep;
- sep = ";";
- optString += *optIt;
- }
+ optString = cmJoin(opts, ";");
}
void cmQtAutoGenerators::SetupAutoUicTarget(cmTarget const* target,
@@ -899,12 +865,7 @@ void cmQtAutoGenerators::SetupAutoUicTarget(cmTarget const* target,
std::set<std::string> skipped;
std::vector<std::string> skipVec;
cmSystemTools::ExpandListArgument(this->SkipUic, skipVec);
-
- for (std::vector<std::string>::const_iterator li = skipVec.begin();
- li != skipVec.end(); ++li)
- {
- skipped.insert(*li);
- }
+ skipped.insert(skipVec.begin(), skipVec.end());
makefile->AddDefinition("_skip_uic",
cmLocalGenerator::EscapeForCMake(this->SkipUic).c_str());
@@ -1622,12 +1583,7 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
std::vector<std::string> headerFilesVec;
cmSystemTools::ExpandListArgument(this->Headers, headerFilesVec);
- for (std::vector<std::string>::const_iterator it = headerFilesVec.begin();
- it != headerFilesVec.end();
- ++it)
- {
- headerFiles.insert(*it);
- }
+ headerFiles.insert(headerFilesVec.begin(), headerFilesVec.end());
// key = moc source filepath, value = moc output filename
std::map<std::string, std::string> notIncludedMocs;
@@ -2188,24 +2144,12 @@ bool cmQtAutoGenerators::GenerateMoc(const std::string& sourceFile,
std::vector<std::string> command;
command.push_back(this->MocExecutable);
- for (std::list<std::string>::const_iterator it = this->MocIncludes.begin();
- it != this->MocIncludes.end();
- ++it)
- {
- command.push_back(*it);
- }
- for(std::list<std::string>::const_iterator it=this->MocDefinitions.begin();
- it != this->MocDefinitions.end();
- ++it)
- {
- command.push_back(*it);
- }
- for(std::vector<std::string>::const_iterator it=this->MocOptions.begin();
- it != this->MocOptions.end();
- ++it)
- {
- command.push_back(*it);
- }
+ command.insert(command.end(),
+ this->MocIncludes.begin(), this->MocIncludes.end());
+ command.insert(command.end(),
+ this->MocDefinitions.begin(), this->MocDefinitions.end());
+ command.insert(command.end(),
+ this->MocOptions.begin(), this->MocOptions.end());
#ifdef _WIN32
command.push_back("-DWIN32");
#endif
@@ -2277,12 +2221,7 @@ bool cmQtAutoGenerators::GenerateUi(const std::string& realName,
cmSystemTools::ExpandListArgument(optionIt->second, fileOpts);
this->MergeUicOptions(opts, fileOpts, this->QtMajorVersion == "5");
}
- for(std::vector<std::string>::const_iterator optIt = opts.begin();
- optIt != opts.end();
- ++optIt)
- {
- command.push_back(*optIt);
- }
+ command.insert(command.end(), opts.begin(), opts.end());
command.push_back("-o");
command.push_back(this->Builddir + ui_output_file);
diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index cca995b..f4607c6 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -417,14 +417,7 @@ void cmRST::ProcessDirectiveReplace()
{
// Record markup lines as replacement text.
std::string& replacement = this->Replace[this->ReplaceName];
- const char* sep = "";
- for(std::vector<std::string>::iterator i = this->MarkupLines.begin();
- i != this->MarkupLines.end(); ++i)
- {
- replacement += sep;
- replacement += *i;
- sep = " ";
- }
+ replacement += cmJoin(this->MarkupLines, " ");
this->ReplaceName = "";
}
diff --git a/Source/cmRemoveCommand.cxx b/Source/cmRemoveCommand.cxx
index bcb8564..d8aa1cb 100644
--- a/Source/cmRemoveCommand.cxx
+++ b/Source/cmRemoveCommand.cxx
@@ -39,10 +39,7 @@ bool cmRemoveCommand
// check for REMOVE(VAR v1 v2 ... vn)
std::vector<std::string> argsExpanded;
std::vector<std::string> temp;
- for(unsigned int j = 1; j < args.size(); ++j)
- {
- temp.push_back(args[j]);
- }
+ temp.insert(temp.end(), args.begin() + 1, args.end());
cmSystemTools::ExpandList(temp, argsExpanded);
// now create the new value
diff --git a/Source/cmSeparateArgumentsCommand.cxx b/Source/cmSeparateArgumentsCommand.cxx
index 1ee3f29..8e6c311 100644
--- a/Source/cmSeparateArgumentsCommand.cxx
+++ b/Source/cmSeparateArgumentsCommand.cxx
@@ -51,7 +51,7 @@ bool cmSeparateArgumentsCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given unknown argument " << args[i];
this->SetError(e.str());
return false;
diff --git a/Source/cmSetPropertyCommand.cxx b/Source/cmSetPropertyCommand.cxx
index 653d764..1150bc7 100644
--- a/Source/cmSetPropertyCommand.cxx
+++ b/Source/cmSetPropertyCommand.cxx
@@ -67,7 +67,7 @@ bool cmSetPropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid scope " << *arg << ". "
<< "Valid scopes are GLOBAL, DIRECTORY, "
"TARGET, SOURCE, TEST, CACHE, INSTALL.";
@@ -117,7 +117,7 @@ bool cmSetPropertyCommand
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid argument \"" << *arg << "\".";
this->SetError(e.str());
return false;
@@ -265,7 +265,7 @@ bool cmSetPropertyCommand::HandleTargetMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not find TARGET " << *ni
<< ". Perhaps it has not yet been created.";
this->SetError(e.str());
@@ -316,7 +316,7 @@ bool cmSetPropertyCommand::HandleSourceMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given SOURCE name that could not be found or created: " << *ni;
this->SetError(e.str());
return false;
@@ -373,7 +373,7 @@ bool cmSetPropertyCommand::HandleTestMode()
// Names that are still left were not found.
if(!this->Names.empty())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given TEST names that do not exist:\n";
for(std::set<std::string>::const_iterator ni = this->Names.begin();
ni != this->Names.end(); ++ni)
@@ -417,7 +417,7 @@ bool cmSetPropertyCommand::HandleCacheMode()
!cmSystemTools::IsOn(this->PropertyValue.c_str()) &&
!cmSystemTools::IsOff(this->PropertyValue.c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given non-boolean value \"" << this->PropertyValue
<< "\" for CACHE property \"ADVANCED\". ";
this->SetError(e.str());
@@ -428,7 +428,7 @@ bool cmSetPropertyCommand::HandleCacheMode()
{
if(!cmCacheManager::IsType(this->PropertyValue.c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid CACHE entry TYPE \"" << this->PropertyValue << "\"";
this->SetError(e.str());
return false;
@@ -438,7 +438,7 @@ bool cmSetPropertyCommand::HandleCacheMode()
this->PropertyName != "STRINGS" &&
this->PropertyName != "VALUE")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given invalid CACHE property " << this->PropertyName << ". "
<< "Settable CACHE properties are: "
<< "ADVANCED, HELPSTRING, STRINGS, TYPE, and VALUE.";
@@ -463,7 +463,7 @@ bool cmSetPropertyCommand::HandleCacheMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "could not find CACHE variable " << *ni
<< ". Perhaps it has not yet been created.";
this->SetError(e.str());
@@ -513,7 +513,7 @@ bool cmSetPropertyCommand::HandleInstallMode()
}
else
{
- cmOStringStream e;
+ std::ostringstream e;
e << "given INSTALL name that could not be found or created: " << *i;
this->SetError(e.str());
return false;
diff --git a/Source/cmSourceFile.cxx b/Source/cmSourceFile.cxx
index 6fe5c62..6847475 100644
--- a/Source/cmSourceFile.cxx
+++ b/Source/cmSourceFile.cxx
@@ -24,7 +24,7 @@ cmSourceFile::cmSourceFile(cmMakefile* mf, const std::string& name):
this->CustomCommand = 0;
this->Properties.SetCMakeInstance(mf->GetCMakeInstance());
this->FindFullPathFailed = false;
- this->IsUiFile = ("ui" ==
+ this->IsUiFile = (".ui" ==
cmSystemTools::GetFilenameLastExtension(this->Location.GetName()));
}
@@ -202,7 +202,7 @@ bool cmSourceFile::FindFullPath(std::string* error)
}
}
- cmOStringStream e;
+ std::ostringstream e;
std::string missing = this->Location.GetDirectory();
if(!missing.empty())
{
diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx
index edba5ba..1741e05 100644
--- a/Source/cmSourceGroupCommand.cxx
+++ b/Source/cmSourceGroupCommand.cxx
@@ -90,7 +90,7 @@ bool cmSourceGroupCommand
}
else
{
- cmOStringStream err;
+ std::ostringstream err;
err << "Unknown argument \"" << args[i] << "\". "
<< "Perhaps the FILES keyword is missing.\n";
this->SetError(err.str());
diff --git a/Source/cmStandardIncludes.cxx b/Source/cmStandardIncludes.cxx
deleted file mode 100644
index a4bdb2e..0000000
--- a/Source/cmStandardIncludes.cxx
+++ /dev/null
@@ -1,16 +0,0 @@
-/*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2010 Kitware, Inc., Insight Software Consortium
-
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
-============================================================================*/
-#include "cmStandardIncludes.h"
-#if !defined(CMAKE_NO_ANSI_STRING_STREAM)
-cmOStringStream::cmOStringStream() {}
-cmOStringStream::~cmOStringStream() {}
-#endif
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index 6b85634..2d988c9 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -16,8 +16,6 @@
#ifndef cmStandardIncludes_h
#define cmStandardIncludes_h
-// include configure generated header to define CMAKE_NO_ANSI_STREAM_HEADERS,
-// CMAKE_NO_STD_NAMESPACE, and other macros.
#include <cmConfigure.h>
#include <cmsys/Configure.hxx>
@@ -25,7 +23,6 @@
#pragma warning ( disable : 4786 )
#pragma warning ( disable : 4503 )
#pragma warning ( disable : 4512 ) /* operator=() could not be generated */
-#define CMAKE_NO_ANSI_FOR_SCOPE
#endif
@@ -37,35 +34,12 @@
// Provide fixed-size integer types.
#include <cmIML/INT.h>
-#include <stdarg.h> // Work-around for SGI MIPSpro 7.4.2m header bug
-
-// This is a hack to prevent warnings about these functions being
-// declared but not referenced.
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 3970 /* conversion from pointer to same-sized */
-# include <sys/termios.h>
-class cmStandardIncludesHack
-{
-public:
- enum
- {
- Ref1 = sizeof(cfgetospeed(0)),
- Ref2 = sizeof(cfgetispeed(0)),
- Ref3 = sizeof(tcgetattr(0, 0)),
- Ref4 = sizeof(tcsetattr(0, 0, 0)),
- Ref5 = sizeof(cfsetospeed(0,0)),
- Ref6 = sizeof(cfsetispeed(0,0))
- };
-};
-#endif
-
// Include stream compatibility layer from KWSys.
// This is needed to work with large file support
// on some platforms whose stream operators do not
// support the large integer types.
#if defined(CMAKE_BUILD_WITH_CMAKE)
# include <cmsys/IOStream.hxx>
-# undef GetCurrentDirectory // Borland <iosfwd> includes windows.h
#endif
// Avoid warnings in system headers.
@@ -73,23 +47,10 @@ public:
# pragma warning (push,1)
#endif
-#ifndef CMAKE_NO_ANSI_STREAM_HEADERS
-# include <fstream>
-# include <iostream>
-# include <iomanip>
-#else
-# include <fstream.h>
-# include <iostream.h>
-# include <iomanip.h>
-#endif
-
-#if !defined(CMAKE_NO_ANSI_STRING_STREAM)
-# include <sstream>
-#elif !defined(CMAKE_NO_ANSI_STREAM_HEADERS)
-# include <strstream>
-#else
-# include <strstream.h>
-#endif
+#include <fstream>
+#include <iostream>
+#include <iomanip>
+#include <sstream>
// we must have stl with the standard include style
#include <vector>
@@ -111,195 +72,18 @@ public:
#include <stdio.h>
#include <stdlib.h>
-// Borland C++ defines several of the stdlib.h and string.h symbols in
-// sub-headers search.h and mem.h. These sub-headers have using
-// declarations to pull functions from the std namespace to the global
-// namespace, but they are defined only if the header was not included
-// through the C++-style cstdlib or cstring header. These outer
-// headers are included by the streams library in C++-style and
-// include blockers are put in place that prevent including the
-// C-style versions from ever including the sub-headers. Therefore we
-// have to include the sub-headers here to get the using declarations.
-
-
-#if !defined(_WIN32) && defined(__COMO__)
-// Hack for como strict mode to avoid defining _SVID_SOURCE or _BSD_SOURCE.
-extern "C"
-{
-extern FILE *popen (__const char *__command, __const char *__modes) __THROW;
-extern int pclose (FILE *__stream) __THROW;
-extern char *realpath (__const char *__restrict __name,
- char *__restrict __resolved) __THROW;
-extern char *strdup (__const char *__s) __THROW;
-extern int putenv (char *__string) __THROW;
-}
-#endif
-
-// if std:: is not supported, then just #define it away
-#ifdef CMAKE_NO_STD_NAMESPACE
-#define std
-#endif
-
-// if the compiler does not support ansi for scoping of vars use a
-// #define hack
-#ifdef CMAKE_NO_ANSI_FOR_SCOPE
-#define for if(false) {} else for
-#endif
-
-// Provide std::ios_base on ancient GCC 2.9x
-#if defined(__GNUC__) && __GNUC__ < 3
-namespace std { typedef ios ios_base; }
-#endif
-
-// check for the 720 compiler on the SGI
-// which has some strange properties that I don't think are worth
-// checking for in a general way in configure
-#if defined(__sgi) && !defined(__GNUC__)
-# if (_COMPILER_VERSION >= 730)
-# define CM_SGI_CC_730
-# elif (_COMPILER_VERSION >= 720)
-# define CM_HAS_STD_BUT_NOT_FOR_IOSTREAM
-# endif
-#endif
-
-#ifdef __DECCXX_VER
-# if __DECCXX_VER <= 60390008
-# define CM_HAS_STD_BUT_NOT_FOR_IOSTREAM
-# endif
-#endif
-
#if defined( _MSC_VER )
typedef unsigned short mode_t;
#endif
-
-#ifdef CM_HAS_STD_BUT_NOT_FOR_IOSTREAM
-// some compilers have std:: but not for the stream library,
-// so we have to bring it into the std namespace by hand.
-namespace std {
-using ::ostream;
-using ::istream;
-using ::ios;
-using ::cout;
-using ::cerr;
-using ::cin;
-using ::ifstream;
-using ::ofstream;
-
-#if !defined(CMAKE_NO_ANSI_STRING_STREAM)
- using ::ostringstream;
- using ::istringstream;
-#else
- using ::ostrstream;
- using ::istrstream;
-#endif
-
-using ::endl;
-using ::ends;
-using ::flush;
-using ::dec;
-using ::hex;
-using ::setw;
-using ::setiosflags;
-using ::setfill;
-using ::setprecision;
-}
-// The string class is missing these operators so add them
-#if !defined(cmsys_STL_STRING_NEQ_CHAR_DEFINED)
-# define cmsys_STL_STRING_NO_NEQ_CHAR
-inline bool operator!=(std::string const& a, const char* b)
-{ return !(a==std::string(b)); }
-#endif
-
-inline bool operator==(std::string const& a, const char* b)
-{ return (a==std::string(b)); }
-# endif // end CM_SGI_CC_720
-
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 1375 /* base class destructor not virtual */
-#endif
-
// use this class to shrink the size of symbols in .o files
// std::string is really basic_string<....lots of stuff....>
// when combined with a map or set, the symbols can be > 2000 chars!
#include <cmsys/String.hxx>
//typedef cmsys::String std::string;
-// Define cmOStringStream and cmIStringStream wrappers to hide
-// differences between std::stringstream and the old strstream.
-#if !defined(CMAKE_NO_ANSI_STRING_STREAM)
-class cmOStringStream: public std::ostringstream
-{
-public:
- cmOStringStream();
- ~cmOStringStream();
-private:
- cmOStringStream(const cmOStringStream&);
- void operator=(const cmOStringStream&);
-};
-class cmIStringStream: public std::istringstream
-{
-public:
- typedef std::istringstream Superclass;
- cmIStringStream() {}
- cmIStringStream(const std::string& s): Superclass(s) {}
-private:
- cmIStringStream(const cmIStringStream&);
- void operator=(const cmIStringStream&);
-};
-#else
-class cmOStrStreamCleanup
-{
-public:
- cmOStrStreamCleanup(std::ostrstream& ostr): OStrStream(ostr) {}
- ~cmOStrStreamCleanup() { this->OStrStream.rdbuf()->freeze(0); }
- static void IgnoreUnusedVariable(const cmOStrStreamCleanup&) {}
-protected:
- std::ostrstream& OStrStream;
-};
-
-class cmOStringStream: public std::ostrstream
-{
-public:
- typedef std::ostrstream Superclass;
- cmOStringStream() {}
- std::string str()
- {
- cmOStrStreamCleanup cleanup(*this);
- cmOStrStreamCleanup::IgnoreUnusedVariable(cleanup);
- int pcount = this->pcount();
- const char* ptr = this->Superclass::str();
- return std::string(ptr?ptr:"", pcount);
- }
-private:
- cmOStringStream(const cmOStringStream&);
- void operator=(const cmOStringStream&);
-};
-
-class cmIStringStream: private std::string, public std::istrstream
-{
-public:
- typedef std::string StdString;
- typedef std::istrstream IStrStream;
- cmIStringStream(): StdString(), IStrStream(StdString::c_str()) {}
- cmIStringStream(const std::string& s):
- StdString(s), IStrStream(StdString::c_str()) {}
- std::string str() const { return *this; }
- void str(const std::string& s)
- {
- // Very dangerous. If this throws, the object is hosed. When the
- // destructor is later called, the program is hosed too.
- this->~cmIStringStream();
- new (this) cmIStringStream(s);
- }
-private:
- cmIStringStream(const cmIStringStream&);
- void operator=(const cmIStringStream&);
-};
-#endif
-
/* Poison this operator to avoid common mistakes. */
-extern void operator << (std::ostream&, const cmOStringStream&);
+extern void operator << (std::ostream&, const std::ostringstream&);
/** Standard documentation entry for cmDocumentation's formatting. */
struct cmDocumentationEntry
@@ -332,10 +116,6 @@ public:
typedef Superclass::const_iterator const_iterator;
};
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma reset woff 1375 /* base class destructor not virtual */
-#endif
-
// All subclasses of cmCommand or cmCTestGenericHandler should
// invoke this macro.
#define cmTypeMacro(thisClass,superclass) \
@@ -363,6 +143,33 @@ static thisClass* SafeDownCast(cmObject *c) \
} \
class cmTypeMacro_UseTrailingSemicolon
+template<typename Range>
+std::string cmJoin(Range const& r, const char* delimiter)
+{
+ if (r.empty())
+ {
+ return std::string();
+ }
+ std::ostringstream os;
+ typedef typename Range::value_type ValueType;
+ typedef typename Range::const_iterator InputIt;
+ InputIt first = r.begin();
+ InputIt last = r.end();
+ --last;
+ std::copy(first, last,
+ std::ostream_iterator<ValueType>(os, delimiter));
+
+ os << *last;
+
+ return os.str();
+}
+
+template<typename Range>
+std::string cmJoin(Range const& r, std::string delimiter)
+{
+ return cmJoin(r, delimiter.c_str());
+};
+
inline bool cmHasLiteralPrefixImpl(const std::string &str1,
const char *str2,
size_t N)
@@ -393,20 +200,6 @@ inline bool cmHasLiteralSuffixImpl(const char* str1,
return len >= N && strcmp(str1 + len - N, str2) == 0;
}
-#if defined(__GNUC__) && __GNUC__ < 3
-
-#define cmArrayBegin(a) a
-#define cmArraySize(a) (sizeof(a)/sizeof(*a))
-#define cmArrayEnd(a) a + cmArraySize(a)
-
-#define cmHasLiteralPrefix(STR1, STR2) \
- cmHasLiteralPrefixImpl(STR1, "" STR2 "", sizeof(STR2) - 1)
-
-#define cmHasLiteralSuffix(STR1, STR2) \
- cmHasLiteralSuffixImpl(STR1, "" STR2 "", sizeof(STR2) - 1)
-
-#else
-
template<typename T, size_t N>
const T* cmArrayBegin(const T (&a)[N]) { return a; }
template<typename T, size_t N>
@@ -426,8 +219,6 @@ bool cmHasLiteralSuffix(T str1, const char (&str2)[N])
return cmHasLiteralSuffixImpl(str1, str2, N - 1);
}
-#endif
-
struct cmStrCmp {
cmStrCmp(const char *test) : m_test(test) {}
cmStrCmp(const std::string &test) : m_test(test) {}
diff --git a/Source/cmStandardLexer.h b/Source/cmStandardLexer.h
index 981e03e..bd08ac7 100644
--- a/Source/cmStandardLexer.h
+++ b/Source/cmStandardLexer.h
@@ -25,12 +25,6 @@
# pragma warning ( disable : 4786 )
#endif
-/* Make sure SGI termios does not define ECHO differently. */
-#if defined(__sgi) && !defined(__GNUC__)
-# include <sys/termios.h>
-# undef ECHO
-#endif
-
/* Define isatty on windows. */
#if defined(_WIN32) && !defined(__CYGWIN__)
# include <io.h>
diff --git a/Source/cmStringCommand.cxx b/Source/cmStringCommand.cxx
index 8341027..fe962ba 100644
--- a/Source/cmStringCommand.cxx
+++ b/Source/cmStringCommand.cxx
@@ -122,7 +122,7 @@ bool cmStringCommand::HandleHashCommand(std::vector<std::string> const& args)
#if defined(CMAKE_BUILD_WITH_CMAKE)
if(args.size() != 3)
{
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " requires an output variable and an input string";
this->SetError(e.str());
return false;
@@ -137,7 +137,7 @@ bool cmStringCommand::HandleHashCommand(std::vector<std::string> const& args)
}
return false;
#else
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " not available during bootstrap";
this->SetError(e.str().c_str());
return false;
@@ -233,7 +233,7 @@ bool cmStringCommand::HandleConfigureCommand(
}
else
{
- cmOStringStream err;
+ std::ostringstream err;
err << "Unrecognized argument \"" << args[i] << "\"";
this->SetError(err.str());
return false;
@@ -591,7 +591,7 @@ bool cmStringCommand::HandleFindCommand(std::vector<std::string> const&
}
if(std::string::npos != pos)
{
- cmOStringStream s;
+ std::ostringstream s;
s << pos;
this->Makefile->AddDefinition(outvar, s.str().c_str());
return true;
@@ -705,7 +705,7 @@ bool cmStringCommand::HandleSubstringCommand(std::vector<std::string> const&
int intStringLength = static_cast<int>(stringLength);
if ( begin < 0 || begin > intStringLength )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "begin index: " << begin << " is out of range 0 - "
<< stringLength;
this->SetError(ostr.str());
@@ -713,7 +713,7 @@ bool cmStringCommand::HandleSubstringCommand(std::vector<std::string> const&
}
if ( end < -1 )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "end index: " << end << " should be -1 or greater";
this->SetError(ostr.str());
return false;
@@ -1089,7 +1089,7 @@ bool cmStringCommand
this->Makefile->AddDefinition(outputVariable, uuid.c_str());
return true;
#else
- cmOStringStream e;
+ std::ostringstream e;
e << args[0] << " not available during bootstrap";
this->SetError(e.str().c_str());
return false;
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 1c8c387..c769154 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -79,10 +79,6 @@ public:
#endif
};
-#if defined(__sgi) && !defined(__GNUC__)
-# pragma set woff 1375 /* base class destructor not virtual */
-#endif
-
#if !defined(HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE)
// For GetEnvironmentVariables
# if defined(_WIN32)
@@ -828,18 +824,12 @@ bool cmSystemTools::RunSingleCommand(
std::string
cmSystemTools::PrintSingleCommand(std::vector<std::string> const& command)
{
- std::string commandStr;
- const char* sep = "";
- for(std::vector<std::string>::const_iterator i = command.begin();
- i != command.end(); ++i)
+ if (command.empty())
{
- commandStr += sep;
- commandStr += "\"";
- commandStr += *i;
- commandStr += "\"";
- sep = " ";
+ return std::string();
}
- return commandStr;
+
+ return "\"" + cmJoin(command, "\" \"") + "\"";
}
bool cmSystemTools::DoesFileExistWithExtensions(
@@ -1273,11 +1263,7 @@ bool cmSystemTools::Split(const char* s, std::vector<std::string>& l)
{
std::vector<std::string> temp;
bool res = Superclass::Split(s, temp);
- for(std::vector<std::string>::const_iterator i = temp.begin();
- i != temp.end(); ++i)
- {
- l.push_back(*i);
- }
+ l.insert(l.end(), temp.begin(), temp.end());
return res;
}
@@ -1482,7 +1468,8 @@ bool cmSystemTools::IsPathToFramework(const char* path)
bool cmSystemTools::CreateTar(const char* outFileName,
const std::vector<std::string>& files,
- bool gzip, bool bzip2, bool verbose)
+ cmTarCompression compressType,
+ bool verbose)
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
@@ -1496,10 +1483,24 @@ bool cmSystemTools::CreateTar(const char* outFileName,
cmSystemTools::Error(e.c_str());
return false;
}
- cmArchiveWrite a(fout, (gzip? cmArchiveWrite::CompressGZip :
- (bzip2? cmArchiveWrite::CompressBZip2 :
- cmArchiveWrite::CompressNone)),
- cmArchiveWrite::TypeTAR);
+ cmArchiveWrite::Compress compress = cmArchiveWrite::CompressNone;
+ switch (compressType)
+ {
+ case TarCompressGZip:
+ compress = cmArchiveWrite::CompressGZip;
+ break;
+ case TarCompressBZip2:
+ compress = cmArchiveWrite::CompressBZip2;
+ break;
+ case TarCompressXZ:
+ compress = cmArchiveWrite::CompressXZ;
+ break;
+ case TarCompressNone:
+ compress = cmArchiveWrite::CompressNone;
+ break;
+ }
+ cmArchiveWrite a(fout, compress,
+ cmArchiveWrite::TypeTAR);
a.SetVerbose(verbose);
for(std::vector<std::string>::const_iterator i = files.begin();
i != files.end(); ++i)
@@ -1524,7 +1525,6 @@ bool cmSystemTools::CreateTar(const char* outFileName,
#else
(void)outFileName;
(void)files;
- (void)gzip;
(void)verbose;
return false;
#endif
@@ -1785,7 +1785,7 @@ bool extract_tar(const char* outFileName, bool verbose,
#endif
bool cmSystemTools::ExtractTar(const char* outFileName,
- bool , bool verbose)
+ bool verbose)
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
return extract_tar(outFileName, verbose, true);
@@ -1797,7 +1797,6 @@ bool cmSystemTools::ExtractTar(const char* outFileName,
}
bool cmSystemTools::ListTar(const char* outFileName,
- bool ,
bool verbose)
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
@@ -2505,7 +2504,7 @@ bool cmSystemTools::ChangeRPath(std::string const& file,
}
if(emsg)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The current " << se_name[i] << " is:\n"
<< " " << se[i]->Value << "\n"
<< "which does not contain:\n"
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index d49af74..09ceea6 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -383,12 +383,19 @@ public:
static void EnableVSConsoleOutput();
/** Create tar */
+ enum cmTarCompression
+ {
+ TarCompressGZip,
+ TarCompressBZip2,
+ TarCompressXZ,
+ TarCompressNone
+ };
static bool ListTar(const char* outFileName,
- bool gzip, bool verbose);
+ bool verbose);
static bool CreateTar(const char* outFileName,
- const std::vector<std::string>& files, bool gzip,
- bool bzip2, bool verbose);
- static bool ExtractTar(const char* inFileName, bool gzip,
+ const std::vector<std::string>& files,
+ cmTarCompression compressType, bool verbose);
+ static bool ExtractTar(const char* inFileName,
bool verbose);
// This should be called first thing in main
// it will keep child processes from inheriting the
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 94a6de3..b138f0a 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -424,12 +424,8 @@ void cmTarget::SetMakefile(cmMakefile* mf)
const std::set<std::string> parentSystemIncludes =
this->Makefile->GetSystemIncludeDirectories();
- for (std::set<std::string>::const_iterator it
- = parentSystemIncludes.begin();
- it != parentSystemIncludes.end(); ++it)
- {
- this->SystemIncludeDirectories.insert(*it);
- }
+ this->SystemIncludeDirectories.insert(parentSystemIncludes.begin(),
+ parentSystemIncludes.end());
const std::vector<cmValueWithOrigin> parentOptions =
this->Makefile->GetCompileOptionsEntries();
@@ -686,7 +682,7 @@ static bool processSources(cmTarget const* tgt,
if (!targetName.empty() && !cmSystemTools::FileIsFullPath(src.c_str()))
{
- cmOStringStream err;
+ std::ostringstream err;
if (!targetName.empty())
{
err << "Target \"" << targetName << "\" contains relative "
@@ -863,7 +859,7 @@ cmTarget::GetConfigCommonSourceFiles(std::vector<cmSourceFile*>& files) const
thisConfigFiles += (*fi)->GetFullPath();
sep = "\n ";
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << this->Name << "\" has source files which vary by "
"configuration. This is not supported by the \""
<< this->Makefile->GetLocalGenerator()
@@ -923,16 +919,7 @@ void cmTarget::GetSourceFiles(std::vector<cmSourceFile*> &files,
//----------------------------------------------------------------------------
void cmTarget::AddTracedSources(std::vector<std::string> const& srcs)
{
- std::string srcFiles;
- const char* sep = "";
- for(std::vector<std::string>::const_iterator i = srcs.begin();
- i != srcs.end(); ++i)
- {
- std::string filename = *i;
- srcFiles += sep;
- srcFiles += filename;
- sep = ";";
- }
+ std::string srcFiles = cmJoin(srcs, ";");
if (!srcFiles.empty())
{
this->Internal->SourceFilesMap.clear();
@@ -996,7 +983,7 @@ std::string cmTarget::ProcessSourceItemCMP0049(const std::string& s)
this->Makefile->ExpandVariablesInString(src);
if (src != s)
{
- cmOStringStream e;
+ std::ostringstream e;
bool noMessage = false;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0049))
@@ -1279,7 +1266,7 @@ bool cmTarget::PushTLLCommandTrace(TLLSignature signature)
}
//----------------------------------------------------------------------------
-void cmTarget::GetTllSignatureTraces(cmOStringStream &s,
+void cmTarget::GetTllSignatureTraces(std::ostringstream &s,
TLLSignature sig) const
{
std::vector<cmListFileBacktrace> sigs;
@@ -1307,7 +1294,7 @@ void cmTarget::GetTllSignatureTraces(cmOStringStream &s,
if(i != it->end())
{
cmListFileContext const& lfc = *i;
- cmOStringStream line;
+ std::ostringstream line;
line << " * " << (lfc.Line? "": " in ") << lfc << std::endl;
if (emitted.insert(line.str()).second)
{
@@ -1397,22 +1384,14 @@ void cmTarget::AddLinkLibrary(cmMakefile& mf,
void
cmTarget::AddSystemIncludeDirectories(const std::set<std::string> &incs)
{
- for(std::set<std::string>::const_iterator li = incs.begin();
- li != incs.end(); ++li)
- {
- this->SystemIncludeDirectories.insert(*li);
- }
+ this->SystemIncludeDirectories.insert(incs.begin(), incs.end());
}
//----------------------------------------------------------------------------
void
cmTarget::AddSystemIncludeDirectories(const std::vector<std::string> &incs)
{
- for(std::vector<std::string>::const_iterator li = incs.begin();
- li != incs.end(); ++li)
- {
- this->SystemIncludeDirectories.insert(*li);
- }
+ this->SystemIncludeDirectories.insert(incs.begin(), incs.end());
}
#if defined(_WIN32) && !defined(__CYGWIN__)
@@ -1749,7 +1728,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
if (this->GetType() == INTERFACE_LIBRARY
&& !whiteListedInterfaceProperty(prop))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \"" << prop << "\" is not allowed.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1757,7 +1736,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
else if (prop == "NAME")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "NAME property is read-only\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return;
@@ -1800,7 +1779,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
else if(prop == "EXPORT_NAME" && this->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "EXPORT_NAME property can't be set on imported targets (\""
<< this->Name << "\")\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1816,7 +1795,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
{
if(this->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "SOURCES property can't be set on imported targets (\""
<< this->Name << "\")\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1844,7 +1823,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
if (this->GetType() == INTERFACE_LIBRARY
&& !whiteListedInterfaceProperty(prop))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \"" << prop << "\" is not allowed.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1852,7 +1831,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
else if (prop == "NAME")
{
- cmOStringStream e;
+ std::ostringstream e;
e << "NAME property is read-only\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
return;
@@ -1887,7 +1866,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
else if(prop == "EXPORT_NAME" && this->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "EXPORT_NAME property can't be set on imported targets (\""
<< this->Name << "\")\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1902,7 +1881,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
{
if(this->IsImported())
{
- cmOStringStream e;
+ std::ostringstream e;
e << "SOURCES property can't be set on imported targets (\""
<< this->Name << "\")\n";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -1931,7 +1910,7 @@ std::string cmTarget::GetExportName() const
{
if (!cmGeneratorExpression::IsValidTargetName(exportName))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "EXPORT_NAME property \"" << exportName << "\" for \""
<< this->GetName() << "\": is not valid.";
cmSystemTools::Error(e.str().c_str());
@@ -2043,7 +2022,7 @@ static void processIncludeDirectories(cmTarget const* tgt,
if (fromImported
&& !cmSystemTools::FileExists(li->c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::FATAL_ERROR;
if (checkCMP0027)
{
@@ -2076,7 +2055,7 @@ static void processIncludeDirectories(cmTarget const* tgt,
if (!cmSystemTools::FileIsFullPath(li->c_str()))
{
- cmOStringStream e;
+ std::ostringstream e;
bool noMessage = false;
cmake::MessageType messageType = cmake::FATAL_ERROR;
if (!targetName.empty())
@@ -2426,7 +2405,7 @@ void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
{
case cmPolicies::WARN:
{
- cmOStringStream e;
+ std::ostringstream e;
e << this->Makefile->GetCMakeInstance()->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0043);
this->Makefile->IssueMessage(cmake::AUTHOR_WARNING,
@@ -2559,7 +2538,7 @@ static void cmTargetCheckLINK_INTERFACE_LIBRARIES(
"LINK_INTERFACE_LIBRARIES");
// Report an error.
- cmOStringStream e;
+ std::ostringstream e;
e << "Property " << prop << " may not contain link-type keyword \""
<< keys.match(2) << "\". "
<< "The " << base << " property has a per-configuration "
@@ -2596,7 +2575,7 @@ static void cmTargetCheckINTERFACE_LINK_LIBRARIES(const char* value,
}
// Report an error.
- cmOStringStream e;
+ std::ostringstream e;
e << "Property INTERFACE_LINK_LIBRARIES may not contain link-type "
"keyword \"" << keys.match(2) << "\". The INTERFACE_LINK_LIBRARIES "
@@ -2895,7 +2874,7 @@ bool cmTarget::HandleLocationPropertyPolicy(cmMakefile* context) const
{
return true;
}
- cmOStringStream e;
+ std::ostringstream e;
const char *modal = 0;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch (context->GetPolicyStatus(cmPolicies::CMP0026))
@@ -2954,7 +2933,7 @@ const char *cmTarget::GetProperty(const std::string& prop,
if (this->GetType() == INTERFACE_LIBRARY
&& !whiteListedInterfaceProperty(prop))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "INTERFACE_LIBRARY targets may only have whitelisted properties. "
"The property \"" << prop << "\" is not allowed.";
context->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -3130,7 +3109,7 @@ const char *cmTarget::GetProperty(const std::string& prop,
return 0;
}
- cmOStringStream ss;
+ std::ostringstream ss;
const char* sep = "";
typedef cmTargetInternals::TargetPropertyEntry
TargetPropertyEntry;
@@ -3160,7 +3139,7 @@ const char *cmTarget::GetProperty(const std::string& prop,
bool addContent = false;
bool noMessage = true;
- cmOStringStream e;
+ std::ostringstream e;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(context->GetPolicyStatus(cmPolicies::CMP0051))
{
@@ -3258,7 +3237,7 @@ public:
{
bool noMessage = false;
cmake::MessageType messageType = cmake::FATAL_ERROR;
- cmOStringStream e;
+ std::ostringstream e;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0028))
{
case cmPolicies::WARN:
@@ -3379,7 +3358,7 @@ public:
}
else if(this->Preferred.size() > 1)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target " << this->Target->GetName()
<< " contains multiple languages with the highest linker preference"
<< " (" << this->Preference << "):\n";
@@ -3751,7 +3730,7 @@ bool cmTarget::HasMacOSXRpathInstallNameDir(const std::string& config) const
if(!this->Makefile->IsSet("CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG"))
{
- cmOStringStream w;
+ std::ostringstream w;
w << "Attempting to use";
if(macosx_rpath)
{
@@ -5049,7 +5028,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
report += compatibilityAgree(t, propContent != consistent.second);
if (!consistent.first)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Property " << p << " on target \""
<< tgt->GetName() << "\" does\nnot match the "
"INTERFACE_" << p << " property requirement\nof "
@@ -5082,7 +5061,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
report += compatibilityAgree(t, propContent != consistent.second);
if (!consistent.first)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Property " << p << " on target \""
<< tgt->GetName() << "\" is\nimplied to be " << defaultValue
<< " because it was used to determine the link libraries\n"
@@ -5116,7 +5095,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
report += compatibilityAgree(t, propContent != consistent.second);
if (!consistent.first)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The INTERFACE_" << p << " property of \""
<< theTarget->GetName() << "\" does\nnot agree with the value "
"of " << p << " already determined\nfor \""
@@ -6024,7 +6003,7 @@ cmTargetInternals::ComputeLinkInterfaceLibraries(
if (newExplicitLibraries
&& strcmp(newExplicitLibraries, explicitLibraries) != 0)
{
- cmOStringStream w;
+ std::ostringstream w;
w <<
(thisTarget->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0022)) << "\n"
@@ -6070,8 +6049,8 @@ cmTargetInternals::ComputeLinkInterfaceLibraries(
// The link implementation is the default link interface.
cmTarget::LinkImplementationLibraries const* impl =
thisTarget->GetLinkImplementationLibrariesInternal(config, headTarget);
- std::copy(impl->Libraries.begin(), impl->Libraries.end(),
- std::back_inserter(iface.Libraries));
+ iface.Libraries.insert(iface.Libraries.end(),
+ impl->Libraries.begin(), impl->Libraries.end());
if(thisTarget->PolicyStatusCMP0022 == cmPolicies::WARN &&
!this->PolicyWarnedCMP0022 && !usage_requirements_only)
{
@@ -6088,30 +6067,14 @@ cmTargetInternals::ComputeLinkInterfaceLibraries(
}
if (ifaceLibs != iface.Libraries)
{
- std::string oldLibraries;
- std::string newLibraries;
- const char *sep = "";
- for(std::vector<cmLinkImplItem>::const_iterator it
- = impl->Libraries.begin(); it != impl->Libraries.end(); ++it)
- {
- oldLibraries += sep;
- oldLibraries += *it;
- sep = ";";
- }
- sep = "";
- for(std::vector<cmLinkItem>::const_iterator it
- = ifaceLibs.begin(); it != ifaceLibs.end(); ++it)
- {
- newLibraries += sep;
- newLibraries += *it;
- sep = ";";
- }
+ std::string oldLibraries = cmJoin(impl->Libraries, ";");
+ std::string newLibraries = cmJoin(ifaceLibs, ";");
if(oldLibraries.empty())
{ oldLibraries = "(empty)"; }
if(newLibraries.empty())
{ newLibraries = "(empty)"; }
- cmOStringStream w;
+ std::ostringstream w;
w <<
(thisTarget->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0022)) << "\n"
@@ -6366,7 +6329,7 @@ cmTargetInternals::ComputeLinkImplementationLibraries(
{
bool noMessage = false;
cmake::MessageType messageType = cmake::FATAL_ERROR;
- cmOStringStream e;
+ std::ostringstream e;
switch(thisTarget->GetPolicyStatusCMP0038())
{
case cmPolicies::WARN:
@@ -6449,11 +6412,8 @@ cmTargetInternals::ComputeLinkImplementationLanguages(
// Get languages used in our source files.
thisTarget->GetLanguages(languages, config);
// Copy the set of langauges to the link implementation.
- for(std::set<std::string>::iterator li = languages.begin();
- li != languages.end(); ++li)
- {
- impl.Languages.push_back(*li);
- }
+ impl.Languages.insert(impl.Languages.begin(),
+ languages.begin(), languages.end());
}
//----------------------------------------------------------------------------
@@ -6472,7 +6432,7 @@ cmTarget const* cmTarget::FindTargetToLink(std::string const& name) const
if(tgt && tgt->GetType() == cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << this->GetName() << "\" links to "
"OBJECT library \"" << tgt->GetName() << "\" but this is not "
"allowed. "
@@ -6511,7 +6471,7 @@ std::string cmTarget::CheckCMP0004(std::string const& item) const
{
case cmPolicies::WARN:
{
- cmOStringStream w;
+ std::ostringstream w;
w << (this->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0004)) << "\n"
<< "Target \"" << this->GetName() << "\" links to item \""
@@ -6523,7 +6483,7 @@ std::string cmTarget::CheckCMP0004(std::string const& item) const
break;
case cmPolicies::NEW:
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << this->GetName() << "\" links to item \""
<< item << "\" which has leading or trailing whitespace. "
<< "This is now an error according to policy CMP0004.";
@@ -6533,7 +6493,7 @@ std::string cmTarget::CheckCMP0004(std::string const& item) const
case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS:
{
- cmOStringStream e;
+ std::ostringstream e;
e << (this->Makefile->GetPolicies()
->GetRequiredPolicyError(cmPolicies::CMP0004)) << "\n"
<< "Target \"" << this->GetName() << "\" links to item \""
@@ -6614,7 +6574,7 @@ void checkPropertyConsistency(cmTarget const* depender,
std::string pfile = pdir + pname + ".rst";
if(cmSystemTools::FileExists(pfile.c_str(), true))
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Target \"" << dependee->GetName() << "\" has property \""
<< *pi << "\" listed in its " << propName << " property. "
"This is not allowed. Only user-defined properties may appear "
@@ -6776,7 +6736,7 @@ void cmTarget::CheckPropertyCompatibility(cmComputeLinkInformation *info,
{
propsString += " and the " + *props.begin();
}
- cmOStringStream e;
+ std::ostringstream e;
e << "Property \"" << prop << "\" appears in both the "
<< propsString <<
" property in the dependencies of target \"" << this->GetName() <<
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index a3ecca0..ddd9859 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -202,7 +202,7 @@ public:
PlainTLLSignature
};
bool PushTLLCommandTrace(TLLSignature signature);
- void GetTllSignatureTraces(cmOStringStream &s, TLLSignature sig) const;
+ void GetTllSignatureTraces(std::ostringstream &s, TLLSignature sig) const;
void MergeLinkLibraries( cmMakefile& mf, const std::string& selfname,
const LinkLibraryVectorType& libs );
diff --git a/Source/cmTargetCompileDefinitionsCommand.cxx b/Source/cmTargetCompileDefinitionsCommand.cxx
index 66d8ad3..dc19720 100644
--- a/Source/cmTargetCompileDefinitionsCommand.cxx
+++ b/Source/cmTargetCompileDefinitionsCommand.cxx
@@ -20,7 +20,7 @@ bool cmTargetCompileDefinitionsCommand
void cmTargetCompileDefinitionsCommand
::HandleImportedTarget(const std::string &tgt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile definitions for imported target \""
<< tgt << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -29,7 +29,7 @@ void cmTargetCompileDefinitionsCommand
void cmTargetCompileDefinitionsCommand
::HandleMissingTarget(const std::string &name)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile definitions for target \"" << name << "\" "
"which is not built by this project.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
diff --git a/Source/cmTargetCompileFeaturesCommand.cxx b/Source/cmTargetCompileFeaturesCommand.cxx
index 10daad4..6ebc31e 100644
--- a/Source/cmTargetCompileFeaturesCommand.cxx
+++ b/Source/cmTargetCompileFeaturesCommand.cxx
@@ -21,7 +21,7 @@ bool cmTargetCompileFeaturesCommand::InitialPass(
void cmTargetCompileFeaturesCommand
::HandleImportedTarget(const std::string &tgt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile features for imported target \""
<< tgt << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -30,7 +30,7 @@ void cmTargetCompileFeaturesCommand
void cmTargetCompileFeaturesCommand
::HandleMissingTarget(const std::string &name)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile features for target \"" << name << "\" "
"which is not built by this project.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -40,15 +40,7 @@ void cmTargetCompileFeaturesCommand
std::string cmTargetCompileFeaturesCommand
::Join(const std::vector<std::string> &content)
{
- std::string defs;
- std::string sep;
- for(std::vector<std::string>::const_iterator it = content.begin();
- it != content.end(); ++it)
- {
- defs += sep + *it;
- sep = ";";
- }
- return defs;
+ return cmJoin(content, ";");
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTargetCompileOptionsCommand.cxx b/Source/cmTargetCompileOptionsCommand.cxx
index 3fb76a6..8c6fc06 100644
--- a/Source/cmTargetCompileOptionsCommand.cxx
+++ b/Source/cmTargetCompileOptionsCommand.cxx
@@ -20,7 +20,7 @@ bool cmTargetCompileOptionsCommand
void cmTargetCompileOptionsCommand
::HandleImportedTarget(const std::string &tgt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile options for imported target \""
<< tgt << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -29,7 +29,7 @@ void cmTargetCompileOptionsCommand
void cmTargetCompileOptionsCommand
::HandleMissingTarget(const std::string &name)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify compile options for target \"" << name << "\" "
"which is not built by this project.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -39,15 +39,7 @@ void cmTargetCompileOptionsCommand
std::string cmTargetCompileOptionsCommand
::Join(const std::vector<std::string> &content)
{
- std::string defs;
- std::string sep;
- for(std::vector<std::string>::const_iterator it = content.begin();
- it != content.end(); ++it)
- {
- defs += sep + *it;
- sep = ";";
- }
- return defs;
+ return cmJoin(content, ";");
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index e9f0e04..b638e57 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -25,7 +25,7 @@ bool cmTargetIncludeDirectoriesCommand
void cmTargetIncludeDirectoriesCommand
::HandleImportedTarget(const std::string &tgt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify include directories for imported target \""
<< tgt << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -35,7 +35,7 @@ void cmTargetIncludeDirectoriesCommand
void cmTargetIncludeDirectoriesCommand
::HandleMissingTarget(const std::string &name)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify include directories for target \"" << name << "\" "
"which is not built by this project.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -91,15 +91,7 @@ void cmTargetIncludeDirectoriesCommand
if (system)
{
- std::string joined;
- std::string sep;
- for(std::vector<std::string>::const_iterator it = content.begin();
- it != content.end(); ++it)
- {
- joined += sep;
- sep = ";";
- joined += *it;
- }
+ std::string joined = cmJoin(content, ";");
tgt->AppendProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES",
joined.c_str());
}
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx
index 56e1338..75c94c5 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -43,7 +43,7 @@ bool cmTargetLinkLibrariesCommand
if(!this->Target)
{
cmake::MessageType t = cmake::FATAL_ERROR; // fail by default
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify link libraries for target \"" << args[0] << "\" "
<< "which is not built by this project.";
// The bad target is the only argument. Check how policy CMP0016 is set,
@@ -92,7 +92,7 @@ bool cmTargetLinkLibrariesCommand
if(this->Target->GetType() == cmTarget::OBJECT_LIBRARY)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Object library target \"" << args[0] << "\" "
<< "may not link to anything.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -102,7 +102,7 @@ bool cmTargetLinkLibrariesCommand
if (this->Target->GetType() == cmTarget::UTILITY)
{
- cmOStringStream e;
+ std::ostringstream e;
const char *modal = 0;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0039))
@@ -311,7 +311,7 @@ bool cmTargetLinkLibrariesCommand
// Make sure the last argument was not a library type specifier.
if(haveLLT)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "The \"" << this->LinkLibraryTypeNames[llt]
<< "\" argument must be followed by a library.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -342,7 +342,7 @@ void
cmTargetLinkLibrariesCommand
::LinkLibraryTypeSpecifierWarning(int left, int right)
{
- cmOStringStream w;
+ std::ostringstream w;
w << "Link library type specifier \""
<< this->LinkLibraryTypeNames[left] << "\" is followed by specifier \""
<< this->LinkLibraryTypeNames[right] << "\" instead of a library name. "
@@ -373,7 +373,7 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const std::string& lib,
? cmTarget::KeywordTLLSignature : cmTarget::PlainTLLSignature;
if (!this->Target->PushTLLCommandTrace(sig))
{
- cmOStringStream e;
+ std::ostringstream e;
const char *modal = 0;
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0023))
diff --git a/Source/cmTargetSourcesCommand.cxx b/Source/cmTargetSourcesCommand.cxx
index ce3b11e..0a44d6f 100644
--- a/Source/cmTargetSourcesCommand.cxx
+++ b/Source/cmTargetSourcesCommand.cxx
@@ -24,7 +24,7 @@ bool cmTargetSourcesCommand
void cmTargetSourcesCommand
::HandleImportedTarget(const std::string &tgt)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify sources for imported target \""
<< tgt << "\".";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -34,7 +34,7 @@ void cmTargetSourcesCommand
void cmTargetSourcesCommand
::HandleMissingTarget(const std::string &name)
{
- cmOStringStream e;
+ std::ostringstream e;
e << "Cannot specify sources for target \"" << name << "\" "
"which is not built by this project.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
@@ -44,15 +44,7 @@ void cmTargetSourcesCommand
std::string cmTargetSourcesCommand
::Join(const std::vector<std::string> &content)
{
- std::string srcs;
- std::string sep;
- for(std::vector<std::string>::const_iterator it = content.begin();
- it != content.end(); ++it)
- {
- srcs += sep + *it;
- sep = ";";
- }
- return srcs;
+ return cmJoin(content, ";");
}
//----------------------------------------------------------------------------
diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx
index debe243..9473008 100644
--- a/Source/cmVariableWatchCommand.cxx
+++ b/Source/cmVariableWatchCommand.cxx
@@ -70,7 +70,7 @@ static void cmVariableWatchCommandVariableAccessed(
{
arg.FilePath = "Unknown";
arg.Line = 0;
- cmOStringStream error;
+ std::ostringstream error;
error << "Error in cmake code at\n"
<< arg.FilePath << ":" << arg.Line << ":\n"
<< "A command failed during the invocation of callback \""
@@ -83,7 +83,7 @@ static void cmVariableWatchCommandVariableAccessed(
}
if ( !processed )
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Variable \"" << variable << "\" was accessed using "
<< accessString << " with value \"" << (newValue?newValue:"") << "\".";
makefile->IssueMessage(cmake::LOG, msg.str());
@@ -135,7 +135,7 @@ bool cmVariableWatchCommand
}
if ( variable == "CMAKE_CURRENT_LIST_FILE" )
{
- cmOStringStream ostr;
+ std::ostringstream ostr;
ostr << "cannot be set on the variable: " << variable;
this->SetError(ostr.str());
return false;
diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx
index 391b874..1d3e0e9 100644
--- a/Source/cmXMLParser.cxx
+++ b/Source/cmXMLParser.cxx
@@ -54,7 +54,7 @@ int cmXMLParser::ParseFile(const char* file)
return 0;
}
- cmOStringStream str;
+ std::ostringstream str;
str << ifs.rdbuf();
return this->Parse(str.str().c_str());
}
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index bbd3fe4..5e48157 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1182,7 +1182,7 @@ int cmake::DoPreConfigureChecks()
srcList += "/CMakeLists.txt";
if(!cmSystemTools::FileExists(srcList.c_str()))
{
- cmOStringStream err;
+ std::ostringstream err;
if(cmSystemTools::FileIsDirectory(this->GetHomeDirectory()))
{
err << "The source directory \"" << this->GetHomeDirectory()
@@ -1250,7 +1250,7 @@ int cmake::HandleDeleteCacheVariables(const std::string& var)
}
cmCacheManager::CacheIterator ci = this->CacheManager->NewIterator();
std::vector<SaveCacheEntry> saved;
- cmOStringStream warning;
+ std::ostringstream warning;
warning
<< "You have changed variables that require your cache to be deleted.\n"
<< "Configure will be re-run and you may have to reset some variables.\n"
@@ -1971,7 +1971,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake no build system arguments\n";
cmSystemTools::Stdout(msg.str().c_str());
}
@@ -1983,7 +1983,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake missing file: "
<< this->CheckBuildSystemArgument << "\n";
cmSystemTools::Stdout(msg.str().c_str());
@@ -2003,7 +2003,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake error reading : "
<< this->CheckBuildSystemArgument << "\n";
cmSystemTools::Stdout(msg.str().c_str());
@@ -2045,7 +2045,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake, missing byproduct: " << *pi << "\n";
cmSystemTools::Stdout(msg.str().c_str());
}
@@ -2068,7 +2068,7 @@ int cmake::CheckBuildSystem()
// Not enough information was provided to do the test. Just rerun.
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake no CMAKE_MAKEFILE_DEPENDS "
"or CMAKE_MAKEFILE_OUTPUTS :\n";
cmSystemTools::Stdout(msg.str().c_str());
@@ -2094,7 +2094,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake: build system dependency is missing\n";
cmSystemTools::Stdout(msg.str().c_str());
}
@@ -2120,7 +2120,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake: build system output is missing\n";
cmSystemTools::Stdout(msg.str().c_str());
}
@@ -2138,7 +2138,7 @@ int cmake::CheckBuildSystem()
{
if(verbose)
{
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Re-run cmake file: " << out_oldest
<< " older than: " << dep_newest << "\n";
cmSystemTools::Stdout(msg.str().c_str());
@@ -2320,14 +2320,7 @@ const char *cmake::GetProperty(const std::string& prop,
{
std::vector<std::string> enLangs;
this->GlobalGenerator->GetEnabledLanguages(enLangs);
- const char* sep = "";
- for(std::vector<std::string>::iterator i = enLangs.begin();
- i != enLangs.end(); ++i)
- {
- lang += sep;
- sep = ";";
- lang += *i;
- }
+ lang = cmJoin(enLangs, ";");
}
this->SetProperty("ENABLED_LANGUAGES", lang.c_str());
}
@@ -2563,7 +2556,7 @@ static bool cmakeCheckStampFile(const char* stampName)
// The build system is up to date. The stamp file has been removed
// by the VS IDE due to a "rebuild" request. Restore it atomically.
- cmOStringStream stampTempStream;
+ std::ostringstream stampTempStream;
stampTempStream << stampName << ".tmp" << cmSystemTools::RandomSeed();
std::string stampTempString = stampTempStream.str();
const char* stampTemp = stampTempString.c_str();
@@ -2627,7 +2620,7 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
cmListFileBacktrace backtrace = bt;
backtrace.MakeRelative();
- cmOStringStream msg;
+ std::ostringstream msg;
bool isError = false;
// Construct the message header.
if(t == cmake::FATAL_ERROR)
@@ -2835,7 +2828,7 @@ void cmake::RunCheckForUnusedVariables()
{
#ifdef CMAKE_BUILD_WITH_CMAKE
bool haveUnused = false;
- cmOStringStream msg;
+ std::ostringstream msg;
msg << "Manually-specified variables were not used by the project:";
for(std::map<std::string, bool>::const_iterator
it = this->UsedCliVariables.begin();
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index a97444d..70d98d2 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -36,7 +36,7 @@
void CMakeCommandUsage(const char* program)
{
- cmOStringStream errorStream;
+ std::ostringstream errorStream;
#ifdef CMAKE_BUILD_WITH_CMAKE
errorStream
@@ -71,7 +71,7 @@ void CMakeCommandUsage(const char* program)
<< " remove_directory dir - remove a directory and its contents\n"
<< " rename oldname newname - rename a file or directory "
"(on one volume)\n"
- << " tar [cxt][vfz][cvfj] file.tar [file/dir1 file/dir2 ...]\n"
+ << " tar [cxt][vf][zjJ] file.tar [file/dir1 file/dir2 ...]\n"
<< " - create or extract a tar or zip archive\n"
<< " sleep <number>... - sleep for given number of seconds\n"
<< " time command [args] ... - run command and return elapsed time\n"
@@ -733,16 +733,30 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
{
files.push_back(args[cc]);
}
- bool gzip = false;
- bool bzip2 = false;
+ cmSystemTools::cmTarCompression compress =
+ cmSystemTools::TarCompressNone;
bool verbose = false;
+ int nCompress = 0;
if ( flags.find_first_of('j') != flags.npos )
{
- bzip2 = true;
+ compress = cmSystemTools::TarCompressBZip2;
+ ++nCompress;
+ }
+ if ( flags.find_first_of('J') != flags.npos )
+ {
+ compress = cmSystemTools::TarCompressXZ;
+ ++nCompress;
}
if ( flags.find_first_of('z') != flags.npos )
{
- gzip = true;
+ compress = cmSystemTools::TarCompressGZip;
+ ++nCompress;
+ }
+ if ( nCompress > 1 )
+ {
+ cmSystemTools::Error("Can only compress a tar file one way; "
+ "at most one flag of z, j, or J may be used");
+ return 1;
}
if ( flags.find_first_of('v') != flags.npos )
{
@@ -751,16 +765,16 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
if ( flags.find_first_of('t') != flags.npos )
{
- if ( !cmSystemTools::ListTar(outFile.c_str(), gzip, verbose) )
+ if ( !cmSystemTools::ListTar(outFile.c_str(), verbose) )
{
- cmSystemTools::Error("Problem creating tar: ", outFile.c_str());
+ cmSystemTools::Error("Problem listing tar: ", outFile.c_str());
return 1;
}
}
else if ( flags.find_first_of('c') != flags.npos )
{
if ( !cmSystemTools::CreateTar(
- outFile.c_str(), files, gzip, bzip2, verbose) )
+ outFile.c_str(), files, compress, verbose) )
{
cmSystemTools::Error("Problem creating tar: ", outFile.c_str());
return 1;
@@ -769,7 +783,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
else if ( flags.find_first_of('x') != flags.npos )
{
if ( !cmSystemTools::ExtractTar(
- outFile.c_str(), gzip, verbose) )
+ outFile.c_str(), verbose) )
{
cmSystemTools::Error("Problem extracting tar: ", outFile.c_str());
return 1;
diff --git a/Source/kwsys/Base64.c b/Source/kwsys/Base64.c
index d07bdd0..4b8ede2 100644
--- a/Source/kwsys/Base64.c
+++ b/Source/kwsys/Base64.c
@@ -115,10 +115,10 @@ void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest)
actually knowing how much data to expect (if the input is not a multiple of
3 bytes then the extra padding needed to complete the encode 4 bytes will
stop the decoding anyway). */
-unsigned long kwsysBase64_Encode(const unsigned char *input,
- unsigned long length,
- unsigned char *output,
- int mark_end)
+size_t kwsysBase64_Encode(const unsigned char *input,
+ size_t length,
+ unsigned char *output,
+ int mark_end)
{
const unsigned char *ptr = input;
const unsigned char *end = input + length;
@@ -157,7 +157,7 @@ unsigned long kwsysBase64_Encode(const unsigned char *input,
optr += 4;
}
- return (unsigned long)(optr - output);
+ return (size_t)(optr - output);
}
/*--------------------------------------------------------------------------*/
@@ -207,10 +207,10 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest)
'length' parameter is ignored. This enables the caller to decode a stream
without actually knowing how much decoded data to expect (of course, the
buffer must be large enough). */
-unsigned long kwsysBase64_Decode(const unsigned char *input,
- unsigned long length,
- unsigned char *output,
- unsigned long max_input_length)
+size_t kwsysBase64_Decode(const unsigned char *input,
+ size_t length,
+ unsigned char *output,
+ size_t max_input_length)
{
const unsigned char *ptr = input;
unsigned char *optr = output;
@@ -226,7 +226,7 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
optr += len;
if(len < 3)
{
- return (unsigned long)(optr - output);
+ return (size_t)(optr - output);
}
ptr += 4;
}
@@ -240,7 +240,7 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
optr += len;
if(len < 3)
{
- return (unsigned long)(optr - output);
+ return (size_t)(optr - output);
}
ptr += 4;
}
@@ -275,5 +275,5 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
}
}
- return (unsigned long)(optr - output);
+ return (size_t)(optr - output);
}
diff --git a/Source/kwsys/Base64.h.in b/Source/kwsys/Base64.h.in
index 3468007..36ed3cc 100644
--- a/Source/kwsys/Base64.h.in
+++ b/Source/kwsys/Base64.h.in
@@ -14,6 +14,8 @@
#include <@KWSYS_NAMESPACE@/Configure.h>
+#include <stddef.h> /* size_t */
+
/* Redefine all public interface symbol names to be in the proper
namespace. These macros are used internally to kwsys only, and are
not visible to user code. Use kwsysHeaderDump.pl to reproduce
@@ -68,10 +70,10 @@ kwsysEXPORT void kwsysBase64_Encode1(const unsigned char *src,
* the extra padding needed to complete the encode 4 bytes will stop
* the decoding anyway).
*/
-kwsysEXPORT unsigned long kwsysBase64_Encode(const unsigned char *input,
- unsigned long length,
- unsigned char *output,
- int mark_end);
+kwsysEXPORT size_t kwsysBase64_Encode(const unsigned char *input,
+ size_t length,
+ unsigned char *output,
+ int mark_end);
/**
* Decode 4 bytes into a 3 byte string. Returns the number of bytes
@@ -92,10 +94,10 @@ kwsysEXPORT int kwsysBase64_Decode3(const unsigned char *src,
* much decoded data to expect (of course, the buffer must be large
* enough).
*/
-kwsysEXPORT unsigned long kwsysBase64_Decode(const unsigned char *input,
- unsigned long length,
- unsigned char *output,
- unsigned long max_input_length);
+kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char *input,
+ size_t length,
+ unsigned char *output,
+ size_t max_input_length);
#if defined(__cplusplus)
} /* extern "C" */
diff --git a/Source/kwsys/EncodingC.c b/Source/kwsys/EncodingC.c
index cda78e2..ba2cec2 100644
--- a/Source/kwsys/EncodingC.c
+++ b/Source/kwsys/EncodingC.c
@@ -44,7 +44,7 @@ wchar_t* kwsysEncoding_DupToWide(const char* str)
size_t length = kwsysEncoding_mbstowcs(NULL, str, 0) + 1;
if(length > 0)
{
- ret = malloc((length)*sizeof(wchar_t));
+ ret = (wchar_t*)malloc((length)*sizeof(wchar_t));
ret[0] = 0;
kwsysEncoding_mbstowcs(ret, str, length);
}
@@ -71,7 +71,7 @@ char* kwsysEncoding_DupToNarrow(const wchar_t* str)
size_t length = kwsysEncoding_wcstombs(0, str, 0) + 1;
if(length > 0)
{
- ret = malloc(length);
+ ret = (char*)malloc(length);
ret[0] = 0;
kwsysEncoding_wcstombs(ret, str, length);
}
diff --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c
index ca9d424..1be6d02 100644
--- a/Source/kwsys/ProcessUNIX.c
+++ b/Source/kwsys/ProcessUNIX.c
@@ -547,7 +547,7 @@ int kwsysProcess_SetPipeFile(kwsysProcess* cp, int prPipe, const char* file)
}
if(file)
{
- *pfile = malloc(strlen(file)+1);
+ *pfile = (char*)malloc(strlen(file)+1);
if(!*pfile)
{
return 0;
@@ -1468,7 +1468,7 @@ static int kwsysProcessInitialize(kwsysProcess* cp)
cp->RealWorkingDirectoryLength = 4096;
#endif
cp->RealWorkingDirectory =
- malloc((size_t)(cp->RealWorkingDirectoryLength));
+ (char*)malloc((size_t)(cp->RealWorkingDirectoryLength));
if(!cp->RealWorkingDirectory)
{
return 0;
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index e4c82d8..c2b6097 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -16,6 +16,14 @@
# define _XOPEN_SOURCE_EXTENDED
#endif
+#if defined(_WIN32) && (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) || defined(__MINGW32__))
+# define KWSYS_WINDOWS_DIRS
+#else
+# if defined(__SUNPRO_CC)
+# include <fcntl.h>
+# endif
+#endif
+
#include "kwsysPrivate.h"
#include KWSYS_HEADER(RegularExpression.hxx)
#include KWSYS_HEADER(SystemTools.hxx)
@@ -205,8 +213,7 @@ static time_t windows_filetime_to_posix_time(const FILETIME& ft)
}
#endif
-#if defined(_WIN32) && (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) || defined(__MINGW32__))
-
+#ifdef KWSYS_WINDOWS_DIRS
#include <wctype.h>
inline int Mkdir(const kwsys_stl::string& dir)
diff --git a/Source/kwsys/Terminal.c b/Source/kwsys/Terminal.c
index e13003f..d13f79a 100644
--- a/Source/kwsys/Terminal.c
+++ b/Source/kwsys/Terminal.c
@@ -175,6 +175,7 @@ static const char* kwsysTerminalVT100Names[] =
"xterm-88color",
"xterm-color",
"xterm-debian",
+ "xterm-termite",
0
};
diff --git a/Source/kwsys/kwsysPlatformTestsCXX.cxx b/Source/kwsys/kwsysPlatformTestsCXX.cxx
index 3f947f3..82620da 100644
--- a/Source/kwsys/kwsysPlatformTestsCXX.cxx
+++ b/Source/kwsys/kwsysPlatformTestsCXX.cxx
@@ -548,6 +548,10 @@ int main()
#if (defined(__GNUC__) || defined(__PGI)) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+#if defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5130 \
+ && __linux && __SUNPRO_CC_COMPAT == 'G'
+# include <iostream>
+#endif
#include <cxxabi.h>
int main()
{
diff --git a/Tests/CMakeLib/testXMLSafe.cxx b/Tests/CMakeLib/testXMLSafe.cxx
index 60442fa..9e4960c 100644
--- a/Tests/CMakeLib/testXMLSafe.cxx
+++ b/Tests/CMakeLib/testXMLSafe.cxx
@@ -34,7 +34,7 @@ int testXMLSafe(int, char*[])
for(test_pair const* p = pairs; p->in; ++p)
{
cmXMLSafe xs(p->in);
- cmOStringStream oss;
+ std::ostringstream oss;
oss << xs;
std::string out = oss.str();
if(out != p->out)
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index ff5d745..9fb8d1b 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -1,5 +1,5 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.1)
project(CompileFeatures)
@@ -26,18 +26,31 @@ get_property(c_features GLOBAL PROPERTY CMAKE_C_KNOWN_FEATURES)
foreach(feature ${c_features})
run_test(${feature} C)
endforeach()
+
get_property(cxx_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES)
+
+if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ list(REMOVE_ITEM cxx_features
+ # This test requires auto return type deduction to work properly, but
+ # that is not supported by all versions of MSVC that support decltype
+ # incomplete return types.
+ cxx_decltype_incomplete_return_types
+ )
+endif()
+
foreach(feature ${cxx_features})
run_test(${feature} CXX)
endforeach()
-if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
+ # The cxx_alignof feature happens to work (for *this* testcase) with
+ # GNU 4.7, but it is first documented as available with GNU 4.8.
list(REMOVE_ITEM CXX_non_features
cxx_alignof
)
endif()
-if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
# GNU prior to 4.9 does not set any preprocessor define to distinguish
# c++1y from c++11, so CMake does not support c++1y features before GNU 4.9.
@@ -51,6 +64,17 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
)
endif()
+set(MSVC_)
+if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND
+ MSVC_VERSION LESS 1800)
+ list(REMOVE_ITEM CXX_non_features
+ # Microsoft only officially supports this feature in VS2013 and above, due
+ # to new wording of the proposal. We don't test for this with MSVC because
+ # older compiler pass the test but might not actually conform
+ cxx_contextual_conversions
+ )
+endif()
+
set(C_ext c)
set(C_standard_flag 11)
set(CXX_ext cpp)
@@ -120,17 +144,29 @@ if (CMAKE_CXX_COMPILE_FEATURES)
add_executable(IfaceCompileFeatures main.cpp)
target_link_libraries(IfaceCompileFeatures iface)
+ add_definitions(-DEXPECT_OVERRIDE_CONTROL=1)
+
add_executable(CompileFeaturesGenex genex_test.cpp)
set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11)
- target_compile_definitions(CompileFeaturesGenex PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+
+ target_compile_definitions(CompileFeaturesGenex PRIVATE
+ HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
+ HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
+ )
add_executable(CompileFeaturesGenex2 genex_test.cpp)
- target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_constexpr)
- target_compile_definitions(CompileFeaturesGenex2 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+ target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_static_assert)
+ target_compile_definitions(CompileFeaturesGenex2 PRIVATE
+ HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
+ HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
+ )
- add_library(noexcept_iface INTERFACE)
- target_compile_features(noexcept_iface INTERFACE cxx_noexcept)
+ add_library(static_assert_iface INTERFACE)
+ target_compile_features(static_assert_iface INTERFACE cxx_static_assert)
add_executable(CompileFeaturesGenex3 genex_test.cpp)
- target_link_libraries(CompileFeaturesGenex3 PRIVATE noexcept_iface)
- target_compile_definitions(CompileFeaturesGenex3 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+ target_link_libraries(CompileFeaturesGenex3 PRIVATE static_assert_iface)
+ target_compile_definitions(CompileFeaturesGenex3 PRIVATE
+ HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
+ HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
+ )
endif()
diff --git a/Tests/CompileFeatures/genex_test.cpp b/Tests/CompileFeatures/genex_test.cpp
index ca38883..4412569 100644
--- a/Tests/CompileFeatures/genex_test.cpp
+++ b/Tests/CompileFeatures/genex_test.cpp
@@ -1,6 +1,8 @@
#if !HAVE_OVERRIDE_CONTROL
+#if EXPECT_OVERRIDE_CONTROL
#error "Expect override control feature"
+#endif
#else
struct A
@@ -8,13 +10,24 @@ struct A
virtual int getA() { return 7; }
};
-struct B final : A
+struct B : A
{
int getA() override { return 42; }
};
#endif
+#if !HAVE_NULLPTR
+#error "Expect nullptr feature"
+#else
+
+const char* getString()
+{
+ return nullptr;
+}
+
+#endif
+
int main()
{
diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt
index bf23d4a..508221c 100644
--- a/Tests/Complex/Executable/CMakeLists.txt
+++ b/Tests/Complex/Executable/CMakeLists.txt
@@ -89,18 +89,22 @@ remove_definitions(-DCOMPLEX_DEFINED)
# Test pre-build/pre-link/post-build rules for an executable.
add_custom_command(TARGET complex PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
+ ARGS "Executable/prebuild.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex PRE_LINK
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
+ ARGS "Executable/prelink.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex POST_BUILD
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
+ ARGS "Executable/postbuild.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
- "${Complex_BINARY_DIR}/Executable/postbuild.txt"
- "${Complex_BINARY_DIR}/Executable/postbuild2.txt")
+ "Executable/postbuild.txt"
+ "Executable/postbuild2.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
set_source_files_properties(complex
COMPILE_FLAGS
diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx
index 31442ba..ec222a5 100644
--- a/Tests/Complex/Executable/complex.cxx
+++ b/Tests/Complex/Executable/complex.cxx
@@ -716,14 +716,14 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Library/prebuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/prelink.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/postbuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/postbuild2.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/prebuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/prelink.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/postbuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/postbuild2.txt");
+ TestAndRemoveFile("Library/prebuild.txt");
+ TestAndRemoveFile("Library/prelink.txt");
+ TestAndRemoveFile("Library/postbuild.txt");
+ TestAndRemoveFile("Library/postbuild2.txt");
+ TestAndRemoveFile("Executable/prebuild.txt");
+ TestAndRemoveFile("Executable/prelink.txt");
+ TestAndRemoveFile("Executable/postbuild.txt");
+ TestAndRemoveFile("Executable/postbuild2.txt");
// ----------------------------------------------------------------------
// A custom target has been created (see Library/).
@@ -733,12 +733,12 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Library/custom_target1.txt");
+ TestAndRemoveFile("Library/custom_target1.txt");
// ----------------------------------------------------------------------
// A directory has been created.
- TestDir(BINARY_DIR "/make_dir");
+ TestDir("make_dir");
// ----------------------------------------------------------------------
// Test OUTPUT_REQUIRED_FILES
@@ -749,7 +749,7 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt");
+ TestAndRemoveFile("Executable/Temp/complex-required.txt");
// ----------------------------------------------------------------------
// Test FIND_LIBRARY
diff --git a/Tests/ComplexOneConfig/Executable/CMakeLists.txt b/Tests/ComplexOneConfig/Executable/CMakeLists.txt
index 01f1005..e910f20 100644
--- a/Tests/ComplexOneConfig/Executable/CMakeLists.txt
+++ b/Tests/ComplexOneConfig/Executable/CMakeLists.txt
@@ -89,18 +89,22 @@ remove_definitions(-DCOMPLEX_DEFINED)
# Test pre-build/pre-link/post-build rules for an executable.
add_custom_command(TARGET complex PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prebuild.txt")
+ ARGS "Executable/prebuild.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex PRE_BUILD
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/prelink.txt")
+ ARGS "Executable/prelink.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex POST_BUILD
COMMAND ${CREATE_FILE_EXE}
- ARGS "${Complex_BINARY_DIR}/Executable/postbuild.txt")
+ ARGS "Executable/postbuild.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
add_custom_command(TARGET complex POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
- "${Complex_BINARY_DIR}/Executable/postbuild.txt"
- "${Complex_BINARY_DIR}/Executable/postbuild2.txt")
+ "Executable/postbuild.txt"
+ "Executable/postbuild2.txt"
+ WORKING_DIRECTORY "${Complex_BINARY_DIR}")
set_source_files_properties(complex
COMPILE_FLAGS
diff --git a/Tests/ComplexOneConfig/Executable/complex.cxx b/Tests/ComplexOneConfig/Executable/complex.cxx
index 31442ba..ec222a5 100644
--- a/Tests/ComplexOneConfig/Executable/complex.cxx
+++ b/Tests/ComplexOneConfig/Executable/complex.cxx
@@ -716,14 +716,14 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Library/prebuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/prelink.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/postbuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Library/postbuild2.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/prebuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/prelink.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/postbuild.txt");
- TestAndRemoveFile(BINARY_DIR "/Executable/postbuild2.txt");
+ TestAndRemoveFile("Library/prebuild.txt");
+ TestAndRemoveFile("Library/prelink.txt");
+ TestAndRemoveFile("Library/postbuild.txt");
+ TestAndRemoveFile("Library/postbuild2.txt");
+ TestAndRemoveFile("Executable/prebuild.txt");
+ TestAndRemoveFile("Executable/prelink.txt");
+ TestAndRemoveFile("Executable/postbuild.txt");
+ TestAndRemoveFile("Executable/postbuild2.txt");
// ----------------------------------------------------------------------
// A custom target has been created (see Library/).
@@ -733,12 +733,12 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Library/custom_target1.txt");
+ TestAndRemoveFile("Library/custom_target1.txt");
// ----------------------------------------------------------------------
// A directory has been created.
- TestDir(BINARY_DIR "/make_dir");
+ TestDir("make_dir");
// ----------------------------------------------------------------------
// Test OUTPUT_REQUIRED_FILES
@@ -749,7 +749,7 @@ int main()
// the file was removed the last time 'complex' was run, and it is
// only created during a build.
- TestAndRemoveFile(BINARY_DIR "/Executable/Temp/complex-required.txt");
+ TestAndRemoveFile("Executable/Temp/complex-required.txt");
// ----------------------------------------------------------------------
// Test FIND_LIBRARY
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 915da0a..57ffeec 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -164,13 +164,6 @@ add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/not_included.h
${PROJECT_BINARY_DIR}/not_included.h
)
-# Tell the executable where to find not_included.h.
-configure_file(
- ${PROJECT_SOURCE_DIR}/config.h.in
- ${PROJECT_BINARY_DIR}/config.h
- @ONLY
- )
-
# add the executable
add_executable(CustomCommand
${PROJECT_BINARY_DIR}/foo.h
diff --git a/Tests/CustomCommand/config.h.in b/Tests/CustomCommand/config.h.in
deleted file mode 100644
index 86c97bd..0000000
--- a/Tests/CustomCommand/config.h.in
+++ /dev/null
@@ -1 +0,0 @@
-#define PROJECT_BINARY_DIR "@PROJECT_BINARY_DIR@"
diff --git a/Tests/CustomCommand/foo.in b/Tests/CustomCommand/foo.in
index 0c5021c..e43aed1 100644
--- a/Tests/CustomCommand/foo.in
+++ b/Tests/CustomCommand/foo.in
@@ -1,6 +1,5 @@
#include "doc1.h"
#include "foo.h"
-#include "config.h"
#include <stdio.h>
@@ -11,7 +10,7 @@ int main ()
{
if (generated()*wrapped()*doc() == 3*5*7)
{
- FILE* fin = fopen(PROJECT_BINARY_DIR "/not_included.h", "r");
+ FILE* fin = fopen("not_included.h", "r");
if(fin)
{
fclose(fin);
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index 5b2f1de..cfaa78c 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0.0)
+cmake_minimum_required(VERSION 3.1.0)
project(WriteCompilerDetectionHeader)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
@@ -11,7 +11,7 @@ get_property(c_known_features GLOBAL PROPERTY CMAKE_C_KNOWN_FEATURES)
write_compiler_detection_header(
FILE "${CMAKE_CURRENT_BINARY_DIR}/test_compiler_detection.h"
PREFIX TEST
- COMPILERS GNU Clang AppleClang
+ COMPILERS GNU Clang AppleClang MSVC
VERSION 3.1
PROLOG "// something"
EPILOG "// more"
@@ -56,17 +56,29 @@ macro(set_defines target true_defs false_defs)
)
endmacro()
-if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
- OR CMAKE_CXX_COMPILER_ID STREQUAL Clang
- OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
+ OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
+ OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
# False for C++98 mode.
list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
endif()
-if (CMAKE_C_COMPILER_ID STREQUAL GNU
- OR CMAKE_C_COMPILER_ID STREQUAL Clang
- OR CMAKE_C_COMPILER_ID STREQUAL AppleClang)
+# for msvc the compiler version determines which c++11 features are available.
+# Both variadic templates and delegating constructors support exist in
+# all versions that we write compile headers for.
+if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND
+ ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_delegating_constructors;")
+ list(APPEND true_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
+ list(APPEND true_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
+else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
+ list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
+endif()
+
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
+ OR CMAKE_C_COMPILER_ID STREQUAL "Clang"
+ OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
add_executable(C_undefined c_undefined.c)
set_property(TARGET C_undefined PROPERTY CXX_STANDARD 90)
target_compile_options(C_undefined PRIVATE -Werror=undef)
@@ -81,7 +93,7 @@ write_compiler_detection_header(
PREFIX MULTI
OUTPUT_FILES_VAR multi_files
OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support"
- COMPILERS GNU Clang AppleClang
+ COMPILERS GNU Clang AppleClang MSVC
VERSION 3.1
FEATURES
${cxx_known_features} ${c_known_features}
diff --git a/Tests/OutDir/OutDir.cmake b/Tests/OutDir/OutDir.cmake
index e1e6b7f..a1f13e7 100644
--- a/Tests/OutDir/OutDir.cmake
+++ b/Tests/OutDir/OutDir.cmake
@@ -16,13 +16,17 @@ find_program(CONLY_EXE
PATHS ${top}/runtime
NO_DEFAULT_PATH)
+file(RELATIVE_PATH TESTC1_LIB_FILE "${top}" "${TESTC1_LIB}")
+file(RELATIVE_PATH TESTC2_LIB_FILE "${top}" "${TESTC2_LIB}")
+file(RELATIVE_PATH CONLY_EXE_FILE "${top}" "${CONLY_EXE}")
+
file(WRITE ${top}/OutDir.h "/* Generated by ${CMAKE_CURRENT_LIST_FILE} */
#ifndef OutDir_h
#define OutDir_h
-#define TESTC1_LIB \"${TESTC1_LIB}\"
-#define TESTC2_LIB \"${TESTC2_LIB}\"
-#define CONLY_EXE \"${CONLY_EXE}\"
+#define TESTC1_LIB \"${TESTC1_LIB_FILE}\"
+#define TESTC2_LIB \"${TESTC2_LIB_FILE}\"
+#define CONLY_EXE \"${CONLY_EXE_FILE}\"
#endif
")
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index a60b556..0dc98e3 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -73,6 +73,12 @@ if (CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]" AND NOT CMAKE_CONFIGURATION_
add_definitions(-DTEST_DEBUG_CLASS)
endif()
+# The -no-protection option disables the generation of include guards. Verify
+# that setting the source file property has an effect by using this and
+# issue an error in the preprocessor in calwidget.cpp if the include guard
+# is defined.
+set_source_files_properties(calwidget.ui PROPERTIES AUTOUIC_OPTIONS "-no-protection")
+
add_executable(QtAutogen main.cpp calwidget.cpp second_widget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
multiplewidgets.cpp
xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>
diff --git a/Tests/QtAutogen/calwidget.cpp b/Tests/QtAutogen/calwidget.cpp
index defde20..5f59994 100644
--- a/Tests/QtAutogen/calwidget.cpp
+++ b/Tests/QtAutogen/calwidget.cpp
@@ -50,6 +50,9 @@
#include "calwidget.h"
#include "ui_calwidget.h"
+ #ifdef UI_CALWIDGET_H
+ #error Definition of UI_CALWIDGET_H should be disabled by file option.
+ #endif
Window::Window()
: ui(new Ui::Window)
diff --git a/Tests/RunCMake/CMP0019/CMakeLists.txt b/Tests/RunCMake/CMP0019/CMakeLists.txt
index 12cd3c7..8f85fbf 100644
--- a/Tests/RunCMake/CMP0019/CMakeLists.txt
+++ b/Tests/RunCMake/CMP0019/CMakeLists.txt
@@ -1,3 +1,3 @@
cmake_minimum_required(VERSION 2.8.4)
project(${RunCMake_TEST} NONE)
-include(${RunCMake_TEST}.cmake)
+include(${RunCMake_TEST}.cmake NO_POLICY_SCOPE)
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index b5e41d9..1697025 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -121,6 +121,7 @@ add_RunCMake_test(file)
add_RunCMake_test(find_library)
add_RunCMake_test(find_package)
add_RunCMake_test(get_filename_component)
+add_RunCMake_test(get_property)
add_RunCMake_test(if)
add_RunCMake_test(include)
add_RunCMake_test(include_directories)
diff --git a/Tests/RunCMake/CheckModules/CMakeLists.txt b/Tests/RunCMake/CheckModules/CMakeLists.txt
index 72abfc8..9872df2 100644
--- a/Tests/RunCMake/CheckModules/CMakeLists.txt
+++ b/Tests/RunCMake/CheckModules/CMakeLists.txt
@@ -1,3 +1,4 @@
cmake_minimum_required(VERSION 2.8.11)
+cmake_policy(SET CMP0054 NEW)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
index 84e3614..0c43c20 100644
--- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
@@ -37,7 +37,9 @@ run_cmake_command(E_env-bad-arg1 ${CMAKE_COMMAND} -E env -bad-arg1)
run_cmake_command(E_env-set ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-set.cmake)
run_cmake_command(E_env-unset ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -E env --unset=TEST_ENV ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-unset.cmake)
+set(RunCMake_DEFAULT_stderr ".")
run_cmake_command(E_sleep-no-args ${CMAKE_COMMAND} -E sleep)
+unset(RunCMake_DEFAULT_stderr)
run_cmake_command(E_sleep-bad-arg1 ${CMAKE_COMMAND} -E sleep x)
run_cmake_command(E_sleep-bad-arg2 ${CMAKE_COMMAND} -E sleep 1 -1)
run_cmake_command(E_sleep-one-tenth ${CMAKE_COMMAND} -E sleep 0.1)
diff --git a/Tests/RunCMake/CompileFeatures/NonValidTarget1.cmake b/Tests/RunCMake/CompileFeatures/NonValidTarget1.cmake
index c6707c1..4de8e88 100644
--- a/Tests/RunCMake/CompileFeatures/NonValidTarget1.cmake
+++ b/Tests/RunCMake/CompileFeatures/NonValidTarget1.cmake
@@ -7,11 +7,11 @@ else()
set(expected_result 0)
endif()
-add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/copied_file${HAVE_FINAL}.cpp"
+add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/copied_file${expected_result}.cpp"
COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/empty.cpp" "${CMAKE_CURRENT_BINARY_DIR}/copied_file${genexvar}.cpp"
)
-add_library(empty "${CMAKE_CURRENT_BINARY_DIR}/copied_file${genexvar}.cpp")
+add_library(empty "${CMAKE_CURRENT_BINARY_DIR}/copied_file${expected_result}.cpp")
if (HAVE_FINAL)
target_compile_features(empty PRIVATE cxx_final)
endif()
diff --git a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
index 1892a5c..3b37091 100644
--- a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
@@ -27,8 +27,13 @@ if (NOT CXX_FEATURES)
run_cmake(NoSupportedCxxFeatures)
run_cmake(NoSupportedCxxFeaturesGenex)
else()
- run_cmake(LinkImplementationFeatureCycle)
- run_cmake(LinkImplementationFeatureCycleSolved)
+ # compilers such as MSVC have no explicit flags to enable c++11 mode.
+ # Instead they come with all c++11 features implicitly enabled.
+ # So for those types of compilers this tests is not applicable.
+ if(CMAKE_CXX11_STANDARD_COMPILE_OPTION)
+ run_cmake(LinkImplementationFeatureCycle)
+ run_cmake(LinkImplementationFeatureCycleSolved)
+ endif()
if (";${CXX_FEATURES};" MATCHES ";cxx_final;")
set(RunCMake_TEST_OPTIONS "-DHAVE_FINAL=1")
diff --git a/Tests/RunCMake/FPHSA/RunCMakeTest.cmake b/Tests/RunCMake/FPHSA/RunCMakeTest.cmake
index bb7743c..e9b2a7a 100644
--- a/Tests/RunCMake/FPHSA/RunCMakeTest.cmake
+++ b/Tests/RunCMake/FPHSA/RunCMakeTest.cmake
@@ -14,6 +14,7 @@ run_cmake(exact_1.2.3)
run_cmake(exact_1.2.3.4)
# now test every component with an invalid version
+set(RunCMake_DEFAULT_stderr ".")
run_cmake(exact_0)
run_cmake(exact_2)
run_cmake(exact_1.1)
@@ -22,6 +23,7 @@ run_cmake(exact_1.2.2)
run_cmake(exact_1.2.4)
run_cmake(exact_1.2.3.3)
run_cmake(exact_1.2.3.5)
+unset(RunCMake_DEFAULT_stderr)
# check if searching for a version 0 works
list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=0")
diff --git a/Tests/RunCMake/GeneratorExpression/ValidTarget-TARGET_PDB_FILE-check.cmake b/Tests/RunCMake/GeneratorExpression/ValidTarget-TARGET_PDB_FILE-check.cmake
index 748d14f..2a588bc 100644
--- a/Tests/RunCMake/GeneratorExpression/ValidTarget-TARGET_PDB_FILE-check.cmake
+++ b/Tests/RunCMake/GeneratorExpression/ValidTarget-TARGET_PDB_FILE-check.cmake
@@ -1,4 +1,4 @@
-file(STRINGS ${RunCMake_TEST_BINARY_DIR}/test.txt TEST_TXT)
+file(STRINGS ${RunCMake_TEST_BINARY_DIR}/test.txt TEST_TXT ENCODING UTF-8)
list(GET TEST_TXT 0 PDB_PATH)
list(GET TEST_TXT 1 PDB_NAME)
diff --git a/Tests/RunCMake/Languages/CMakeLists.txt b/Tests/RunCMake/Languages/CMakeLists.txt
index 12cd3c7..8996fef 100644
--- a/Tests/RunCMake/Languages/CMakeLists.txt
+++ b/Tests/RunCMake/Languages/CMakeLists.txt
@@ -1,3 +1,4 @@
cmake_minimum_required(VERSION 2.8.4)
+cmake_policy(SET CMP0042 NEW)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/Languages/LINK_LANGUAGE-genex-stderr.txt b/Tests/RunCMake/Languages/LINK_LANGUAGE-genex-stderr.txt
index 3a7f480..03c002e 100644
--- a/Tests/RunCMake/Languages/LINK_LANGUAGE-genex-stderr.txt
+++ b/Tests/RunCMake/Languages/LINK_LANGUAGE-genex-stderr.txt
@@ -6,4 +6,4 @@ CMake Error at LINK_LANGUAGE-genex.cmake:[0-9]+ \(target_link_libraries\):
LINKER_LANGUAGE target property can not be used while evaluating link
libraries for a static library
Call Stack \(most recent call first\):
- CMakeLists.txt:3 \(include\)
+ CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/Languages/link-libraries-TARGET_FILE-genex-stderr.txt b/Tests/RunCMake/Languages/link-libraries-TARGET_FILE-genex-stderr.txt
index d8bc238..be3b12c 100644
--- a/Tests/RunCMake/Languages/link-libraries-TARGET_FILE-genex-stderr.txt
+++ b/Tests/RunCMake/Languages/link-libraries-TARGET_FILE-genex-stderr.txt
@@ -6,4 +6,4 @@ CMake Error at link-libraries-TARGET_FILE-genex.cmake:[0-9]+ \(target_link_libra
Expressions which require the linker language may not be used while
evaluating link libraries
Call Stack \(most recent call first\):
- CMakeLists.txt:3 \(include\)
+ CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/README.rst b/Tests/RunCMake/README.rst
index 536cff2..e801a86 100644
--- a/Tests/RunCMake/README.rst
+++ b/Tests/RunCMake/README.rst
@@ -41,7 +41,7 @@ but do not actually build anything. To add a test:
``<SubTest>-stdout.txt``
Regex matching expected stdout content
``<SubTest>-stderr.txt``
- Regex matching expected stderr content
+ Regex matching expected stderr content, if not "^$"
``<SubTest>-check.cmake``
Custom result check.
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
index 7b1a5b2..7b3eda7 100644
--- a/Tests/RunCMake/RunCMake.cmake
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -25,6 +25,13 @@ function(run_cmake test)
unset(expect_std${o})
endif()
endforeach()
+ if (NOT expect_stderr)
+ if (NOT RunCMake_DEFAULT_stderr)
+ set(RunCMake_DEFAULT_stderr "^$")
+ endif()
+ set(expect_stderr ${RunCMake_DEFAULT_stderr})
+ endif()
+
if (NOT RunCMake_TEST_SOURCE_DIR)
set(RunCMake_TEST_SOURCE_DIR "${top_src}")
endif()
diff --git a/Tests/RunCMake/get_property/CMakeLists.txt b/Tests/RunCMake/get_property/CMakeLists.txt
new file mode 100644
index 0000000..12cd3c7
--- /dev/null
+++ b/Tests/RunCMake/get_property/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.4)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/get_property/RunCMakeTest.cmake b/Tests/RunCMake/get_property/RunCMakeTest.cmake
new file mode 100644
index 0000000..1964824
--- /dev/null
+++ b/Tests/RunCMake/get_property/RunCMakeTest.cmake
@@ -0,0 +1,9 @@
+include(RunCMake)
+
+run_cmake(cache_properties)
+run_cmake(directory_properties)
+run_cmake(global_properties)
+run_cmake(install_properties)
+run_cmake(source_properties)
+run_cmake(target_properties)
+run_cmake(test_properties)
diff --git a/Tests/RunCMake/get_property/cache_properties-stderr.txt b/Tests/RunCMake/get_property/cache_properties-stderr.txt
new file mode 100644
index 0000000..ee019c6
--- /dev/null
+++ b/Tests/RunCMake/get_property/cache_properties-stderr.txt
@@ -0,0 +1,3 @@
+^get_property: --><--
+get_property: -->TRUE<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/cache_properties.cmake b/Tests/RunCMake/get_property/cache_properties.cmake
new file mode 100644
index 0000000..bf3e7ab
--- /dev/null
+++ b/Tests/RunCMake/get_property/cache_properties.cmake
@@ -0,0 +1,15 @@
+function (check_cache_property var prop)
+ get_property(gp_val
+ CACHE "${var}"
+ PROPERTY "${prop}")
+
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+set(var val CACHE STRING "doc")
+set_property(CACHE var PROPERTY VALUE "") # empty
+set_property(CACHE var PROPERTY ADVANCED TRUE)
+
+check_cache_property(var VALUE)
+check_cache_property(var ADVANCED)
+check_cache_property(var noexist)
diff --git a/Tests/RunCMake/get_property/directory_properties-stderr.txt b/Tests/RunCMake/get_property/directory_properties-stderr.txt
new file mode 100644
index 0000000..80c9877
--- /dev/null
+++ b/Tests/RunCMake/get_property/directory_properties-stderr.txt
@@ -0,0 +1,6 @@
+^get_directory_property: --><--
+get_property: --><--
+get_directory_property: -->value<--
+get_property: -->value<--
+get_directory_property: --><--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/directory_properties.cmake b/Tests/RunCMake/get_property/directory_properties.cmake
new file mode 100644
index 0000000..b0a9b1b
--- /dev/null
+++ b/Tests/RunCMake/get_property/directory_properties.cmake
@@ -0,0 +1,15 @@
+function (check_directory_property dir prop)
+ get_directory_property(gdp_val DIRECTORY "${dir}" "${prop}")
+ get_property(gp_val
+ DIRECTORY "${dir}"
+ PROPERTY "${prop}")
+
+ message("get_directory_property: -->${gdp_val}<--")
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+set_directory_properties(PROPERTIES empty "" custom value)
+
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" empty)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" custom)
+check_directory_property("${CMAKE_CURRENT_SOURCE_DIR}" noexist)
diff --git a/Tests/RunCMake/get_property/global_properties-stderr.txt b/Tests/RunCMake/get_property/global_properties-stderr.txt
new file mode 100644
index 0000000..4c08ad7
--- /dev/null
+++ b/Tests/RunCMake/get_property/global_properties-stderr.txt
@@ -0,0 +1,6 @@
+^get_cmake_property: --><--
+get_property: --><--
+get_cmake_property: -->value<--
+get_property: -->value<--
+get_cmake_property: -->NOTFOUND<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/global_properties.cmake b/Tests/RunCMake/get_property/global_properties.cmake
new file mode 100644
index 0000000..2073136
--- /dev/null
+++ b/Tests/RunCMake/get_property/global_properties.cmake
@@ -0,0 +1,16 @@
+function (check_global_property prop)
+ get_cmake_property(gcp_val "${prop}")
+ get_property(gp_val
+ GLOBAL
+ PROPERTY "${prop}")
+
+ message("get_cmake_property: -->${gcp_val}<--")
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+set_property(GLOBAL PROPERTY empty "")
+set_property(GLOBAL PROPERTY custom value)
+
+check_global_property(empty)
+check_global_property(custom)
+check_global_property(noexist)
diff --git a/Tests/RunCMake/get_property/install_properties-stderr.txt b/Tests/RunCMake/get_property/install_properties-stderr.txt
new file mode 100644
index 0000000..b1a2987
--- /dev/null
+++ b/Tests/RunCMake/get_property/install_properties-stderr.txt
@@ -0,0 +1,3 @@
+^get_property: --><--
+get_property: -->value<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/install_properties.cmake b/Tests/RunCMake/get_property/install_properties.cmake
new file mode 100644
index 0000000..aa89225
--- /dev/null
+++ b/Tests/RunCMake/get_property/install_properties.cmake
@@ -0,0 +1,18 @@
+function (check_install_property file prop)
+ get_property(gp_val
+ INSTALL "${file}"
+ PROPERTY "${prop}")
+
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+install(
+ FILES "${CMAKE_CURRENT_LIST_FILE}"
+ DESTINATION "${CMAKE_CURRENT_LIST_DIR}"
+ RENAME "installed-file-dest")
+set_property(INSTALL "${CMAKE_CURRENT_LIST_FILE}" PROPERTY empty "")
+set_property(INSTALL "${CMAKE_CURRENT_LIST_FILE}" PROPERTY custom value)
+
+check_install_property("${CMAKE_CURRENT_LIST_FILE}" empty)
+check_install_property("${CMAKE_CURRENT_LIST_FILE}" custom)
+check_install_property("${CMAKE_CURRENT_LIST_FILE}" noexist)
diff --git a/Tests/RunCMake/get_property/source_properties-stderr.txt b/Tests/RunCMake/get_property/source_properties-stderr.txt
new file mode 100644
index 0000000..0a46f96
--- /dev/null
+++ b/Tests/RunCMake/get_property/source_properties-stderr.txt
@@ -0,0 +1,6 @@
+^get_source_file_property: --><--
+get_property: --><--
+get_source_file_property: -->value<--
+get_property: -->value<--
+get_source_file_property: -->NOTFOUND<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/source_properties.cmake b/Tests/RunCMake/get_property/source_properties.cmake
new file mode 100644
index 0000000..263ffe1
--- /dev/null
+++ b/Tests/RunCMake/get_property/source_properties.cmake
@@ -0,0 +1,15 @@
+function (check_source_file_property file prop)
+ get_source_file_property(gsfp_val "${file}" "${prop}")
+ get_property(gp_val
+ SOURCE "${file}"
+ PROPERTY "${prop}")
+
+ message("get_source_file_property: -->${gsfp_val}<--")
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+set_source_files_properties(file.c PROPERTIES empty "" custom value)
+
+check_source_file_property(file.c empty)
+check_source_file_property(file.c custom)
+check_source_file_property(file.c noexist)
diff --git a/Tests/RunCMake/get_property/target_properties-stderr.txt b/Tests/RunCMake/get_property/target_properties-stderr.txt
new file mode 100644
index 0000000..d0981ac
--- /dev/null
+++ b/Tests/RunCMake/get_property/target_properties-stderr.txt
@@ -0,0 +1,6 @@
+^get_target_property: --><--
+get_property: --><--
+get_target_property: -->value<--
+get_property: -->value<--
+get_target_property: -->gtp_val-NOTFOUND<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/target_properties.cmake b/Tests/RunCMake/get_property/target_properties.cmake
new file mode 100644
index 0000000..c5a141d
--- /dev/null
+++ b/Tests/RunCMake/get_property/target_properties.cmake
@@ -0,0 +1,16 @@
+function (check_target_property target prop)
+ get_target_property(gtp_val "${target}" "${prop}")
+ get_property(gp_val
+ TARGET "${target}"
+ PROPERTY "${prop}")
+
+ message("get_target_property: -->${gtp_val}<--")
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+add_custom_target(tgt)
+set_target_properties(tgt PROPERTIES empty "" custom value)
+
+check_target_property(tgt empty)
+check_target_property(tgt custom)
+check_target_property(tgt noexist)
diff --git a/Tests/RunCMake/get_property/test_properties-stderr.txt b/Tests/RunCMake/get_property/test_properties-stderr.txt
new file mode 100644
index 0000000..a447280
--- /dev/null
+++ b/Tests/RunCMake/get_property/test_properties-stderr.txt
@@ -0,0 +1,6 @@
+^get_test_property: --><--
+get_property: --><--
+get_test_property: -->value<--
+get_property: -->value<--
+get_test_property: -->NOTFOUND<--
+get_property: --><--$
diff --git a/Tests/RunCMake/get_property/test_properties.cmake b/Tests/RunCMake/get_property/test_properties.cmake
new file mode 100644
index 0000000..1d0295c
--- /dev/null
+++ b/Tests/RunCMake/get_property/test_properties.cmake
@@ -0,0 +1,17 @@
+function (check_test_property test prop)
+ get_test_property("${test}" "${prop}" gtp_val)
+ get_property(gp_val
+ TEST "${test}"
+ PROPERTY "${prop}")
+
+ message("get_test_property: -->${gtp_val}<--")
+ message("get_property: -->${gp_val}<--")
+endfunction ()
+
+include(CTest)
+add_test(NAME test COMMAND "${CMAKE_COMMAND}" --help)
+set_tests_properties(test PROPERTIES empty "" custom value)
+
+check_test_property(test empty)
+check_test_property(test custom)
+check_test_property(test noexist)
diff --git a/bootstrap b/bootstrap
index fe051e1..a88eb6a 100755
--- a/bootstrap
+++ b/bootstrap
@@ -240,7 +240,6 @@ CMAKE_UNUSED_SOURCES="\
"
CMAKE_CXX_SOURCES="\
- cmStandardIncludes \
cmake \
cmakemain \
cmcmd \
@@ -1154,6 +1153,35 @@ if [ "x${cmake_cxx_compiler_is_gnu}" != "x1" ]; then
cmake_test_flags=
fi
+
+if [ "x${cmake_cxx_compiler_is_gnu}" != "x1" ]; then
+ # Are we SolarisStudio?
+
+ TMPFILE=`cmake_tmp_file`
+ echo '
+ #if defined(__SUNPRO_CC)
+ #include <iostream>
+ int main() { std::cout << "This is SolarisStudio" << std::endl; return 0;}
+ #endif
+ ' > ${TMPFILE}.cxx
+ cmake_cxx_compiler_is_solarisstudio=0
+ if cmake_try_run "${cmake_cxx_compiler}" \
+ "${cmake_cxx_flags} " "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
+ cmake_cxx_compiler_is_solarisstudio=1
+ fi
+ if [ "x${cmake_cxx_compiler_is_solarisstudio}" = "x1" ]; then
+ echo "${cmake_cxx_compiler} is SolarisStudio compiler"
+ else
+ echo "${cmake_cxx_compiler} is not SolarisStudio compiler"
+ fi
+ rm -f "${TMPFILE}.cxx"
+
+ if [ "x${cmake_cxx_compiler_is_solarisstudio}" = "x1" ]; then
+ cmake_cxx_flags="${cmake_cxx_flags} -library=stlport4"
+ fi
+fi
+
+
# Test for kwsys features
KWSYS_NAME_IS_KWSYS=0
KWSYS_BUILD_SHARED=0
@@ -1462,35 +1490,6 @@ cmake_compiler_settings_comment="/*
cmake_report cmConfigure.h${_tmp} "${cmake_compiler_settings_comment}"
-if [ "x$KWSYS_STL_HAVE_STD" = "x1" ]; then
- cmake_report cmConfigure.h${_tmp} "/* #undef CMAKE_NO_STD_NAMESPACE */"
-else
- cmake_report cmConfigure.h${_tmp} "#define CMAKE_NO_STD_NAMESPACE 1"
-fi
-
-if [ "x$KWSYS_IOS_USE_ANSI" = "x1" ]; then
- cmake_report cmConfigure.h${_tmp} "/* #undef CMAKE_NO_ANSI_STREAM_HEADERS */"
-else
- cmake_report cmConfigure.h${_tmp} "#define CMAKE_NO_ANSI_STREAM_HEADERS 1"
-fi
-
-if [ "x$KWSYS_IOS_USE_SSTREAM" = "x1" ]; then
- cmake_report cmConfigure.h${_tmp} "/* #undef CMAKE_NO_ANSI_STRING_STREAM */"
-else
- cmake_report cmConfigure.h${_tmp} "#define CMAKE_NO_ANSI_STRING_STREAM 1"
-fi
-
-# Test for ansi FOR scope
-if cmake_try_run "${cmake_cxx_compiler}" \
- "${cmake_cxx_flags}" \
- "${cmake_source_dir}/Modules/TestForAnsiForScope.cxx" >> cmake_bootstrap.log 2>&1; then
- cmake_report cmConfigure.h${_tmp} "/* #undef CMAKE_NO_ANSI_FOR_SCOPE */"
- echo "${cmake_cxx_compiler} has ANSI for scoping"
-else
- cmake_report cmConfigure.h${_tmp} "#define CMAKE_NO_ANSI_FOR_SCOPE 1"
- echo "${cmake_cxx_compiler} does not have ANSI for scoping"
-fi
-
# When bootstrapping on MinGW with MSYS we must convert the source
# directory to a windows path.
if ${cmake_system_mingw}; then