summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-09-25 23:43:41 (GMT)
committerBrad King <brad.king@kitware.com>2018-12-12 13:10:15 (GMT)
commitff69763ca08fbd3a9831ec0c8adb32a7111b1a46 (patch)
tree2ed587456b95ba27ab334a6f19f5703620463736 /Source/CMakeLists.txt
parent410a3e4b22c72794d4f96e41c1d37d84d6e7e54d (diff)
downloadCMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.zip
CMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.tar.gz
CMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.tar.bz2
String: Add a custom string type
Create a `cm::String` type that holds a view of a string buffer and optionally shares ownership of the buffer. Instances can either borrow longer-lived storage (e.g. static storage of string literals) or internally own a `std::string` instance. In the latter case, share ownership with copies and substrings. Allocate a new internal string only on operations that require mutation. This will allow us to recover string sharing semantics that we used to get from C++98 std::string copy-on-write implementations. Such implementations are not allowed by C++11 so code our own in a custom string type instead.
Diffstat (limited to 'Source/CMakeLists.txt')
-rw-r--r--Source/CMakeLists.txt2
1 files changed, 2 insertions, 0 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 4bf2e73..0ce09d4 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -568,6 +568,8 @@ set(SRCS
cmSiteNameCommand.h
cmSourceGroupCommand.cxx
cmSourceGroupCommand.h
+ cmString.cxx
+ cmString.hxx
cmStringReplaceHelper.cxx
cmStringCommand.cxx
cmStringCommand.h