]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
CMake: Refactor list deduplication into a macro
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 28 Jan 2014 18:58:22 +0000 (18:58 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 28 Jan 2014 18:58:22 +0000 (18:58 +0000)
git-svn-id: https://svn.dealii.org/trunk@32336 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/cmake/macros/macro_remove_duplicates.cmake [new file with mode: 0644]
deal.II/cmake/setup_finalize.cmake

diff --git a/deal.II/cmake/macros/macro_remove_duplicates.cmake b/deal.II/cmake/macros/macro_remove_duplicates.cmake
new file mode 100644 (file)
index 0000000..d0ec688
--- /dev/null
@@ -0,0 +1,35 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2014 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+#
+# Remove duplicate entries from a list. Optionally do this in reverse
+# order, keeping the rightmost element
+#
+# Usage:
+#     REMOVE_DUPLICATES(list [REVERSE])
+#
+
+MACRO(REMOVE_DUPLICATES _list)
+  IF(NOT "${${_list}}" STREQUAL "")
+    IF("${ARGN}" STREQUAL "REVERSE")
+      LIST(REVERSE ${_list})
+    ENDIF()
+    LIST(REMOVE_DUPLICATES ${_list})
+    IF("${ARGN}" STREQUAL "REVERSE")
+      LIST(REVERSE ${_list})
+    ENDIF()
+  ENDIF()
+ENDMACRO()
index fea5613d5504cef928d739a635c4f6d4c0ada0ab..47318eb20a387c0dec4b8a387bc65a83383627bc 100644 (file)
@@ -54,25 +54,16 @@ ENDFOREACH()
 #
 # Deduplicate entries in DEAL_II_USER_INCLUDE_DIRS
 #
-IF(NOT "${DEAL_II_USER_INCLUDE_DIRS}" STREQUAL "")
-  LIST(REMOVE_DUPLICATES DEAL_II_USER_INCLUDE_DIRS)
-ENDIF()
+REMOVE_DUPLICATES(DEAL_II_USER_INCLUDE_DIRS)
 
 #
 # Deduplicate entries in DEAL_II_EXTERNAL_LIBRARIES(_...)
 # in reverse order:
 #
-IF(NOT "${DEAL_II_EXTERNAL_LIBRARIES}" STREQUAL "")
-  LIST(REVERSE DEAL_II_EXTERNAL_LIBRARIES)
-  LIST(REMOVE_DUPLICATES DEAL_II_EXTERNAL_LIBRARIES)
-  LIST(REVERSE DEAL_II_EXTERNAL_LIBRARIES)
-ENDIF()
+REMOVE_DUPLICATES(DEAL_II_EXTERNAL_LIBRARIES REVERSE)
+
 FOREACH(_build ${DEAL_II_BUILD_TYPES})
-  IF(NOT "${DEAL_II_EXTERNAL_LIBRARIES_${_build}}" STREQUAL "")
-    LIST(REVERSE DEAL_II_EXTERNAL_LIBRARIES_${_build})
-    LIST(REMOVE_DUPLICATES DEAL_II_EXTERNAL_LIBRARIES_${_build})
-    LIST(REVERSE DEAL_II_EXTERNAL_LIBRARIES_${_build})
-  ENDIF()
+  REMOVE_DUPLICATES(DEAL_II_EXTERNAL_LIBRARIES_${_build} REVERSE)
 ENDFOREACH()
 
 #

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.