diff --git a/Base/Geometry/imstkCube.cpp b/Base/Geometry/Analytic/imstkCube.cpp similarity index 100% rename from Base/Geometry/imstkCube.cpp rename to Base/Geometry/Analytic/imstkCube.cpp diff --git a/Base/Geometry/imstkCube.h b/Base/Geometry/Analytic/imstkCube.h similarity index 100% rename from Base/Geometry/imstkCube.h rename to Base/Geometry/Analytic/imstkCube.h diff --git a/Base/Geometry/imstkPlane.cpp b/Base/Geometry/Analytic/imstkPlane.cpp similarity index 100% rename from Base/Geometry/imstkPlane.cpp rename to Base/Geometry/Analytic/imstkPlane.cpp diff --git a/Base/Geometry/imstkPlane.h b/Base/Geometry/Analytic/imstkPlane.h similarity index 100% rename from Base/Geometry/imstkPlane.h rename to Base/Geometry/Analytic/imstkPlane.h diff --git a/Base/Geometry/imstkSphere.cpp b/Base/Geometry/Analytic/imstkSphere.cpp similarity index 100% rename from Base/Geometry/imstkSphere.cpp rename to Base/Geometry/Analytic/imstkSphere.cpp diff --git a/Base/Geometry/imstkSphere.h b/Base/Geometry/Analytic/imstkSphere.h similarity index 100% rename from Base/Geometry/imstkSphere.h rename to Base/Geometry/Analytic/imstkSphere.h diff --git a/Base/Geometry/imstkGeometryMap.cpp b/Base/Geometry/Map/imstkGeometryMap.cpp similarity index 100% rename from Base/Geometry/imstkGeometryMap.cpp rename to Base/Geometry/Map/imstkGeometryMap.cpp diff --git a/Base/Geometry/imstkGeometryMap.h b/Base/Geometry/Map/imstkGeometryMap.h similarity index 100% rename from Base/Geometry/imstkGeometryMap.h rename to Base/Geometry/Map/imstkGeometryMap.h diff --git a/Base/Geometry/imstkIdentityMap.cpp b/Base/Geometry/Map/imstkIdentityMap.cpp similarity index 100% rename from Base/Geometry/imstkIdentityMap.cpp rename to Base/Geometry/Map/imstkIdentityMap.cpp diff --git a/Base/Geometry/imstkIdentityMap.h b/Base/Geometry/Map/imstkIdentityMap.h similarity index 100% rename from Base/Geometry/imstkIdentityMap.h rename to Base/Geometry/Map/imstkIdentityMap.h diff --git a/Base/Geometry/imstkIsometricMap.cpp b/Base/Geometry/Map/imstkIsometricMap.cpp similarity index 100% rename from Base/Geometry/imstkIsometricMap.cpp rename to Base/Geometry/Map/imstkIsometricMap.cpp diff --git a/Base/Geometry/imstkIsometricMap.h b/Base/Geometry/Map/imstkIsometricMap.h similarity index 100% rename from Base/Geometry/imstkIsometricMap.h rename to Base/Geometry/Map/imstkIsometricMap.h diff --git a/Base/Geometry/imstkTetraTriangleMap.cpp b/Base/Geometry/Map/imstkTetraTriangleMap.cpp similarity index 100% rename from Base/Geometry/imstkTetraTriangleMap.cpp rename to Base/Geometry/Map/imstkTetraTriangleMap.cpp diff --git a/Base/Geometry/imstkTetraTriangleMap.h b/Base/Geometry/Map/imstkTetraTriangleMap.h similarity index 100% rename from Base/Geometry/imstkTetraTriangleMap.h rename to Base/Geometry/Map/imstkTetraTriangleMap.h diff --git a/Base/Geometry/imstkHexahedralMesh.cpp b/Base/Geometry/Mesh/imstkHexahedralMesh.cpp similarity index 100% rename from Base/Geometry/imstkHexahedralMesh.cpp rename to Base/Geometry/Mesh/imstkHexahedralMesh.cpp diff --git a/Base/Geometry/imstkHexahedralMesh.h b/Base/Geometry/Mesh/imstkHexahedralMesh.h similarity index 100% rename from Base/Geometry/imstkHexahedralMesh.h rename to Base/Geometry/Mesh/imstkHexahedralMesh.h diff --git a/Base/Geometry/imstkMesh.cpp b/Base/Geometry/Mesh/imstkMesh.cpp similarity index 100% rename from Base/Geometry/imstkMesh.cpp rename to Base/Geometry/Mesh/imstkMesh.cpp diff --git a/Base/Geometry/imstkMesh.h b/Base/Geometry/Mesh/imstkMesh.h similarity index 100% rename from Base/Geometry/imstkMesh.h rename to Base/Geometry/Mesh/imstkMesh.h diff --git a/Base/Geometry/imstkSurfaceMesh.cpp b/Base/Geometry/Mesh/imstkSurfaceMesh.cpp similarity index 100% rename from Base/Geometry/imstkSurfaceMesh.cpp rename to Base/Geometry/Mesh/imstkSurfaceMesh.cpp diff --git a/Base/Geometry/imstkSurfaceMesh.h b/Base/Geometry/Mesh/imstkSurfaceMesh.h similarity index 100% rename from Base/Geometry/imstkSurfaceMesh.h rename to Base/Geometry/Mesh/imstkSurfaceMesh.h diff --git a/Base/Geometry/imstkTetrahedralMesh.cpp b/Base/Geometry/Mesh/imstkTetrahedralMesh.cpp similarity index 100% rename from Base/Geometry/imstkTetrahedralMesh.cpp rename to Base/Geometry/Mesh/imstkTetrahedralMesh.cpp diff --git a/Base/Geometry/imstkTetrahedralMesh.h b/Base/Geometry/Mesh/imstkTetrahedralMesh.h similarity index 100% rename from Base/Geometry/imstkTetrahedralMesh.h rename to Base/Geometry/Mesh/imstkTetrahedralMesh.h diff --git a/Base/Geometry/imstkVolumetricMesh.cpp b/Base/Geometry/Mesh/imstkVolumetricMesh.cpp similarity index 100% rename from Base/Geometry/imstkVolumetricMesh.cpp rename to Base/Geometry/Mesh/imstkVolumetricMesh.cpp diff --git a/Base/Geometry/imstkVolumetricMesh.h b/Base/Geometry/Mesh/imstkVolumetricMesh.h similarity index 100% rename from Base/Geometry/imstkVolumetricMesh.h rename to Base/Geometry/Mesh/imstkVolumetricMesh.h diff --git a/Base/Rendering/imstkCubeRenderDelegate.cpp b/Base/Rendering/RenderDelegate/imstkCubeRenderDelegate.cpp similarity index 100% rename from Base/Rendering/imstkCubeRenderDelegate.cpp rename to Base/Rendering/RenderDelegate/imstkCubeRenderDelegate.cpp diff --git a/Base/Rendering/imstkCubeRenderDelegate.h b/Base/Rendering/RenderDelegate/imstkCubeRenderDelegate.h similarity index 100% rename from Base/Rendering/imstkCubeRenderDelegate.h rename to Base/Rendering/RenderDelegate/imstkCubeRenderDelegate.h diff --git a/Base/Rendering/imstkPlaneRenderDelegate.cpp b/Base/Rendering/RenderDelegate/imstkPlaneRenderDelegate.cpp similarity index 100% rename from Base/Rendering/imstkPlaneRenderDelegate.cpp rename to Base/Rendering/RenderDelegate/imstkPlaneRenderDelegate.cpp diff --git a/Base/Rendering/imstkPlaneRenderDelegate.h b/Base/Rendering/RenderDelegate/imstkPlaneRenderDelegate.h similarity index 100% rename from Base/Rendering/imstkPlaneRenderDelegate.h rename to Base/Rendering/RenderDelegate/imstkPlaneRenderDelegate.h diff --git a/Base/Rendering/imstkRenderDelegate.cpp b/Base/Rendering/RenderDelegate/imstkRenderDelegate.cpp similarity index 100% rename from Base/Rendering/imstkRenderDelegate.cpp rename to Base/Rendering/RenderDelegate/imstkRenderDelegate.cpp diff --git a/Base/Rendering/imstkRenderDelegate.h b/Base/Rendering/RenderDelegate/imstkRenderDelegate.h similarity index 100% rename from Base/Rendering/imstkRenderDelegate.h rename to Base/Rendering/RenderDelegate/imstkRenderDelegate.h diff --git a/Base/Rendering/imstkSphereRenderDelegate.cpp b/Base/Rendering/RenderDelegate/imstkSphereRenderDelegate.cpp similarity index 100% rename from Base/Rendering/imstkSphereRenderDelegate.cpp rename to Base/Rendering/RenderDelegate/imstkSphereRenderDelegate.cpp diff --git a/Base/Rendering/imstkSphereRenderDelegate.h b/Base/Rendering/RenderDelegate/imstkSphereRenderDelegate.h similarity index 100% rename from Base/Rendering/imstkSphereRenderDelegate.h rename to Base/Rendering/RenderDelegate/imstkSphereRenderDelegate.h diff --git a/Base/Scene/imstkCamera.cpp b/Base/Scene/Camera/imstkCamera.cpp similarity index 100% rename from Base/Scene/imstkCamera.cpp rename to Base/Scene/Camera/imstkCamera.cpp diff --git a/Base/Scene/imstkCamera.h b/Base/Scene/Camera/imstkCamera.h similarity index 100% rename from Base/Scene/imstkCamera.h rename to Base/Scene/Camera/imstkCamera.h diff --git a/Base/Scene/imstkLight.cpp b/Base/Scene/Light/imstkLight.cpp similarity index 100% rename from Base/Scene/imstkLight.cpp rename to Base/Scene/Light/imstkLight.cpp diff --git a/Base/Scene/imstkLight.h b/Base/Scene/Light/imstkLight.h similarity index 100% rename from Base/Scene/imstkLight.h rename to Base/Scene/Light/imstkLight.h diff --git a/Base/Scene/imstkSceneObject.cpp b/Base/Scene/Object/imstkSceneObject.cpp similarity index 100% rename from Base/Scene/imstkSceneObject.cpp rename to Base/Scene/Object/imstkSceneObject.cpp diff --git a/Base/Scene/imstkSceneObject.h b/Base/Scene/Object/imstkSceneObject.h similarity index 100% rename from Base/Scene/imstkSceneObject.h rename to Base/Scene/Object/imstkSceneObject.h diff --git a/CMake/Utilities/imstkAddLibrary.cmake b/CMake/Utilities/imstkAddLibrary.cmake index 642f6ff3e9c3f6c7d99a9713f1a7755f361c7ae0..b7999646062ae6158f43055997d25399017d43e3 100644 --- a/CMake/Utilities/imstkAddLibrary.cmake +++ b/CMake/Utilities/imstkAddLibrary.cmake @@ -1,3 +1,15 @@ +macro(imstk_subdir_list result curdir) + file(GLOB children RELATIVE ${curdir} ${curdir}/*) + set(dirlist "") + foreach(child ${children}) + if(IS_DIRECTORY ${curdir}/${child}) + list(APPEND dirlist ${child}) + endif() + endforeach() + set(${result} ${dirlist}) +endmacro() + + function(imstk_add_library target) set(options VERBOSE) @@ -18,10 +30,11 @@ function(imstk_add_library target) endif() #----------------------------------------------------------------------------- - # Create target (library) + # Get files and directories #----------------------------------------------------------------------------- - file(GLOB target_H_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") - file(GLOB target_CPP_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") + file(GLOB_RECURSE target_H_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") + file(GLOB_RECURSE target_CPP_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") + imstk_subdir_list(target_SUBDIR_LIST ${CMAKE_CURRENT_SOURCE_DIR}) #----------------------------------------------------------------------------- # Create target (library) @@ -41,8 +54,13 @@ function(imstk_add_library target) #----------------------------------------------------------------------------- # Include directories #----------------------------------------------------------------------------- + list(APPEND target_BUILD_INTERFACE_LIST "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>") + foreach(subdir ${target_SUBDIR_LIST}) + list(APPEND target_BUILD_INTERFACE_LIST "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${subdir}>") + endforeach() + target_include_directories( ${target} PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + ${target_BUILD_INTERFACE_LIST} $<INSTALL_INTERFACE:${iMSTK_INSTALL_INCLUDE_DIR}> )