TRX/meson.build

278 lines
7.3 KiB
Meson
Raw Normal View History

2021-11-14 23:42:18 +01:00
project('Tomb1Main', ['c', 'cpp'],
2021-11-12 21:26:26 +01:00
default_options: [
2021-11-14 23:42:18 +01:00
'c_std=c11',
'cpp_std=c++17',
2021-11-12 21:26:26 +01:00
'warning_level=2',
],
)
warning_level = 3
version = meson.project_version()
version_pretty = 'v' + version
git = find_program('git', required: false)
if git.found()
gitdesc = run_command(git, 'describe', '--abbrev=7', '--tags')
if gitdesc.returncode() == 0
version_pretty = gitdesc.stdout().strip()
endif
endif
2021-11-14 23:42:18 +01:00
c_compiler = meson.get_compiler('c')
cpp_compiler = meson.get_compiler('cpp')
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-28 18:56:17 +01:00
add_project_link_arguments([], language: 'cpp')
2021-11-12 21:26:26 +01:00
endif
build_opts = [
'-Wno-unused',
'-D_GNU_SOURCE',
'-DVERSION="T1M ' + version_pretty + '"'
]
2021-11-14 23:42:18 +01:00
c_opts = []
cpp_opts = []
2021-11-12 21:26:26 +01:00
add_project_arguments(build_opts + c_opts, language: 'c')
2021-11-14 23:42:18 +01:00
add_project_arguments(build_opts + cpp_opts, language: 'cpp')
2021-11-12 21:26:26 +01:00
2021-11-14 23:42:18 +01:00
dep_opengl32 = cpp_compiler.find_library('opengl32')
dep_dinput8 = c_compiler.find_library('dinput8')
dep_dxguid = c_compiler.find_library('dxguid')
dep_shlwapi = c_compiler.find_library('shlwapi')
2021-11-12 21:26:26 +01:00
dep_avcodec = c_compiler.find_library('avcodec.dll')
dep_avformat = c_compiler.find_library('avformat.dll')
dep_avutil = c_compiler.find_library('avutil.dll')
dep_swscale = c_compiler.find_library('swscale.dll')
2021-11-26 23:56:09 +01:00
dep_swresample = c_compiler.find_library('swresample.dll')
2021-11-20 22:40:57 +01:00
dep_sdl2 = c_compiler.find_library('SDL2')
2021-11-12 21:26:26 +01:00
# autogenerated files
version_res = []
python3 = find_program('python3', required: false)
if python3.found()
custom_target(
'fake_init',
output: ['fake_init'],
command: [python3, meson.source_root() + '/scripts/generate_init'],
build_by_default: true
)
version_rc = custom_target(
'fake_version',
output: ['version.rc'],
command: [python3, meson.source_root() + '/scripts/generate_version', '--version', version_pretty, '--output', '@OUTPUT0@'],
build_always: true
2021-11-12 21:26:26 +01:00
)
if host_machine.system() == 'windows'
windows = import('windows')
version_res = windows.compile_resources(version_rc)
endif
endif
sources = [
2021-11-16 11:49:49 +01:00
'src/3dsystem/3d_gen.c',
2021-12-01 03:30:52 +01:00
'src/3dsystem/matrix.c',
2021-11-12 21:26:26 +01:00
'src/3dsystem/phd_math.c',
2021-11-30 21:30:07 +01:00
'src/ati3dcif/Error.cpp',
'src/ati3dcif/Interop.cpp',
'src/ati3dcif/Renderer.cpp',
'src/ati3dcif/Texture.cpp',
'src/ati3dcif/TransDelay.cpp',
'src/ati3dcif/VertexStream.cpp',
2021-11-12 21:26:26 +01:00
'src/config.c',
2021-11-30 21:30:07 +01:00
'src/ddraw/Blitter.cpp',
'src/ddraw/DirectDraw.cpp',
'src/ddraw/DirectDrawSurface.cpp',
'src/ddraw/Interop.cpp',
'src/ddraw/Renderer.cpp',
2021-11-16 11:49:49 +01:00
'src/filesystem.c',
'src/game/ai/abortion.c',
'src/game/ai/alligator.c',
'src/game/ai/ape.c',
'src/game/ai/baldy.c',
'src/game/ai/bat.c',
'src/game/ai/bear.c',
2021-11-12 21:26:26 +01:00
'src/game/ai/centaur.c',
2021-11-16 11:49:49 +01:00
'src/game/ai/cowboy.c',
'src/game/ai/crocodile.c',
'src/game/ai/dino.c',
'src/game/ai/evil_lara.c',
2021-11-12 21:26:26 +01:00
'src/game/ai/larson.c',
'src/game/ai/lion.c',
2021-11-16 11:49:49 +01:00
'src/game/ai/mummy.c',
'src/game/ai/mutant.c',
'src/game/ai/natla.c',
'src/game/ai/pierre.c',
'src/game/ai/pod.c',
2021-11-12 21:26:26 +01:00
'src/game/ai/raptor.c',
'src/game/ai/rat.c',
2021-11-16 11:49:49 +01:00
'src/game/ai/skate_kid.c',
2021-11-12 21:26:26 +01:00
'src/game/ai/statue.c',
'src/game/ai/vole.c',
2021-11-16 11:49:49 +01:00
'src/game/ai/wolf.c',
'src/game/box.c',
'src/game/camera.c',
'src/game/cinema.c',
'src/game/clock.c',
2021-11-16 11:49:49 +01:00
'src/game/collide.c',
'src/game/control.c',
2021-12-01 03:16:30 +01:00
'src/game/control_pause.c',
'src/game/control_util.c',
2021-11-16 11:49:49 +01:00
'src/game/demo.c',
'src/game/draw.c',
'src/game/effects/blood.c',
'src/game/effects/body_part.c',
'src/game/effects/bubble.c',
'src/game/effects/chain_block.c',
'src/game/effects/dino_stomp.c',
'src/game/effects/earthquake.c',
'src/game/effects/explosion.c',
'src/game/effects/finish_level.c',
2021-11-12 21:26:26 +01:00
'src/game/effects/flicker.c',
2021-11-16 11:49:49 +01:00
'src/game/effects/flipmap.c',
'src/game/effects/flood.c',
2021-11-12 21:26:26 +01:00
'src/game/effects/lara_effects.c',
2021-11-16 11:49:49 +01:00
'src/game/effects/missile.c',
'src/game/effects/powerup.c',
2021-11-12 21:26:26 +01:00
'src/game/effects/raising_block.c',
2021-11-16 11:49:49 +01:00
'src/game/effects/ricochet.c',
2021-11-12 21:26:26 +01:00
'src/game/effects/sand.c',
2021-11-16 11:49:49 +01:00
'src/game/effects/splash.c',
2021-11-12 21:26:26 +01:00
'src/game/effects/stairs2slope.c',
2021-11-16 11:49:49 +01:00
'src/game/effects/turn_180.c',
'src/game/effects/twinkle.c',
'src/game/effects/waterfall.c',
2021-11-20 21:40:15 +01:00
'src/game/fmv.c',
2021-11-12 21:26:26 +01:00
'src/game/game.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',
2021-11-16 11:49:49 +01:00
'src/game/hair.c',
2021-11-18 13:06:27 +01:00
'src/game/input.c',
2021-11-16 11:49:49 +01:00
'src/game/inventry.c',
'src/game/invfunc.c',
'src/game/invvars.c',
'src/game/items.c',
'src/game/lara.c',
'src/game/lara1gun.c',
'src/game/lara2gun.c',
'src/game/larafire.c',
'src/game/laramisc.c',
'src/game/larasurf.c',
'src/game/laraswim.c',
2021-11-20 21:27:48 +01:00
'src/game/level.c',
2021-11-16 11:49:49 +01:00
'src/game/lot.c',
'src/game/music.c',
'src/game/objects/boat.c',
'src/game/objects/bridge.c',
'src/game/objects/cabin.c',
'src/game/objects/cog.c',
'src/game/objects/door.c',
'src/game/objects/gunshot.c',
'src/game/objects/keyhole.c',
'src/game/objects/misc.c',
'src/game/objects/pickup.c',
'src/game/objects/puzzle_hole.c',
'src/game/objects/savegame_crystal.c',
'src/game/objects/scion.c',
'src/game/objects/switch.c',
'src/game/objects/trapdoor.c',
'src/game/option.c',
2021-11-30 14:13:32 +01:00
'src/game/option_compass.c',
'src/game/option_control.c',
'src/game/option_graphics.c',
'src/game/option_passport.c',
'src/game/option_sound.c',
'src/game/output.c',
2021-11-16 11:49:49 +01:00
'src/game/overlay.c',
'src/game/people.c',
'src/game/picture.c',
'src/game/random.c',
2021-11-16 11:49:49 +01:00
'src/game/requester.c',
'src/game/savegame.c',
2021-11-19 00:12:38 +01:00
'src/game/screen.c',
2021-11-12 21:26:26 +01:00
'src/game/settings.c',
'src/game/setup.c',
'src/game/shell.c',
2021-11-16 11:49:49 +01:00
'src/game/sound.c',
'src/game/sphere.c',
'src/game/text.c',
'src/game/traps/damocles_sword.c',
2021-11-12 21:26:26 +01:00
'src/game/traps/dart.c',
'src/game/traps/dart_emitter.c',
2021-11-16 11:49:49 +01:00
'src/game/traps/falling_block.c',
2021-11-12 21:26:26 +01:00
'src/game/traps/falling_ceiling.c',
2021-11-16 11:49:49 +01:00
'src/game/traps/flame.c',
'src/game/traps/lava.c',
'src/game/traps/lightning_emitter.c',
'src/game/traps/midas_touch.c',
'src/game/traps/movable_block.c',
2021-11-12 21:26:26 +01:00
'src/game/traps/pendulum.c',
2021-11-16 11:49:49 +01:00
'src/game/traps/rolling_ball.c',
2021-11-12 21:26:26 +01:00
'src/game/traps/rolling_block.c',
2021-11-16 11:49:49 +01:00
'src/game/traps/spikes.c',
'src/game/traps/teeth_trap.c',
'src/game/traps/thors_hammer.c',
'src/game/viewport.c',
2021-11-16 11:49:49 +01:00
'src/global/vars.c',
'src/global/vars_platform.c',
2021-11-30 21:30:07 +01:00
'src/glrage/ContextImpl.cpp',
'src/glrage/GLRage.cpp',
'src/glrage/Interop.cpp',
'src/glrage_gl/Buffer.cpp',
'src/glrage_gl/Program.cpp',
'src/glrage_gl/Sampler.cpp',
'src/glrage_gl/Screenshot.cpp',
'src/glrage_gl/Shader.cpp',
'src/glrage_gl/Texture.cpp',
'src/glrage_gl/Utils.cpp',
'src/glrage_gl/VertexArray.cpp',
'src/glrage_gl/gl_core_3_3.c',
'src/glrage_gl/wgl_ext.c',
'src/glrage_util/ErrorUtils.cpp',
'src/glrage_util/Logger.cpp',
'src/glrage_util/StringUtils.cpp',
2021-11-12 21:26:26 +01:00
'src/init.c',
2021-11-16 11:49:49 +01:00
'src/json.c',
'src/log.c',
'src/memory.c',
'src/specific/s_ati.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:10:27 +01:00
'src/specific/s_misc.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-11-12 21:26:26 +01:00
version_res,
]
dependencies = [
dep_avcodec,
dep_avformat,
dep_avutil,
dep_dinput8,
dep_dxguid,
dep_sdl2,
dep_shlwapi,
dep_swscale,
2021-11-26 23:56:09 +01:00
dep_swresample,
2021-11-30 21:30:07 +01:00
dep_shlwapi,
dep_opengl32,
]
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,
2021-11-19 14:19:15 +01:00
gui_app: true,
2021-11-12 21:26:26 +01:00
)