diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-10-25 10:21:38 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-10-25 10:21:38 +0400 |
commit | 93edbf3510927a02cfb01f5569eb0f3838670f08 (patch) | |
tree | 0f5add71a65e1a2973b97e87dab356736b46e6ce /build_files/cmake/macros.cmake | |
parent | 4aa02d8038ccb9062b4ab522c41e54cacb0217ce (diff) |
add check for cmake that source files are not included multiple times
Diffstat (limited to 'build_files/cmake/macros.cmake')
-rw-r--r-- | build_files/cmake/macros.cmake | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 9ded803f45b..fdc0fb63c8e 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -48,6 +48,24 @@ macro(list_insert_before unset(_index) endmacro() +function (list_assert_duplicates + list_id + ) + + # message(STATUS "list data: ${list_id}") + + list(LENGTH list_id _len_before) + list(REMOVE_DUPLICATES list_id) + list(LENGTH list_id _len_after) + # message(STATUS "list size ${_len_before} -> ${_len_after}") + if(NOT _len_before EQUAL _len_after) + message(FATAL_ERROR "duplicate found in list which should not contain duplicates: ${list_id}") + endif() + unset(_len_before) + unset(_len_after) +endfunction() + + # foo_bar.spam --> foo_barMySuffix.spam macro(file_suffix file_name_new file_name file_suffix @@ -177,6 +195,11 @@ macro(blender_add_lib_nolist # listed is helpful for IDE's (QtCreator/MSVC) blender_source_group("${sources}") + list_assert_duplicates("${sources}") + list_assert_duplicates("${includes}") + # Not for system includes because they can resolve to the same path + # list_assert_duplicates("${includes_sys}") + endmacro() |