forked from celeritas-project/celeritas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
115 lines (104 loc) · 3.45 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#----------------------------------*-CMake-*----------------------------------#
# Copyright 2022-2024 UT-Battelle, LLC, and other Celeritas developers.
# See the top-level COPYRIGHT file for details.
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
#-----------------------------------------------------------------------------#
set(SOURCES)
set(PRIVATE_DEPS Celeritas::geocel)
set(PUBLIC_DEPS Celeritas::corecel)
#-----------------------------------------------------------------------------#
# Main code
#-----------------------------------------------------------------------------#
list(APPEND SOURCES
BoundingBoxUtils.cc
MatrixUtils.cc
OrangeParams.cc
OrangeParamsOutput.cc
OrangeTypes.cc
detail/BIHBuilder.cc
detail/BIHPartitioner.cc
detail/DepthCalculator.cc
detail/RectArrayInserter.cc
detail/SurfacesRecordBuilder.cc
detail/UnitInserter.cc
detail/UniverseInserter.cc
orangeinp/ConvexRegion.cc
orangeinp/ConvexSurfaceBuilder.cc
orangeinp/CsgObject.cc
orangeinp/CsgTree.cc
orangeinp/CsgTypes.cc
orangeinp/CsgTreeUtils.cc
orangeinp/ProtoInterface.cc
orangeinp/Shape.cc
orangeinp/Solid.cc
orangeinp/Transformed.cc
orangeinp/UnitProto.cc
orangeinp/detail/BoundingZone.cc
orangeinp/detail/BuildConvexRegion.cc
orangeinp/detail/ConvexSurfaceState.cc
orangeinp/detail/CsgUnitBuilder.cc
orangeinp/detail/InputBuilder.cc
orangeinp/detail/InternalSurfaceFlagger.cc
orangeinp/detail/LocalSurfaceInserter.cc
orangeinp/detail/NodeSimplifier.cc
orangeinp/detail/PostfixLogicBuilder.cc
orangeinp/detail/ProtoMap.cc
orangeinp/detail/SenseEvaluator.cc
orangeinp/detail/TransformInserter.cc
orangeinp/detail/VolumeBuilder.cc
surf/ConeAligned.cc
surf/CylAligned.cc
surf/FaceNamer.cc
surf/GeneralQuadric.cc
surf/Plane.cc
surf/PlaneAligned.cc
surf/SimpleQuadric.cc
surf/Sphere.cc
surf/SoftSurfaceEqual.cc
surf/SurfaceClipper.cc
surf/SurfaceIO.cc
surf/SurfaceSimplifier.cc
surf/VariantSurface.cc
surf/detail/SurfaceTranslator.cc
surf/detail/SurfaceTransformer.cc
transform/SignedPermutation.cc
transform/TransformHasher.cc
transform/TransformIO.cc
transform/TransformSimplifier.cc
transform/Transformation.cc
transform/VariantTransform.cc
)
if(CELERITAS_USE_JSON)
list(APPEND SOURCES
OrangeInputIO.json.cc
detail/OrangeInputIOImpl.json.cc
orangeinp/CsgTreeIO.json.cc
orangeinp/ObjectIO.json.cc
)
list(APPEND PRIVATE_DEPS nlohmann_json::nlohmann_json)
endif()
if(CELERITAS_USE_Geant4 AND CELERITAS_REAL_TYPE STREQUAL "double")
set( _cg4org_sources
g4org/Converter.cc
g4org/LogicalVolumeConverter.cc
g4org/PhysicalVolumeConverter.cc
g4org/ProtoConstructor.cc
g4org/SolidConverter.cc
)
celeritas_get_g4libs(_cg4org_libs geometry)
list(APPEND _cg4org_libs Celeritas::corecel Celeritas::geocel)
celeritas_add_object_library(geocel_g4org ${_cg4org_sources})
celeritas_target_link_libraries(geocel_g4org PRIVATE ${_cg4org_libs})
list(APPEND SOURCES $<TARGET_OBJECTS:geocel_g4org>)
list(APPEND PRIVATE_DEPS geocel_g4org)
endif()
celeritas_polysource_append(SOURCES RaytraceImager)
#-----------------------------------------------------------------------------#
# Create library
#-----------------------------------------------------------------------------#
celeritas_add_library(orange ${SOURCES})
celeritas_target_link_libraries(orange
PRIVATE ${PRIVATE_DEPS}
PUBLIC ${PUBLIC_DEPS}
)
#-----------------------------------------------------------------------------#