forked from mirrors/principia
Add experimental unity build support behind UNITY_BUILD compile option
It will build most of the main C++ codebase in one chunk, as well as build the entirety of Box2D in its own chunk. This should significantly improve build times for full builds.
This commit is contained in:
parent
76bd4d9c70
commit
9ffb133da5
3 changed files with 323 additions and 10 deletions
|
|
@ -22,6 +22,8 @@ add_custom_target(GenerateGitVersion
|
|||
-P "${CMAKE_SOURCE_DIR}/cmake/Modules/GenerateGitVersion.cmake"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
option(UNITY_BUILD "Experimental unity build" FALSE)
|
||||
mark_as_advanced(UNITY_BUILD)
|
||||
|
||||
# Find core dependencies
|
||||
# ----------------------
|
||||
|
|
@ -109,13 +111,29 @@ file(GLOB SRCS
|
|||
src/tms/bindings/cpp/cpp.cc
|
||||
src/tms/modules/3ds.c
|
||||
|
||||
src/*.cc
|
||||
src/luascript/*.cc
|
||||
src/*.c
|
||||
|
||||
lib/GLAD/src/gl.c
|
||||
lib/lua/*.c
|
||||
lib/SDL_image/*.c
|
||||
)
|
||||
|
||||
if(UNITY_BUILD)
|
||||
list(APPEND SRCS
|
||||
src/_unity_chunk.cc
|
||||
src/game.cc
|
||||
src/game-gearbox-edit.cc
|
||||
src/game-gui.cc
|
||||
src/game-panel-edit.cc
|
||||
src/menu_pkg.cc
|
||||
src/repair_station.cc
|
||||
src/solver_ingame.cc
|
||||
|
||||
lib/Box2D/_unity_chunk.cc)
|
||||
else()
|
||||
file(GLOB MAIN_SRCS
|
||||
src/*.cc
|
||||
src/luascript/*.cc
|
||||
|
||||
lib/Box2D/Collision/*.cc
|
||||
lib/Box2D/Collision/Shapes/*.cc
|
||||
|
|
@ -123,8 +141,9 @@ file(GLOB SRCS
|
|||
lib/Box2D/Dynamics/*.cc
|
||||
lib/Box2D/Dynamics/Contacts/*.cc
|
||||
lib/Box2D/Dynamics/Joints/*.cc
|
||||
lib/Box2D/Particle/*.cc
|
||||
)
|
||||
lib/Box2D/Particle/*.cc)
|
||||
list(APPEND SRCS ${MAIN_SRCS})
|
||||
endif()
|
||||
|
||||
if(BACKEND_IMGUI)
|
||||
file(GLOB IMGUI_SRCS
|
||||
|
|
@ -248,6 +267,10 @@ if(SHOULD_USE_GLES)
|
|||
add_definitions(-DTMS_USE_GLES)
|
||||
endif()
|
||||
|
||||
if(UNITY_BUILD)
|
||||
add_definitions(-DUNITY_BUILD)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
add_definitions(-D_WIN32_WINNT=0x0501 -DUNICODE)
|
||||
elseif(SCREENSHOT_BUILD)
|
||||
|
|
|
|||
55
lib/Box2D/_unity_chunk.cc
Normal file
55
lib/Box2D/_unity_chunk.cc
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
#ifdef UNITY_BUILD
|
||||
|
||||
#include "Collision/b2BroadPhase.cc"
|
||||
#include "Collision/b2CollideCircle.cc"
|
||||
#include "Collision/b2CollideEdge.cc"
|
||||
#include "Collision/b2CollidePolygon.cc"
|
||||
#include "Collision/b2Collision.cc"
|
||||
#include "Collision/b2Distance.cc"
|
||||
#include "Collision/b2DynamicTree.cc"
|
||||
#include "Collision/b2TimeOfImpact.cc"
|
||||
#include "Collision/Shapes/b2ChainShape.cc"
|
||||
#include "Collision/Shapes/b2CircleShape.cc"
|
||||
#include "Collision/Shapes/b2EdgeShape.cc"
|
||||
#include "Collision/Shapes/b2PolygonShape.cc"
|
||||
#include "Common/b2BlockAllocator.cc"
|
||||
#include "Common/b2Draw.cc"
|
||||
#include "Common/b2Math.cc"
|
||||
#include "Common/b2Settings.cc"
|
||||
#include "Common/b2StackAllocator.cc"
|
||||
#include "Common/b2Timer.cc"
|
||||
#include "Dynamics/b2Body.cc"
|
||||
#include "Dynamics/b2ContactManager.cc"
|
||||
#include "Dynamics/b2Fixture.cc"
|
||||
#include "Dynamics/b2Island.cc"
|
||||
#include "Dynamics/b2WorldCallbacks.cc"
|
||||
#include "Dynamics/b2World.cc"
|
||||
#include "Dynamics/Contacts/b2ChainAndCircleContact.cc"
|
||||
#include "Dynamics/Contacts/b2ChainAndPolygonContact.cc"
|
||||
#include "Dynamics/Contacts/b2CircleContact.cc"
|
||||
#include "Dynamics/Contacts/b2Contact.cc"
|
||||
#include "Dynamics/Contacts/b2ContactSolver.cc"
|
||||
#include "Dynamics/Contacts/b2EdgeAndCircleContact.cc"
|
||||
#include "Dynamics/Contacts/b2EdgeAndPolygonContact.cc"
|
||||
#include "Dynamics/Contacts/b2PolygonAndCircleContact.cc"
|
||||
#include "Dynamics/Contacts/b2PolygonContact.cc"
|
||||
#include "Dynamics/Joints/b2DistanceJoint.cc"
|
||||
#include "Dynamics/Joints/b2FrictionJoint.cc"
|
||||
#include "Dynamics/Joints/b2GearJoint.cc"
|
||||
#include "Dynamics/Joints/b2Joint.cc"
|
||||
#include "Dynamics/Joints/b2MotorJoint.cc"
|
||||
#include "Dynamics/Joints/b2MouseJoint.cc"
|
||||
#include "Dynamics/Joints/b2PivotJoint.cc"
|
||||
#include "Dynamics/Joints/b2PrismaticJoint.cc"
|
||||
#include "Dynamics/Joints/b2PulleyJoint.cc"
|
||||
#include "Dynamics/Joints/b2RevoluteJoint.cc"
|
||||
#include "Dynamics/Joints/b2RopeJoint.cc"
|
||||
#include "Dynamics/Joints/b2WeldJoint.cc"
|
||||
#include "Dynamics/Joints/b2WheelJoint.cc"
|
||||
#include "Particle/b2Particle.cc"
|
||||
#include "Particle/b2ParticleGroup.cc"
|
||||
#include "Particle/b2ParticleSystem.cc"
|
||||
#include "Particle/b2VoronoiDiagram.cc"
|
||||
#include "Rope/b2Rope.cc"
|
||||
|
||||
#endif
|
||||
235
src/_unity_chunk.cc
Normal file
235
src/_unity_chunk.cc
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
#ifdef UNITY_BUILD
|
||||
|
||||
#include "absorber.cc"
|
||||
#include "activator.cc"
|
||||
#include "adventure.cc"
|
||||
#include "anchor.cc"
|
||||
#include "angulardamper.cc"
|
||||
#include "angularvelmeter.cc"
|
||||
#include "animal.cc"
|
||||
#include "backpack.cc"
|
||||
#include "ball.cc"
|
||||
#include "basepixel.cc"
|
||||
#include "battery.cc"
|
||||
#include "beam.cc"
|
||||
#include "bomber.cc"
|
||||
#include "boundary.cc"
|
||||
#include "box.cc"
|
||||
#include "breadboard.cc"
|
||||
#include "button.cc"
|
||||
#include "cable.cc"
|
||||
#include "camera_rotator.cc"
|
||||
#include "cavg.cc"
|
||||
#include "ceilgate.cc"
|
||||
#include "checkpoint.cc"
|
||||
#include "chunk.cc"
|
||||
#include "chunk_preloader.cc"
|
||||
#include "chunk_window.cc"
|
||||
#include "clamp.cc"
|
||||
#include "clip.cc"
|
||||
#include "command.cc"
|
||||
#include "companion.cc"
|
||||
#include "composable.cc"
|
||||
#include "connection.cc"
|
||||
#include "conveyor.cc"
|
||||
#include "corner.cc"
|
||||
#include "crane.cc"
|
||||
#include "crc.cc"
|
||||
#include "creature.cc"
|
||||
#include "ctrlfplus.cc"
|
||||
#include "ctrlmini.cc"
|
||||
#include "ctrlpass.cc"
|
||||
#include "ctrlservo.cc"
|
||||
#include "cup.cc"
|
||||
#include "cursorfield.cc"
|
||||
#include "cylinder.cc"
|
||||
#include "damper.cc"
|
||||
#include "debugdraw.cc"
|
||||
#include "decay.cc"
|
||||
#include "decorations.cc"
|
||||
#include "display.cc"
|
||||
#include "dragfield.cc"
|
||||
#include "eatan2.cc"
|
||||
#include "edevice.cc"
|
||||
#include "egraph.cc"
|
||||
#include "elimit.cc"
|
||||
#include "emitter.cc"
|
||||
#include "emscripten_interop.cc"
|
||||
#include "entity.cc"
|
||||
#include "epsilon.cc"
|
||||
#include "erandom.cc"
|
||||
#include "escript.cc"
|
||||
#include "esub.cc"
|
||||
#include "eventlistener.cc"
|
||||
#include "explosive.cc"
|
||||
#include "faction.cc"
|
||||
#include "factory.cc"
|
||||
#include "fan.cc"
|
||||
#include "fifo.cc"
|
||||
#include "floorgate.cc"
|
||||
#include "fluidbuffer.cc"
|
||||
#include "fluid.cc"
|
||||
#include "font.cc"
|
||||
#include "fxemitter.cc"
|
||||
//#include "game.cc"
|
||||
#include "game-edit.cc"
|
||||
//#include "game-gearbox-edit.cc"
|
||||
#include "game-graph.cc"
|
||||
//#include "game-gui.cc"
|
||||
#include "gameman.cc"
|
||||
#include "game-message.cc"
|
||||
//#include "game-panel-edit.cc"
|
||||
#include "gearbox.cc"
|
||||
#include "gear.cc"
|
||||
#include "generator.cc"
|
||||
#include "gentype.cc"
|
||||
#include "goal.cc"
|
||||
#include "gravityman.cc"
|
||||
#include "grid.cc"
|
||||
#include "group.cc"
|
||||
#include "gui.cc"
|
||||
#include "gyroscope.cc"
|
||||
#include "i0o1gate.cc"
|
||||
#include "i1o0gate.cc"
|
||||
#include "i1o1gate.cc"
|
||||
#include "i2o0gate.cc"
|
||||
#include "i2o1gate.cc"
|
||||
#include "impact_sensor.cc"
|
||||
#include "invertergate.cc"
|
||||
#include "iomiscgate.cc"
|
||||
#include "item.cc"
|
||||
#include "jumper.cc"
|
||||
#include "key_listener.cc"
|
||||
#include "ladder.cc"
|
||||
#include "ledbuffer.cc"
|
||||
#include "levelman.cc"
|
||||
#include "linear_decay.cc"
|
||||
#include "linebuffer.cc"
|
||||
#include "lmotor.cc"
|
||||
#include "loading_screen.cc"
|
||||
#include "lobber.cc"
|
||||
#include "magconn.cc"
|
||||
#include "magnet.cc"
|
||||
#include "main.cc"
|
||||
#include "material.cc"
|
||||
#include "mavg.cc"
|
||||
#include "menu-base.cc"
|
||||
#include "menu_create.cc"
|
||||
#include "menu_main.cc"
|
||||
//#include "menu_pkg.cc"
|
||||
#include "menu-play.cc"
|
||||
#include "menu_shared.cc"
|
||||
#include "minibot.cc"
|
||||
#include "mini_transmitter.cc"
|
||||
#include "misc.cc"
|
||||
#include "model.cc"
|
||||
#include "mood.cc"
|
||||
#include "motor.cc"
|
||||
#include "muladd.cc"
|
||||
#include "network.cc"
|
||||
#include "noise.cc"
|
||||
#include "object_factory.cc"
|
||||
#include "objectfield.cc"
|
||||
#include "object_finder.cc"
|
||||
#include "oilrig.cc"
|
||||
#include "panel.cc"
|
||||
#include "pipeline.cc"
|
||||
#include "pivot.cc"
|
||||
#include "pixel.cc"
|
||||
#include "pkgman.cc"
|
||||
#include "pkgwarp.cc"
|
||||
#include "plant.cc"
|
||||
#include "player_activator.cc"
|
||||
#include "pointer.cc"
|
||||
#include "polygon.cc"
|
||||
#include "progress.cc"
|
||||
#include "prompt.cc"
|
||||
#include "proximitysensor.cc"
|
||||
#include "pscreen.cc"
|
||||
#include "rack.cc"
|
||||
#include "ragdoll.cc"
|
||||
#include "rail.cc"
|
||||
#include "rc_activator.cc"
|
||||
#include "receiver.cc"
|
||||
//#include "repair_station.cc"
|
||||
#include "resistor.cc"
|
||||
#include "resource.cc"
|
||||
#include "robot_base.cc"
|
||||
#include "robot.cc"
|
||||
#include "robotman.cc"
|
||||
#include "robot_parts.cc"
|
||||
#include "rocket.cc"
|
||||
#include "rope.cc"
|
||||
#include "rubberband.cc"
|
||||
#include "sawtooth.cc"
|
||||
#include "scanner.cc"
|
||||
#include "screenshot_marker.cc"
|
||||
#include "scup.cc"
|
||||
#include "seesaw.cc"
|
||||
#include "sequencer.cc"
|
||||
#include "settings.cc"
|
||||
#include "sfxemitter.cc"
|
||||
#include "shape_extruder.cc"
|
||||
#include "shelf.cc"
|
||||
#include "simplebg.cc"
|
||||
#include "sincos.cc"
|
||||
#include "sinewave.cc"
|
||||
#include "snapgate.cc"
|
||||
#include "solver.cc"
|
||||
//#include "solver_ingame.cc"
|
||||
#include "soundmanager.cc"
|
||||
#include "soundman.cc"
|
||||
#include "sparsifier.cc"
|
||||
#include "sparsifier_plus.cc"
|
||||
#include "speaker.cc"
|
||||
#include "spikebot.cc"
|
||||
#include "spikes.cc"
|
||||
#include "splank.cc"
|
||||
#include "spritebuffer.cc"
|
||||
#include "sqrtgate.cc"
|
||||
#include "squaregate.cc"
|
||||
#include "stabilizer.cc"
|
||||
#include "statesaver.cc"
|
||||
#include "sticky.cc"
|
||||
#include "switch.cc"
|
||||
#include "terrain.cc"
|
||||
#include "tester.cc"
|
||||
#include "textbuffer.cc"
|
||||
#include "text.cc"
|
||||
#include "tiles.cc"
|
||||
#include "tiltmeter.cc"
|
||||
#include "timectrl.cc"
|
||||
#include "timer.cc"
|
||||
#include "toggler.cc"
|
||||
#include "tpixel.cc"
|
||||
#include "trampoline.cc"
|
||||
#include "transmitter.cc"
|
||||
#include "treasure_chest.cc"
|
||||
#include "ui_android.cc"
|
||||
#include "ui.cc"
|
||||
#include "ui_dummy.cc"
|
||||
#include "ui_gtk3.cc"
|
||||
#include "ui_imgui.cc"
|
||||
#include "valueshift.cc"
|
||||
#include "var_getter.cc"
|
||||
#include "var_setter.cc"
|
||||
#include "velmeter.cc"
|
||||
#include "vendor.cc"
|
||||
#include "version.cc"
|
||||
#include "weight.cc"
|
||||
#include "wheel.cc"
|
||||
#include "widget_manager.cc"
|
||||
#include "wmotor.cc"
|
||||
#include "worker.cc"
|
||||
#include "world.cc"
|
||||
#include "wplug.cc"
|
||||
#include "ysplitter.cc"
|
||||
|
||||
#include "luascript/lua_cam.cc"
|
||||
#include "luascript/lua_entity.cc"
|
||||
#include "luascript/lua_game.cc"
|
||||
#include "luascript/lua_this.cc"
|
||||
#include "luascript/lua_world.cc"
|
||||
#include "luascript/lua.cc"
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue