Drop legacy build system for Linux

This commit is contained in:
ROllerozxa 2023-09-03 23:04:49 +02:00
commit 6e9d0cadf6
11 changed files with 9 additions and 563 deletions

8
.gitattributes vendored Normal file
View file

@ -0,0 +1,8 @@
# Exclude vendored libraries from GitHub language detection
src/lua linguist-vendored
src/luasocket linguist-vendored
src/SDL_image linguist-vendored
src/SDL_mixer linguist-vendored
src/SDL_ttf linguist-vendored
src/SDL-mobile linguist-vendored

View file

@ -118,9 +118,7 @@ On Linux Principia will attempt to load data from the following directories:
2. `../` (data directories are one directory up relative to the executable)
3. `/usr/share/principia/`
It should work to install the Principia executable to `/usr/bin/principia` and the data directories `data-pc` and `data-shared` to `/usr/share/principia/`.
The `build-linux` directory contains desktop files and an usable icon, which can be installed into `/usr/share/applications/` and `/usr/share/pixmaps` respectively. `principia-url-handler.desktop` is for handling principia:// protocol links and is confirmed to work on at least Firefox and Chromium.
When doing `ninja install`, the data folders will be installed to `share/principia`. For packaging, you would want to pass `-DCMAKE_INSTALL_PREFIX=/usr` to CMake which when installed will put data where it can get loaded from.
### Building for Android
These instructions assume a Linux system but can likely be easily adapted to build for Android on any platform.

View file

@ -1,17 +0,0 @@
Makefile.in
aclocal.m4
configure
autom4te.cache
depcomp
config.sh
test
compile
install-sh
missing
COPYING
INSTALL
principia
Makefile
config.log
config.status
configure~

View file

