[cmake-developers] [PATCH] Print feature infos only once

Gregor Jasny gjasny at googlemail.com
Sun Feb 22 15:06:27 EST 2015


If a feature is added multiple times via ADD_FEATURE_INFO it
should appear only once in FEATURE_SUMMARY.

Signed-off-by: Gregor Jasny <gjasny at googlemail.com>
---
 Modules/FeatureSummary.cmake                                    | 3 +++
 Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce-stdout.txt | 4 ++++
 Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce.cmake      | 8 ++++++++
 Tests/RunCMake/FeatureSummary/RunCMakeTest.cmake                | 1 +
 4 files changed, 16 insertions(+)
 create mode 100644 Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce-stdout.txt
 create mode 100644 Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce.cmake

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 3eea9db..ce5a4ed 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -379,6 +379,9 @@ function(_FS_GET_FEATURE_SUMMARY _property _var _includeQuiet)
 
   set(_currentFeatureText "")
   get_property(_EnabledFeatures  GLOBAL PROPERTY ${_property})
+  if(_EnabledFeatures)
+    list(REMOVE_DUPLICATES _EnabledFeatures)
+  endif(_EnabledFeatures)
 
   foreach(_currentFeature ${_EnabledFeatures})
 
diff --git a/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce-stdout.txt b/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce-stdout.txt
new file mode 100644
index 0000000..ea1cf60
--- /dev/null
+++ b/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce-stdout.txt
@@ -0,0 +1,4 @@
+-- 
+ \* Foo , Foo decscription\.
+
+-- 
\ No newline at end of file
diff --git a/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce.cmake b/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce.cmake
new file mode 100644
index 0000000..545fb92
--- /dev/null
+++ b/Tests/RunCMake/FeatureSummary/FeatureSummaryWhatOnce.cmake
@@ -0,0 +1,8 @@
+include(FeatureSummary)
+
+set(WITH_FOO 1)
+
+add_feature_info(Foo WITH_FOO "Foo decscription.")
+add_feature_info(Foo WITH_FOO "Foo decscription.")
+
+feature_summary(WHAT ENABLED_FEATURES)
diff --git a/Tests/RunCMake/FeatureSummary/RunCMakeTest.cmake b/Tests/RunCMake/FeatureSummary/RunCMakeTest.cmake
index 1417338..6a5fc28 100644
--- a/Tests/RunCMake/FeatureSummary/RunCMakeTest.cmake
+++ b/Tests/RunCMake/FeatureSummary/RunCMakeTest.cmake
@@ -6,3 +6,4 @@ run_cmake(FeatureSummaryWhatSingleUnknown)
 run_cmake(FeatureSummaryWhatList)
 run_cmake(FeatureSummaryWhatListUnknown)
 run_cmake(FeatureSummaryWhatListAll)
+run_cmake(FeatureSummaryWhatOnce)
-- 
2.3.0



More information about the cmake-developers mailing list