TRX/meson.build

290 lines
8.4 KiB
Meson
Raw Normal View History

project('Tomb1Main', ['c'],
2021-11-12 21:26:26 +01:00
default_options: [
2021-11-14 23:42:18 +01:00
'c_std=c11',
2021-11-12 21:26:26 +01:00
'warning_level=2',
],
)
warning_level = 3
2021-11-14 23:42:18 +01:00
c_compiler = meson.get_compiler('c')
2021-11-12 21:26:26 +01:00
2021-11-14 23:42:18 +01:00
is_mingw = c_compiler.get_id() == 'gcc' and host_machine.system() == 'windows'
2021-11-12 21:26:26 +01:00
if is_mingw
2021-11-21 23:19:24 +01:00
add_project_link_arguments([], language: 'c')
2021-11-12 21:26:26 +01:00
endif
build_opts = [
'-Wno-unused',
'-D_GNU_SOURCE',
]
2021-11-14 23:42:18 +01:00
c_opts = []
2021-11-12 21:26:26 +01:00
add_project_arguments(build_opts + c_opts, language: 'c')
2023-09-20 14:00:42 +02:00
if host_machine.system() == 'windows'
dep_opengl32 = c_compiler.find_library('opengl32')
else
dep_opengl32 = dependency('GL')
endif
2021-11-12 21:26:26 +01:00
2021-12-07 13:25:37 +01:00
dep_avcodec = dependency('libavcodec', static: true)
dep_avformat = dependency('libavformat', static: true)
dep_avutil = dependency('libavutil', static: true)
dep_swscale = dependency('libswscale', static: true)
dep_swresample = dependency('libswresample', static: true)
2021-11-20 22:40:57 +01:00
2021-12-07 12:54:44 +01:00
dep_sdl2 = dependency('SDL2', static: true)
2021-11-12 21:26:26 +01:00
# autogenerated files
2021-12-07 18:19:14 +01:00
resources = []
python3 = find_program('python3', required: true)
git = find_program('git', required: true)
2023-09-20 14:00:42 +02:00
version = custom_target('version',
output: ['version.txt'],
command: [python3, meson.source_root() + '/tools/generate_version', '-o', '@OUTPUT0@'],
build_by_default: true,
build_always_stale: true
)
init = custom_target(
'fake_init',
depends: [version],
input: [version[0]],
output: ['init.c'],
command: [python3, meson.source_root() + '/tools/generate_init', '--version-file', '@INPUT@', '-o', '@OUTPUT0@'],
build_by_default: true,
)
version_rc = custom_target(
'fake_version',
depends: [version],
input: [version[0]],
output: ['version.rc'],
command: [python3, meson.source_root() + '/tools/generate_rcfile', '--version-file', '@INPUT@', '-o', '@OUTPUT0@'],
build_by_default: true,
)
icon_rc = custom_target(
'fake_icon',
input: [version[0]],
output: ['icon.rc'],
command: [python3, meson.source_root() + '/tools/generate_rcfile', '--version-file', '@INPUT@', '-o', '@OUTPUT0@'],
)
if host_machine.system() == 'windows'
windows = import('windows')
resources = [
windows.compile_resources(version_rc),
windows.compile_resources(icon_rc),
]
link_args = ['-static']
else
link_args = []
2021-11-12 21:26:26 +01:00
endif
sources = [
init,
2021-11-12 21:26:26 +01:00
'src/config.c',
2021-11-16 11:49:49 +01:00
'src/filesystem.c',
'src/game/box.c',
'src/game/camera.c',
'src/game/clock.c',
2021-11-16 11:49:49 +01:00
'src/game/collide.c',
2022-05-12 22:23:22 +02:00
'src/game/creature.c',
2022-03-24 15:08:02 +01:00
'src/game/effect_routines/bubbles.c',
'src/game/effect_routines/chain_block.c',
2022-03-24 15:10:19 +01:00
'src/game/effect_routines/dino_stomp.c',
2022-03-24 15:13:47 +01:00
'src/game/effect_routines/earthquake.c',
2022-03-24 15:15:42 +01:00
'src/game/effect_routines/explosion.c',
2022-03-24 15:16:43 +01:00
'src/game/effect_routines/finish_level.c',
2022-03-24 15:17:56 +01:00
'src/game/effect_routines/flicker.c',
2022-03-24 15:19:15 +01:00
'src/game/effect_routines/flipmap.c',
2022-03-24 15:22:26 +01:00
'src/game/effect_routines/flood.c',
2022-03-24 15:27:51 +01:00
'src/game/effect_routines/lara_effects.c',
2022-03-24 15:34:36 +01:00
'src/game/effect_routines/powerup.c',
2022-03-24 15:35:55 +01:00
'src/game/effect_routines/raising_block.c',
2022-03-24 15:39:30 +01:00
'src/game/effect_routines/sand.c',
2022-03-24 15:41:32 +01:00
'src/game/effect_routines/stairs2slope.c',
2022-03-24 15:42:38 +01:00
'src/game/effect_routines/turn_180.c',
2022-05-05 11:56:29 +02:00
'src/game/effects.c',
2022-03-24 14:56:24 +01:00
'src/game/effects/blood.c',
2022-03-24 15:01:20 +01:00
'src/game/effects/exploding_death.c',
2022-03-24 15:33:00 +01:00
'src/game/effects/gun.c',
2022-03-24 15:25:49 +01:00
'src/game/effects/gunshot.c',
2021-11-20 21:40:15 +01:00
'src/game/fmv.c',
'src/game/game/game.c',
'src/game/game/game_cutscene.c',
'src/game/game/game_demo.c',
'src/game/game/game_draw.c',
'src/game/game/game_pause.c',
2021-11-16 11:49:49 +01:00
'src/game/gamebuf.c',
2021-11-12 21:26:26 +01:00
'src/game/gameflow.c',
'src/game/gun/gun.c',
'src/game/gun/gun_misc.c',
'src/game/gun/gun_pistols.c',
'src/game/gun/gun_rifle.c',
'src/game/inject.c',
2021-11-18 13:06:27 +01:00
'src/game/input.c',
'src/game/inventory/inventory.c',
2022-05-14 23:14:02 +02:00
'src/game/inventory/inventory_func.c',
'src/game/inventory/inventory_ring.c',
'src/game/inventory/inventory_vars.c',
2021-11-16 11:49:49 +01:00
'src/game/items.c',
'src/game/lara/lara.c',
2022-05-13 22:03:51 +02:00
'src/game/lara/lara_cheat.c',
'src/game/lara/lara_col.c',
'src/game/lara/lara_control.c',
'src/game/lara/lara_draw.c',
2022-05-13 23:48:10 +02:00
'src/game/lara/lara_hair.c',
'src/game/lara/lara_look.c',
'src/game/lara/lara_misc.c',
'src/game/lara/lara_state.c',
2021-11-20 21:27:48 +01:00
'src/game/level.c',
2022-05-05 12:41:03 +02:00
'src/game/los.c',
2021-11-16 11:49:49 +01:00
'src/game/lot.c',
'src/game/music.c',
2022-05-14 22:56:37 +02:00
'src/game/objects/common.c',
2022-05-12 22:16:36 +02:00
'src/game/objects/creatures/ape.c',
'src/game/objects/creatures/bacon_lara.c',
'src/game/objects/creatures/baldy.c',
'src/game/objects/creatures/bat.c',
'src/game/objects/creatures/bear.c',
'src/game/objects/creatures/centaur.c',
'src/game/objects/creatures/cowboy.c',
'src/game/objects/creatures/crocodile.c',
2022-05-13 23:38:26 +02:00
'src/game/objects/creatures/cutscene_player.c',
2022-05-12 22:16:36 +02:00
'src/game/objects/creatures/larson.c',
'src/game/objects/creatures/lion.c',
'src/game/objects/creatures/mummy.c',
'src/game/objects/creatures/mutant.c',
'src/game/objects/creatures/natla.c',
'src/game/objects/creatures/pierre.c',
'src/game/objects/creatures/pod.c',
'src/game/objects/creatures/raptor.c',
'src/game/objects/creatures/rat.c',
'src/game/objects/creatures/skate_kid.c',
'src/game/objects/creatures/statue.c',
'src/game/objects/creatures/torso.c',
'src/game/objects/creatures/trex.c',
'src/game/objects/creatures/wolf.c',
'src/game/objects/effects/blood.c',
'src/game/objects/effects/body_part.c',
'src/game/objects/effects/bubble.c',
'src/game/objects/effects/earthquake.c',
'src/game/objects/effects/explosion.c',
'src/game/objects/effects/gunshot.c',
'src/game/objects/effects/missile.c',
'src/game/objects/effects/ricochet.c',
'src/game/objects/effects/splash.c',
'src/game/objects/effects/twinkle.c',
'src/game/objects/effects/waterfall.c',
2022-05-14 22:56:37 +02:00
'src/game/objects/general/boat.c',
'src/game/objects/general/bridge.c',
'src/game/objects/general/cabin.c',
'src/game/objects/general/cog.c',
'src/game/objects/general/door.c',
'src/game/objects/general/keyhole.c',
'src/game/objects/general/misc.c',
'src/game/objects/general/pickup.c',
'src/game/objects/general/puzzle_hole.c',
'src/game/objects/general/save_crystal.c',
'src/game/objects/general/scion.c',
'src/game/objects/general/switch.c',
'src/game/objects/general/trapdoor.c',
'src/game/objects/traps/damocles_sword.c',
'src/game/objects/traps/dart.c',
'src/game/objects/traps/falling_block.c',
'src/game/objects/traps/falling_ceiling.c',
'src/game/objects/traps/flame.c',
'src/game/objects/traps/lava.c',
'src/game/objects/traps/lightning_emitter.c',
'src/game/objects/traps/midas_touch.c',
'src/game/objects/traps/movable_block.c',
'src/game/objects/traps/pendulum.c',
'src/game/objects/traps/rolling_ball.c',
'src/game/objects/traps/rolling_block.c',
'src/game/objects/traps/spikes.c',
'src/game/objects/traps/teeth_trap.c',
'src/game/objects/traps/thors_hammer.c',
'src/game/option/option.c',
'src/game/option/option_compass.c',
'src/game/option/option_control_pick.c',
'src/game/option/option_control.c',
'src/game/option/option_graphics.c',
'src/game/option/option_passport.c',
'src/game/option/option_sound.c',
'src/game/output.c',
2021-11-16 11:49:49 +01:00
'src/game/overlay.c',
'src/game/packer.c',
'src/game/picture.c',
'src/game/random.c',
2021-11-16 11:49:49 +01:00
'src/game/requester.c',
'src/game/room.c',
2022-05-14 18:32:14 +02:00
'src/game/room_draw.c',
'src/game/savegame/savegame.c',
'src/game/savegame/savegame_bson.c',
'src/game/savegame/savegame_legacy.c',
2021-11-19 00:12:38 +01:00
'src/game/screen.c',
2021-11-12 21:26:26 +01:00
'src/game/setup.c',
'src/game/shell.c',
2021-11-16 11:49:49 +01:00
'src/game/sound.c',
'src/game/stats.c',
2021-11-16 11:49:49 +01:00
'src/game/text.c',
'src/game/viewport.c',
'src/gfx/fbo/fbo_renderer.c',
2021-12-05 20:59:57 +01:00
'src/gfx/2d/2d_renderer.c',
2021-12-05 21:08:16 +01:00
'src/gfx/2d/2d_surface.c',
2021-12-06 16:24:20 +01:00
'src/gfx/3d/3d_renderer.c',
2021-12-06 15:32:43 +01:00
'src/gfx/3d/vertex_stream.c',
2021-12-05 18:35:11 +01:00
'src/gfx/blitter.c',
2021-12-05 19:51:05 +01:00
'src/gfx/context.c',
2021-12-05 18:14:55 +01:00
'src/gfx/gl/buffer.c',
'src/gfx/gl/gl_core_3_3.c',
'src/gfx/gl/program.c',
'src/gfx/gl/sampler.c',
'src/gfx/gl/texture.c',
'src/gfx/gl/utils.c',
'src/gfx/gl/vertex_array.c',
'src/gfx/screenshot.c',
2021-11-16 11:49:49 +01:00
'src/global/vars.c',
2022-02-05 01:34:26 +01:00
'src/json/bson_parse.c',
'src/json/bson_write.c',
2022-02-02 13:36:51 +01:00
'src/json/json_base.c',
'src/json/json_parse.c',
'src/json/json_write.c',
2021-11-16 11:49:49 +01:00
'src/log.c',
2022-05-05 11:59:28 +02:00
'src/math/math.c',
2022-05-14 11:01:30 +02:00
'src/math/math_misc.c',
2022-05-05 11:41:58 +02:00
'src/math/matrix.c',
2021-11-16 11:49:49 +01:00
'src/memory.c',
'src/specific/s_audio.c',
'src/specific/s_audio_sample.c',
'src/specific/s_audio_stream.c',
'src/specific/s_clock.c',
'src/specific/s_filesystem.c',
2021-11-20 21:40:15 +01:00
'src/specific/s_fmv.c',
'src/specific/s_input.c',
2021-12-01 14:19:01 +01:00
'src/specific/s_output.c',
'src/specific/s_picture.c',
'src/specific/s_shell.c',
2021-12-07 18:19:14 +01:00
resources,
2021-11-12 21:26:26 +01:00
]
dependencies = [
2023-09-20 14:00:42 +02:00
dep_avcodec,
dep_avformat,
dep_avutil,
dep_opengl32,
dep_sdl2,
dep_swresample,
dep_swscale,
]
2021-11-19 14:19:15 +01:00
executable(
2021-11-12 21:26:26 +01:00
'Tomb1Main',
sources,
name_prefix: '',
2021-12-01 01:23:24 +01:00
include_directories: ['src/'],
dependencies: dependencies,
2023-09-20 14:00:42 +02:00
link_args: link_args,
2021-11-19 14:19:15 +01:00
gui_app: true,
2021-11-12 21:26:26 +01:00
)