@ -1,349 +0,0 @@
bin_PROGRAMS = principia
GLOBAL_FLAGS := -DGL_GLEXT_PROTOTYPES \
-DTMS_BACKEND_LINUX \
-DTMS_BACKEND_PC \
-DTMS_FAST_MATH \
-DLUA_COMPAT_MODULE \
-DLUASOCKET_INET_PTON \
-D__STDC_FORMAT_MACROS=1 \
-DSDL_NO_COMPAT \
-DUNICODE \
-DUSE_GTK_SOURCE_VIEW
GLOBAL_FLAGS += -I../src/tms/backends/linux/ \
-I../src/src/ -I../src/ -I/usr/include/ \
${SDL2_CFLAGS} \
${SDL2_TTF_CFLAGS} \
${SDL2_GFX_CFLAGS} \
${SDL2_IMAGE_CFLAGS} \
${SDL2_MIXER_CFLAGS} \
-I../src/include/ \
-I../src/gtk-undo \
${GTK_CFLAGS} \
${GTK_SOURCEVIEW_CFLAGS} \
-I../src/lua/
principia_CFLAGS = ${GLOBAL_FLAGS} -std=gnu99
principia_CXXFLAGS = ${GLOBAL_FLAGS}
principia_LDADD = -lz -ldl -lGL -lGLEW -lpthread -lX11 -lXi -lrt ${GTK_SOURCEVIEW_LIBS} ${GTK_LIBS} -lcurl -ljpeg -lpng -lfreetype ${SDL2_LIBS} ${SDL2_TTF_LIBS} ${SDL2_GFX_LIBS} ${SDL2_IMAGE_LIBS} ${SDL2_MIXER_LIBS}
principia_LDFLAGS =
principia_SOURCES = \
../src/tms/core/atlas.c \
../src/tms/core/backend.c \
../src/tms/core/batch3d.c \
../src/tms/core/batch.c \
../src/tms/core/builtin-shaders.inc.c \
../src/tms/core/camera.c \
../src/tms/core/ddraw.c \
../src/tms/core/entity.c \
../src/tms/core/event.c \
../src/tms/core/framebuffer.c \
../src/tms/core/gbuffer.c \
../src/tms/core/graph.c \
../src/tms/core/hdrbuffer.c \
../src/tms/core/material.c \
../src/tms/core/mesh.c \
../src/tms/core/meshfactory.c \
../src/tms/core/model.c \
../src/tms/core/pipeline.c \
../src/tms/core/program.c \
../src/tms/core/scene.c \
../src/tms/core/screen.c \
../src/tms/core/shader.c \
../src/tms/core/surface.c \
../src/tms/core/texture.c \
../src/tms/core/tms.c \
../src/tms/core/varray.c \
../src/tms/core/wdg.c \
../src/tms/math/intersect.c \
../src/tms/math/math.c \
../src/tms/util/hash.c \
\
../src/tms/backends/linux/main.cc \
../src/tms/bindings/cpp/cpp.cc \
../src/tms/modules/3ds.c \
\
../src/lua/eris.c \
../src/lua/lapi.c \
../src/lua/lauxlib.c \
../src/lua/lbaselib.c \
../src/lua/lbitlib.c \
../src/lua/lcode.c \
../src/lua/lcorolib.c \
../src/lua/lctype.c \
../src/lua/ldblib.c \
../src/lua/ldebug.c \
../src/lua/ldo.c \
../src/lua/ldump.c \
../src/lua/lfunc.c \
../src/lua/lgc.c \
../src/lua/linit.c \
../src/lua/llex.c \
../src/lua/lmathlib.c \
../src/lua/lmem.c \
../src/lua/lobject.c \
../src/lua/lopcodes.c \
../src/lua/lparser.c \
../src/lua/lstate.c \
../src/lua/lstring.c \
../src/lua/lstrlib.c \
../src/lua/ltable.c \
../src/lua/ltablib.c \
../src/lua/ltm.c \
../src/lua/lundump.c \
../src/lua/lvm.c \
../src/lua/lzio.c \
\
../src/luasocket/auxiliar.c \
../src/luasocket/buffer.c \
../src/luasocket/except.c \
../src/luasocket/inet.c \
../src/luasocket/io.c \
../src/luasocket/luasocket.c \
../src/luasocket/mime.c \
../src/luasocket/options.c \
../src/luasocket/select.c \
../src/luasocket/tcp.c \
../src/luasocket/timeout.c \
../src/luasocket/udp.c \
../src/luasocket/usocket.c \
../src/luasocket/unix.c \
\
../src/src/fluid.cc \
../src/src/oilrig.cc \
../src/src/factory.cc \
../src/src/timectrl.cc \
../src/src/egraph.cc \
../src/src/ball.cc \
../src/src/beam.cc \
../src/src/breadboard.cc \
../src/src/button.cc \
../src/src/cable.cc \
../src/src/command.cc \
../src/src/composable.cc \
../src/src/cup.cc \
../src/src/cylinder.cc \
../src/src/debugdraw.cc \
../src/src/edevice.cc \
../src/src/entity.cc \
../src/src/game.cc \
../src/src/game-message.cc \
../src/src/game-graph.cc \
../src/src/game-edit.cc \
../src/src/game-gui.cc \
../src/src/adventure.cc \
../src/src/gear.cc \
../src/src/magnet.cc \
../src/src/rack.cc \
../src/src/rail.cc \
../src/src/generator.cc \
../src/src/panel.cc \
../src/src/game-panel-edit.cc \
../src/src/gui.cc \
../src/src/goal.cc \
../src/src/group.cc \
../src/src/i0o1gate.cc \
../src/src/i1o1gate.cc \
../src/src/fxemitter.cc \
../src/src/i2o1gate.cc \
../src/src/backpack.cc \
../src/src/progress.cc \
../src/src/pkgwarp.cc \
../src/src/main.cc \
../src/src/material.cc \
../src/src/object_finder.cc \
../src/src/sincos.cc \
../src/src/eatan2.cc \
../src/src/pointer.cc \
../src/src/model.cc \
../src/src/object_factory.cc \
../src/src/soundmanager.cc \
../src/src/robot.cc \
../src/src/checkpoint.cc \
../src/src/rope.cc \
../src/src/connection.cc \
../src/src/settings.cc \
../src/src/shelf.cc \
../src/src/solver.cc \
../src/src/solver_ingame.cc \
../src/src/stabilizer.cc \
../src/src/sticky.cc \
../src/src/tester.cc \
../src/src/trampoline.cc \
../src/src/wheel.cc \
../src/src/wmotor.cc \
../src/src/motor.cc \
../src/src/lmotor.cc \
../src/src/magconn.cc \
../src/src/switch.cc \
../src/src/ledbuffer.cc \
../src/src/spritebuffer.cc \
../src/src/fluidbuffer.cc \
../src/src/linebuffer.cc \
../src/src/seesaw.cc \
../src/src/pivot.cc \
../src/src/gyroscope.cc \
../src/src/tiltmeter.cc \
../src/src/rocket.cc \
../src/src/ragdoll.cc \
../src/src/pkgman.cc \
../src/src/menu_shared.cc \
../src/src/menu-base.cc \
../src/src/menu_pkg.cc \
../src/src/menu_main.cc \
../src/src/menu_create.cc \
../src/src/menu-play.cc \
../src/src/simplebg.cc \
../src/src/savepng.c \
../src/src/world.cc \
../src/src/terrain.cc \
../src/src/chunk.cc \
../src/src/chunk_window.cc \
../src/src/chunk_preloader.cc \
../src/src/gentype.cc \
../src/src/noise.cc \
../src/src/rand.c \
../src/src/crc.cc \
../src/src/worker.cc \
../src/src/pipeline.cc \
../src/src/splank.cc \
../src/src/clip.cc \
../src/src/gearbox.cc \
../src/src/game-gearbox-edit.cc \
../src/src/ctrlmini.cc \
../src/src/ctrlservo.cc \
../src/src/battery.cc \
../src/src/ctrlfplus.cc \
../src/src/damper.cc \
../src/src/gameman.cc \
../src/src/ctrlpass.cc \
../src/src/box.cc \
../src/src/basepixel.cc \
../src/src/tpixel.cc \
../src/src/pixel.cc \
../src/src/ui.cc \
../src/src/rubberband.cc \
../src/src/loading_screen.cc \
../src/src/corner.cc \
../src/src/scanner.cc \
../src/src/proximitysensor.cc \
../src/src/ysplitter.cc \
../src/src/objectfield.cc \
../src/src/dragfield.cc \
../src/src/emitter.cc \
../src/src/explosive.cc \
../src/src/absorber.cc \
../src/src/conveyor.cc \
../src/src/resistor.cc \
../src/src/angulardamper.cc \
../src/src/impact_sensor.cc \
../src/src/gravityman.cc \
../src/src/speaker.cc \
../src/src/jumper.cc \
../src/src/spikes.cc \
../src/src/screenshot_marker.cc \
../src/src/receiver.cc \
../src/src/transmitter.cc \
../src/src/fan.cc \
../src/src/timer.cc \
../src/src/mini_transmitter.cc \
../src/src/robot_base.cc \
../src/src/spikebot.cc \
../src/src/companion.cc \
../src/src/bomber.cc \
../src/src/robot_parts.cc \
../src/src/lobber.cc \
../src/src/minibot.cc \
../src/src/angularvelmeter.cc \
../src/src/display.cc \
../src/src/velmeter.cc \
../src/src/weight.cc \
../src/src/prompt.cc \
../src/src/i2o0gate.cc \
../src/src/escript.cc \
../src/src/item.cc \
../src/src/crane.cc \
../src/src/robotman.cc \
../src/src/scup.cc \
../src/src/faction.cc \
../src/src/mood.cc \
../src/src/repair_station.cc \
../src/src/anchor.cc \
../src/src/ladder.cc \
../src/src/plant.cc \
../src/src/resource.cc \
../src/src/vendor.cc \
../src/src/creature.cc \
../src/src/animal.cc \
../src/src/soundman.cc \
../src/src/polygon.cc \
../src/src/textbuffer.cc \
../src/src/grid.cc \
../src/src/wplug.cc \
../src/src/cursorfield.cc \
../src/src/i1o0gate.cc \
../src/src/iomiscgate.cc \
../src/src/widget_manager.cc \
../src/src/font.cc \
../src/src/text.cc \
../src/src/pscreen.cc \
../src/src/misc.cc \
../src/src/levelman.cc \
../src/src/tiles.cc \
../src/src/activator.cc \
../src/src/treasure_chest.cc \
../src/src/decorations.cc \
../src/src/SDL2_rotozoom.c \
\
../src/src/Box2D/Particle/b2Particle.cc \
../src/src/Box2D/Particle/b2ParticleGroup.cc \
../src/src/Box2D/Particle/b2ParticleSystem.cc \
../src/src/Box2D/Particle/b2VoronoiDiagram.cc \
../src/src/Box2D/Dynamics/b2Body.cc \
../src/src/Box2D/Dynamics/b2ContactManager.cc \
../src/src/Box2D/Dynamics/b2Fixture.cc \
../src/src/Box2D/Dynamics/b2Island.cc \
../src/src/Box2D/Dynamics/b2WorldCallbacks.cc \
../src/src/Box2D/Dynamics/b2World.cc \
../src/src/Box2D/Collision/b2BroadPhase.cc \
../src/src/Box2D/Collision/b2CollideCircle.cc \
../src/src/Box2D/Collision/b2CollideEdge.cc \
../src/src/Box2D/Collision/b2CollidePolygon.cc \
../src/src/Box2D/Collision/b2Collision.cc \
../src/src/Box2D/Collision/b2Distance.cc \
../src/src/Box2D/Collision/b2DynamicTree.cc \
../src/src/Box2D/Collision/b2TimeOfImpact.cc \
../src/src/Box2D/Collision/Shapes/b2ChainShape.cc \
../src/src/Box2D/Collision/Shapes/b2CircleShape.cc \
../src/src/Box2D/Collision/Shapes/b2EdgeShape.cc \
../src/src/Box2D/Collision/Shapes/b2PolygonShape.cc \
../src/src/Box2D/Common/b2BlockAllocator.cc \
../src/src/Box2D/Common/b2Draw.cc \
../src/src/Box2D/Common/b2Math.cc \
../src/src/Box2D/Common/b2Settings.cc \
../src/src/Box2D/Common/b2StackAllocator.cc \
../src/src/Box2D/Common/b2Timer.cc \
../src/src/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2CircleContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2Contact.cc \
../src/src/Box2D/Dynamics/Contacts/b2ContactSolver.cc \
../src/src/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cc \
../src/src/Box2D/Dynamics/Contacts/b2PolygonContact.cc \
../src/src/Box2D/Dynamics/Joints/b2DistanceJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2FrictionJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2GearJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2Joint.cc \
../src/src/Box2D/Dynamics/Joints/b2MotorJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2MouseJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2PrismaticJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2PulleyJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2RevoluteJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2PivotJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2RopeJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2WeldJoint.cc \
../src/src/Box2D/Dynamics/Joints/b2WheelJoint.cc

