-FILE(GLOB LIB_HEADERS_H "*.h")
-FILE(GLOB LIB_HEADERS_HPP "*.hpp")
-FILE(GLOB LIB_HEADERS_HXX "*.hxx")
-FILE(GLOB LIB_SOURCES_C "*.c")
-FILE(GLOB LIB_SOURCES_CPP "*.cpp")
-FILE(GLOB LIB_SOURCES_CXX "*.cxx")
+SET(LIB_HEADERS_H "")
+SET(LIB_HEADERS_HPP "")
+SET(LIB_HEADERS_HXX "")
+SET(LIB_SOURCES_C "")
+SET(LIB_SOURCES_CPP "")
+SET(LIB_SOURCES_CXX "")
+
+SET(
+ lib_DIRECTORIES
+ .
+ DataStructures
+ Algorithms
+ IO
+ Interaction
+ Visualization
+ )
+FOREACH(dir ${lib_DIRECTORIES})
+ FILE(GLOB dir_LIB_HEADERS_H "${dir}/*.h")
+ FILE(GLOB dir_LIB_HEADERS_HPP "${dir}/*.hpp")
+ FILE(GLOB dir_LIB_HEADERS_HXX "${dir}/*.hxx")
+ FILE(GLOB dir_LIB_SOURCES_C "${dir}/*.c")
+ FILE(GLOB dir_LIB_SOURCES_CPP "${dir}/*.cpp")
+ FILE(GLOB dir_LIB_SOURCES_CXX "${dir}/*.cxx")
+
+ SET(LIB_HEADERS_H "${LIB_HEADERS_H};${dir_LIB_HEADERS_H}")
+ SET(LIB_HEADERS_HPP "${LIB_HEADERS_HPP};${dir_LIB_HEADERS_HPP}")
+ SET(LIB_HEADERS_HXX "${LIB_HEADERS_HXX};${dir_LIB_HEADERS_HXX}")
+ SET(LIB_SOURCES_C "${LIB_SOURCES_C};${dir_LIB_SOURCES_C}")
+ SET(LIB_SOURCES_CPP "${LIB_SOURCES_CPP};${dir_LIB_SOURCES_CPP}")
+ SET(LIB_SOURCES_CXX "${LIB_SOURCES_CXX};${dir_LIB_SOURCES_CXX}")
+
+ INSTALL(
+ DIRECTORY ${dir}
+ DESTINATION include/cpExtensions
+ FILES_MATCHING PATTERN "*.h"
+ )
+ INSTALL(
+ DIRECTORY ${dir}
+ DESTINATION include/cpExtensions
+ FILES_MATCHING PATTERN "*.hpp"
+ )
+ INSTALL(
+ DIRECTORY ${dir}
+ DESTINATION include/cpExtensions
+ FILES_MATCHING PATTERN "*.hxx"
+ )
+ENDFOREACH(dir)