add check for cmake that source files are not included multiple times

This commit is contained in:
Campbell Barton
2013-10-25 06:21:38 +00:00
parent 4aa02d8038
commit 93edbf3510
2 changed files with 23 additions and 1 deletions

View File

@@ -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()

View File

@@ -98,7 +98,6 @@ set(SRC
intern/include/raycounter.h
intern/include/rayobject.h
intern/include/rayintersection.h
intern/include/raycounter.h
intern/include/render_types.h
intern/include/render_result.h
intern/include/rendercore.h