View file

@ -1,3 +0,0 @@
aclocal &&
autoconf &&
automake --add-missing --foreign

View file

@ -1,18 +0,0 @@
AC_PREREQ(2.59)
AC_INIT([principia], 1, [sdac@bithack.se])
AM_INIT_AUTOMAKE([subdir-objects foreign])
AM_SILENT_RULES([yes])
AC_PROG_CC
AC_PROG_CXX
PKG_CHECK_MODULES(GTK, gtk+-3.0 gdk-3.0)
PKG_CHECK_MODULES(GTK_SOURCEVIEW, gtksourceview-4)
PKG_CHECK_MODULES(SDL2, sdl2 >= 2.0.0)
PKG_CHECK_MODULES(SDL2_TTF, SDL2_ttf >= 2.0.0)
PKG_CHECK_MODULES(SDL2_GFX, SDL2_gfx >= 1.0.0)
PKG_CHECK_MODULES(SDL2_IMAGE, SDL2_image >= 2.0.0)
PKG_CHECK_MODULES(SDL2_MIXER, SDL2_mixer >= 2.0.0)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View file

@ -1,157 +0,0 @@
#!/bin/bash
user_home="$HOME"
makecmd="make"
CC=gcc
CXX=g++
debug="0"
nodebug="0"
release="0"
run="1"
cores="6"
do_test="0"
static_analysis="0"
CONFIG_PATH=`pwd`/config.sh
[[ -f "$CONFIG_PATH" ]] && source "$CONFIG_PATH"
DEBUG_SHARED="-O0 -ggdb -ffast-math -Werror=return-type -DDEBUG=1 $EXTRA_DEBUGFLAGS_SHARED"
DEBUGFLAGS_CC="$DEBUG_SHARED $EXTRA_DEBUGFLAGS $EXTRA_DEBUGFLAGS_CC"
DEBUGFLAGS_CXX="$DEBUG_SHARED $EXTRA_DEBUGFLAGS $EXTRA_DEBUGFLAGS_CXX"
DEBUGFLAGS_LD="-rdynamic $EXTRA_DEBUGFLAGS_LD"
RELEASE_SHARED="-ffast-math -DNDEBUG=1 -s -fomit-frame-pointer -fvisibility=hidden -fdata-sections -ffunction-sections"
RELEASEFLAGS_CC="$RELEASE_SHARED -O1 $EXTRA_RELEASEFLAGS_CC"
RELEASEFLAGS_CXX="$RELEASE_SHARED -O2 -fvisibility-inlines-hidden -fno-rtti $EXTRA_RELEASEFLAGS_CXX"
RELEASEFLAGS_LD="-Wl,-O,-s,--gc-sections $EXTRA_RELEASEFLAGS_LD"
if [ "$CC" = "gcc" ]; then
DEBUGFLAGS_CC="$DEBUGFLAGS_CC -rdynamic"
DEBUGFLAGS_CXX="$DEBUGFLAGS_CXX -rdynamic"
RELEASEFLAGS_CC="$RELEASEFLAGS_CC -s"
RELEASEFLAGS_CXX="$RELEASEFLAGS_CC -s"
else
RELEASEFLAGS_LD="$RELEASEFLAGS_LD -s"
fi
while test $# -gt 0; do
case "$1" in
--clean)
echo "Cleaning..."
$makecmd clean
shift
;;
-cs)
echo "Cleaning and compiling"
$makecmd clean
run="0"
shift
;;
-csa)
echo "Cleaning, then performing static analysis"
$makecmd clean
run="0"
static_analysis="1"
shift
;;
-sa)
echo "Performing static analysis"
run="0"
static_analysis="1"
shift
;;
-s|--silent)
echo "only compiling"
run="0"
shift
;;
--without-gdb)
debug="0"
shift
;;
-r|--release)
release="1"
shift
;;
-v|--valgrind)
debug="2"
shift
;;
--leak)
debug="4"
shift
;;
-c|--cachegrind)
debug="3"
shift
;;
-t)
do_test="1"
shift
;;
--single)
cores="1"
shift
;;
-nd)
nodebug="1"
shift
;;
*)
echo "undefined option: $1"
shift
;;
esac
done
if [ "$release" -eq "1" ]; then
CFLAGS="$RELEASEFLAGS_CC"
CXXFLAGS="$RELEASEFLAGS_CXX"
CPPFLAGS="$RELEASEFLAGS_CXX"
LDFLAGS="$RELEASEFLAGS_LD"
else
CFLAGS="$DEBUGFLAGS_CC"
LDFLAGS="$DEBUGFLAGS_LD"
CXXFLAGS="$DEBUGFLAGS_CXX"
CPPFLAGS="$DEBUGFLAGS_CXX"
fi
if [ "$do_test" -eq "1" ]; then
echo "Running tests..."
INCLUDEMAN=" -I/usr/include/ -I/usr/include/SDL2/ -I../src/tms/backends/linux/ -I../src/src/ -I../src/ -I../src/include/ -I../src/gtk-undo -DGLEW_STATIC "
$CC $INCLUDEMAN ../src/src/tests/main.cc ../src/src/rand.c -o test && ./test
exit
fi
echo "Release: $release"
echo "Run: $run"
if [ "$static_analysis" -eq "1" ]; then
CC="$CC" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" scan-build $makecmd -j "$cores"
exit
fi
$makecmd -j "$cores" CC="$CC" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" &&
if [ "$run" -eq "1" ]; then
if [ "$nodebug" -eq "1" ]; then
exec 2>/dev/null
fi
if [ "$debug" -eq "3" ]; then # -c
rm callgrind.* &> /dev/null
valgrind --tool=callgrind -v --dump-every-bb=10000000 ./principia
elif [ "$debug" -eq "2" ]; then # -v
valgrind --suppressions=./valgrind.supp --tool=memcheck --leak-check=no --show-reachable=yes --num-callers=20 --track-fds=yes --track-origins=yes ./principia
#valgrind --gen-suppressions=all --leak-check=no --show-possibly-lost=no --leak-resolution=low --smc-check=none --track-origins=yes ./principia
elif [ "$debug" -eq "4" ]; then # --leak
valgrind --suppressions=./valgrind.supp --tool=memcheck --leak-check=full --show-possibly-lost=yes --track-origins=yes ./principia
elif [ "$debug" -eq "1" ]; then
gdb -ex run -ex quit ./principia
else
./principia
fi
fi

View file

@ -1,7 +0,0 @@
[Desktop Entry]
Name=Principia (principia:// Protocol)
Exec=principia %u
Type=Application
Terminal=false
NoDisplay=true
MimeType=x-scheme-handler/principia;

View file

@ -1,9 +0,0 @@
[Desktop Entry]
Name=Principia
GenericName=Physics-based sandbox building game
Exec=principia
Type=Application
StartupNotify=true
Icon=principia
StartupWMClass=principia
Categories=Game;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB