forked from realXtend/tundra
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeBuildConfigTemplate.txt
183 lines (147 loc) · 8.63 KB
/
CMakeBuildConfigTemplate.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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# The CMakeBuildConfigTemplate.txt defines the default build settings
# that are used when you build a clean checkout.
# CMakeBuildConfigTemplate.txt is only a template file! Changes to that file
# do not have any effect on the actual CMake execution.
# For the actual configuration, the file CMakeBuildConfigTemplate.txt gets
# copied to CMakeBuildConfig.txt, in which you can customize your own settings.
# The CMakeBuildConfig.txt is not part of the repository, and do not add it there!
# The idea is that everyone can customize the set of modules to build using that
# file, without having to fear about an accidental commit of these changes.
# Configure the use of Caelum. http://www.ogre3d.org/tikiwiki/Caelum
if (MSVC OR APPLE)
SET(CAELUM 1)
configure_caelum ()
endif()
# Configure the use of Hydrax. By default Hydrax is disabled. http://www.ogre3d.org/tikiwiki/Hydrax
if (MSVC)
SET(HYDRAX 0)
# configure_hydrax ()
endif()
# Set login scene type: 1 = dynamic switchable ether + normal login, 0 = static classical login
SET(DYNAMIC_LOGIN_SCENE 1)
# If the following flag is defined, Naali will be compiled with the built-in execution time profiler enabled.
add_definitions(-DPROFILING)
# Enable js profiling?
# add_definitions -(DENABLE_JS_PROFILING)
# If the following flag is defined, memory leak checking is enabled in all modules when building on MSVC.
if (MSVC)
add_definitions(-DMEMORY_LEAK_CHECK)
endif()
# The UI functionality can be accessed through the UI core API object.
# UiModule contains the original Naali Ether login screen and UI functionality.
# Some legacy/reX features are disabled if UiModule is not used.
SET(USE_UIMODULE 0)
# Enables Open Asset Import Library, which can be used to import various
# mesh formats.
SET(OPENASSETIMPORT 0)
if (MSVC)
SET(OPENASSETIMPORT 1)
endif()
# Enables Ogre asset editor module
SET(OGREASSETEDITOR 1)
# The following are the core modules that are required for the project to build. None of these can be omitted.
add_subdirectory(Core)
add_subdirectory(Foundation)
add_subdirectory(Player)
add_subdirectory(Asset)
add_subdirectory(Audio)
add_subdirectory(Console)
add_subdirectory(Input)
add_subdirectory(Ui)
add_subdirectory(Scene)
add_subdirectory(Devices)
add_subdirectory(OgreRenderingModule)
add_subdirectory(KristalliProtocolModule)
add_subdirectory(TundraLogicModule)
add_subdirectory(Viewer)
add_subdirectory(Server)
#To-be-deprecated, but required for now:
add_subdirectory(Interfaces)
add_subdirectory(RexCommon)
# The AddEntityComponent macros must appear before any of the add_subdirectory() directives for modules that use the ECs, or otherwise
# they will not be able to conditionally compile the EC.
# The following ECs are required for Naali to build.
AddEntityComponent(EntityComponents/EC_OpenSimPrim EC_OpenSimPrim) # Required by ProtocolUtilities and RexLogicModule. Declared by RexLogicModule.
AddEntityComponent(EntityComponents/EC_OpenSimPresence EC_OpenSimPresence) # Declared by RexLogicModule.
AddEntityComponent(EntityComponents/EC_NetworkPosition EC_NetworkPosition) # Required. Declared by AvatarModule.
# The following EC's are declared by RexLogicModule and are optional. You may comment these lines out to disable any ECs you do not want to include.
AddEntityComponent(EntityComponents/EC_Highlight EC_Highlight)
AddEntityComponent(EntityComponents/EC_InputMapper EC_InputMapper)
AddEntityComponent(EntityComponents/EC_Sound EC_Sound)
AddEntityComponent(EntityComponents/EC_ParticleSystem EC_ParticleSystem)
AddEntityComponent(EntityComponents/EC_3DCanvas EC_3DCanvas)
AddEntityComponent(EntityComponents/EC_3DCanvasSource EC_3DCanvasSource)
AddEntityComponent(EntityComponents/EC_HoveringText EC_HoveringText)
AddEntityComponent(EntityComponents/EC_Clone EC_Clone)
AddEntityComponent(EntityComponents/EC_Light EC_Light)
AddEntityComponent(EntityComponents/EC_Touchable EC_Touchable)
AddEntityComponent(EntityComponents/EC_Ruler EC_Ruler)
AddEntityComponent(EntityComponents/EC_SoundRuler EC_SoundRuler)
AddEntityComponent(EntityComponents/EC_SoundListener EC_SoundListener)
AddEntityComponent(EntityComponents/EC_PlanarMirror EC_PlanarMirror)
AddEntityComponent(EntityComponents/EC_ProximityTrigger EC_ProximityTrigger)
AddEntityComponent(EntityComponents/EC_Gizmo EC_Gizmo)
AddEntityComponent(EntityComponents/EC_VideoSource EC_VideoSource)
AddEntityComponent(EntityComponents/EC_Selected EC_Selected)
AddEntityComponent(EntityComponents/EC_WebView EC_WebView)
AddEntityComponent(EntityComponents/EC_LaserPointer EC_LaserPointer)
# The following EC's are declared by AvatarModule. Optional.
AddEntityComponent(EntityComponents/EC_HoveringWidget EC_HoveringWidget)
# The following two are declared by both PythonScriptModule and JavascriptModule. They are optional.
AddEntityComponent(EntityComponents/EC_DynamicComponent EC_DynamicComponent) # Required by ECEditorModule.
AddEntityComponent(EntityComponents/EC_Script EC_Script)
# The following modules are required.
add_subdirectory(RexLogicModule) # Depends on OgreRenderingModule, EnvironmentModule, AvatarModule and Taiga subsystem.
add_subdirectory(AvatarModule) # Depends on OgreRenderingModule.
add_subdirectory(AssetModule) # Depends on Taiga subsystem.
add_subdirectory(HttpUtilities)
add_subdirectory(RpcUtilities)
add_subdirectory(ProtocolUtilities) # Depends on Taiga subsystem.
add_subdirectory(EnvironmentModule) # Depends on OgreRenderingModule and Taiga subsystem.
add_subdirectory(PhysicsModule) # Depends on OgreRenderingModule.
# The following are not core modules, but you cannot do anything practical without
# having them, so they are effectively required.
add_subdirectory(ProtocolModuleOpenSim) # Required with OpenSim.
add_subdirectory(ProtocolModuleTaiga) # Required with OpenSim.
if (USE_UIMODULE)
add_subdirectory(UiModule) # Depends on OgreRenderingModule.
add_subdirectory(EtherModule)
endif()
# The following are optional.
add_subdirectory(ECEditorModule) # Tool for editing Naali scene data. Requires EC_DynamicComponent. Depends on OgreRenderingModule.
#not ported for new asset api, doesn't compile here (only in branches before new asset api)
#add_subdirectory(InventoryModule) # OpenSim and Taiga WebDAV inventory.
if (OGREASSETEDITOR)
add_subdirectory(OgreAssetEditorModule) # Enables Ogre-specific asset editors. Depends on OgreRenderingModule.
endif()
add_subdirectory(DebugStatsModule) # Enables a developer window for debugging. Depends on OgreRenderingModule, EnvironmentModule and Taiga subsystem.
add_subdirectory(PythonScriptModule) # Allows Python-created modules and scene script instances. Depends on OgreRenderingModule, RexLogicModule, AvatarModule and Taiga subsystem.
add_subdirectory(JavascriptModule) # Allows QtScript-created scene script instances.
add_subdirectory(CommunicationsModule) # Enables communication capabilities.
#add_subdirectory(InWorldChatModule) # Implements in-world text communication.
add_subdirectory(CAVEStereoModule) # Implements CAVE and Stereoscopy functionality
add_subdirectory(SceneStructureModule) # Allows accessing, editing, importing and exporting of scene structure data
if (OPENASSETIMPORT)
add_subdirectory(OpenAssetImport) # Allows import of various mesh file formats
endif()
#add_subdirectory(TelepathyIMModule) # Telepathy Messaging support. Depends on OgreRenderingModule.
add_subdirectory(CameraModule)
AddEntityComponent(EntityComponents/EC_ChatBubble EC_ChatBubble) # declared by InWorldChatModule
AddEntityComponent(EntityComponents/EC_Billboard EC_Billboard) # declared by InWorldChatModule
#add_subdirectory(LegacyAvatarModule)
if (MSVC)
#add_subdirectory(MumbleVoipModule) # VOIP communication using the Mumble library. Depends on OgreRenderingModule.
add_subdirectory (TtsModule)
# add_subdirectory (NotificationTTS)
add_subdirectory(CameraInputModule) # Camera input module depends on opencv library.
else()
# \todo Include MumbleVoip and CameraInputModule on linux. For CameraInputModule ConfigurePackages.cmake you can find todo comments in the opencv related macros.
endif()
#add_subdirectory(PhononPlayerModule) # Implements Qt Phonon -based video playback capabilities.
if (USE_UIMODULE)
add_subdirectory(TelepathyIMModule) # Telepathy Messaging support. Depends on OgreRenderingModule.
add_subdirectory(WorldBuildingModule) # Implements the world building mode. Requires UiModule (USE_UIMODULE defined). Depends on OgreRenderingModule and InventoryModule.
add_subdirectory(WorldMapModule) # Implements OpenSim grid world map. Depends on OgreRenderingModule and UiModule.
endif()
# Only useful for msi installer builds
#add_subdirectory(UpdateModule)