|
1 | 1 | cmake_minimum_required(VERSION 3.12) |
2 | 2 | project(CollisionAlgorithm VERSION 0.1 LANGUAGES CXX) |
3 | 3 |
|
4 | | -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) |
| 4 | +find_package(Sofa.Simulation.Core REQUIRED) |
| 5 | +find_package(Sofa.Component.StateContainer REQUIRED) |
| 6 | +find_package(Sofa.Component.Constraint.Lagrangian.Solver REQUIRED) |
| 7 | +find_package(Sofa.GL REQUIRED) |
5 | 8 |
|
6 | | -file(GLOB_RECURSE HEADER_FILES |
7 | | - "src/*.h" |
8 | | - "src/*.inl" |
9 | | -) |
| 9 | +set(COLLISIONALGORITHM_SRC "src/${PROJECT_NAME}") |
10 | 10 |
|
11 | | -file(GLOB_RECURSE SOURCE_FILES |
12 | | - "src/*.cpp" |
13 | | -) |
| 11 | +set(HEADER_FILES |
| 12 | + ${COLLISIONALGORITHM_SRC}/config.h.in |
| 13 | + ${COLLISIONALGORITHM_SRC}/initCollisionAlgorithm.h |
14 | 14 |
|
15 | | -file(GLOB_RECURSE SCENES_FILES |
16 | | - "scenes/*.scn" |
17 | | - "*.xml" |
18 | | -) |
| 15 | + ${COLLISIONALGORITHM_SRC}/BaseAABBBroadPhase.h |
| 16 | + ${COLLISIONALGORITHM_SRC}/BaseAlgorithm.h |
| 17 | + ${COLLISIONALGORITHM_SRC}/BaseElement.h |
| 18 | + ${COLLISIONALGORITHM_SRC}/BaseGeometry.h |
| 19 | + ${COLLISIONALGORITHM_SRC}/BaseOperation.h |
| 20 | + ${COLLISIONALGORITHM_SRC}/BaseProximity.h |
| 21 | + ${COLLISIONALGORITHM_SRC}/CollisionPipeline.h |
| 22 | + ${COLLISIONALGORITHM_SRC}/DataDetectionOutput.h |
| 23 | + ${COLLISIONALGORITHM_SRC}/ElementIterator.h |
| 24 | + ${COLLISIONALGORITHM_SRC}/InternalData.h |
19 | 25 |
|
20 | | -file(GLOB_RECURSE IGNORED_FILES |
21 | | - "ignored/*.h" |
22 | | - "ignored/*.inl" |
23 | | - "ignored/*.cpp" |
24 | | -) |
| 26 | + ${COLLISIONALGORITHM_SRC}/algorithm/Find2DClosestProximityAlgorithm.h |
| 27 | + ${COLLISIONALGORITHM_SRC}/algorithm/FindClosestProximityAlgorithm.h |
| 28 | + ${COLLISIONALGORITHM_SRC}/algorithm/InsertionAlgorithm.h |
| 29 | + |
| 30 | + ${COLLISIONALGORITHM_SRC}/broadphase/AABBBroadPhase.h |
| 31 | + ${COLLISIONALGORITHM_SRC}/broadphase/FullAABBBroadPhase.h |
| 32 | + |
| 33 | + ${COLLISIONALGORITHM_SRC}/elements/EdgeElement.h |
| 34 | + ${COLLISIONALGORITHM_SRC}/elements/PointElement.h |
| 35 | + ${COLLISIONALGORITHM_SRC}/elements/TetrahedronElement.h |
| 36 | + ${COLLISIONALGORITHM_SRC}/elements/TriangleElement.h |
| 37 | + |
| 38 | + ${COLLISIONALGORITHM_SRC}/filters/DistanceFilter.h |
| 39 | + |
| 40 | + ${COLLISIONALGORITHM_SRC}/geometry/EdgeGeometry.h |
| 41 | + ${COLLISIONALGORITHM_SRC}/geometry/PointGeometry.h |
| 42 | + ${COLLISIONALGORITHM_SRC}/geometry/SubsetGeometry.h |
| 43 | + ${COLLISIONALGORITHM_SRC}/geometry/TetrahedronGeometry.h |
| 44 | + ${COLLISIONALGORITHM_SRC}/geometry/TriangleGeometry.h |
| 45 | + |
| 46 | + ${COLLISIONALGORITHM_SRC}/operations/CreateCenterProximity.h |
| 47 | + ${COLLISIONALGORITHM_SRC}/operations/FindClosestProximity.h |
| 48 | + ${COLLISIONALGORITHM_SRC}/operations/Project.h |
| 49 | + ${COLLISIONALGORITHM_SRC}/operations/ContainsPoint.h |
| 50 | + ${COLLISIONALGORITHM_SRC}/operations/NeedleOperations.h |
25 | 51 |
|
26 | | -file(GLOB_RECURSE DEPRECATED_FILES |
27 | | - "deprecated/*.h" |
28 | | - "deprecated/*.inl" |
29 | | - "deprecated/*.cpp" |
| 52 | + ${COLLISIONALGORITHM_SRC}/proximity/EdgeProximity.h |
| 53 | + ${COLLISIONALGORITHM_SRC}/proximity/FixedProximity.h |
| 54 | + ${COLLISIONALGORITHM_SRC}/proximity/MechanicalProximity.h |
| 55 | + ${COLLISIONALGORITHM_SRC}/proximity/MultiProximity.h |
| 56 | + ${COLLISIONALGORITHM_SRC}/proximity/PointProximity.h |
| 57 | + ${COLLISIONALGORITHM_SRC}/proximity/TetrahedronProximity.h |
| 58 | + ${COLLISIONALGORITHM_SRC}/proximity/TriangleProximity.h |
| 59 | + |
| 60 | + ${COLLISIONALGORITHM_SRC}/toolbox/EdgeToolBox.h |
| 61 | + ${COLLISIONALGORITHM_SRC}/toolbox/PointToolBox.h |
| 62 | + ${COLLISIONALGORITHM_SRC}/toolbox/TetrahedronToolBox.h |
| 63 | + ${COLLISIONALGORITHM_SRC}/toolbox/TriangleToolBox.h |
30 | 64 | ) |
31 | 65 |
|
32 | | -find_package(Sofa.Simulation.Core REQUIRED) |
33 | | -find_package(Sofa.Component.StateContainer REQUIRED) |
34 | | -find_package(Sofa.Component.Constraint.Lagrangian.Solver REQUIRED) |
35 | | -find_package(Sofa.GL REQUIRED) |
| 66 | +set(SOURCE_FILES |
| 67 | + ${COLLISIONALGORITHM_SRC}/initCollisionAlgorithm.cpp |
| 68 | + |
| 69 | + ${COLLISIONALGORITHM_SRC}/CollisionPipeline.cpp |
| 70 | + |
| 71 | + ${COLLISIONALGORITHM_SRC}/algorithm/Find2DClosestProximityAlgorithm.cpp |
| 72 | + ${COLLISIONALGORITHM_SRC}/algorithm/FindClosestProximityAlgorithm.cpp |
| 73 | + ${COLLISIONALGORITHM_SRC}/algorithm/InsertionAlgorithm.cpp |
36 | 74 |
|
| 75 | + ${COLLISIONALGORITHM_SRC}/broadphase/AABBBroadPhase.cpp |
| 76 | + ${COLLISIONALGORITHM_SRC}/broadphase/FullAABBBroadPhase.cpp |
37 | 77 |
|
38 | | -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/ignored") |
39 | | -#include_directories("${CMAKE_CURRENT_SOURCE_DIR}/deprecated") |
| 78 | + ${COLLISIONALGORITHM_SRC}/elements/EdgeElement.cpp |
| 79 | + ${COLLISIONALGORITHM_SRC}/elements/PointElement.cpp |
| 80 | + ${COLLISIONALGORITHM_SRC}/elements/TetrahedronElement.cpp |
| 81 | + ${COLLISIONALGORITHM_SRC}/elements/TriangleElement.cpp |
| 82 | + |
| 83 | + ${COLLISIONALGORITHM_SRC}/filters/DistanceFilter.cpp |
| 84 | + |
| 85 | + ${COLLISIONALGORITHM_SRC}/geometry/EdgeGeometry.cpp |
| 86 | + ${COLLISIONALGORITHM_SRC}/geometry/PointGeometry.cpp |
| 87 | + ${COLLISIONALGORITHM_SRC}/geometry/SubsetGeometry.cpp |
| 88 | + ${COLLISIONALGORITHM_SRC}/geometry/TetrahedronGeometry.cpp |
| 89 | + ${COLLISIONALGORITHM_SRC}/geometry/TriangleGeometry.cpp |
| 90 | + |
| 91 | + ${COLLISIONALGORITHM_SRC}/operations/CreateCenterProximity.cpp |
| 92 | + ${COLLISIONALGORITHM_SRC}/operations/FindClosestProximity.cpp |
| 93 | + ${COLLISIONALGORITHM_SRC}/operations/Project.cpp |
| 94 | + ${COLLISIONALGORITHM_SRC}/operations/ContainsPoint.cpp |
| 95 | + ${COLLISIONALGORITHM_SRC}/operations/NeedleOperations.cpp |
| 96 | + |
| 97 | + ${COLLISIONALGORITHM_SRC}/toolbox/EdgeToolBox.cpp |
| 98 | + ${COLLISIONALGORITHM_SRC}/toolbox/PointToolBox.cpp |
| 99 | + ${COLLISIONALGORITHM_SRC}/toolbox/TetrahedronToolBox.cpp |
| 100 | + ${COLLISIONALGORITHM_SRC}/toolbox/TriangleToolBox.cpp |
| 101 | +) |
40 | 102 |
|
41 | | -set_source_files_properties(${IGNORED_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) |
| 103 | +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES} ${README_FILES}) |
42 | 104 |
|
43 | | -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES} ${SCENES_FILES} ${IGNORED_FILES} ${DEPRECATED_FILES} ${README_FILES}) |
44 | | -set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-DPLUGIN_DATA_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/\"") |
45 | 105 | target_link_libraries(${PROJECT_NAME} |
46 | 106 | Sofa.Simulation.Core |
47 | 107 | Sofa.Component.StateContainer |
48 | 108 | Sofa.Component.Constraint.Lagrangian.Solver |
49 | 109 | Sofa.GL |
50 | 110 | ) |
51 | 111 |
|
52 | | -## Install rules for the library and headers; CMake package configurations files |
53 | | -set(${PROJECT_NAME}_INCLUDE_DIRS "include/${PROJECT_NAME}") |
54 | | -target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>") |
55 | | -target_include_directories(${PROJECT_NAME} PUBLIC "$<INSTALL_INTERFACE:${${PROJECT_NAME}_INCLUDE_DIRS}>") |
56 | | -sofa_create_package_with_targets(PACKAGE_NAME ${PROJECT_NAME} PACKAGE_VERSION 0.1 TARGETS ${PROJECT_NAME} INCLUDE_INSTALL_DIR ${${PROJECT_NAME}_INCLUDE_DIRS}) |
| 112 | +sofa_create_package_with_targets( |
| 113 | + PACKAGE_NAME ${PROJECT_NAME} |
| 114 | + PACKAGE_VERSION ${PROJECT_VERSION} |
| 115 | + TARGETS ${PROJECT_NAME} AUTO_SET_TARGET_PROPERTIES |
| 116 | + INCLUDE_SOURCE_DIR "src" |
| 117 | + INCLUDE_INSTALL_DIR ${PROJECT_NAME} |
| 118 | + EXAMPLE_INSTALL_DIR "scenes" |
| 119 | + RELOCATABLE "plugins" |
| 120 | + ) |
0 commit comments