mirror of
https://github.com/LostArtefacts/TRX.git
synced 2025-05-01 06:08:00 +03:00
277 lines
7.3 KiB
Meson
277 lines
7.3 KiB
Meson
project('Tomb1Main', ['c', 'cpp'],
|
|
default_options: [
|
|
'c_std=c11',
|
|
'cpp_std=c++17',
|
|
'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
|
|
|
|
c_compiler = meson.get_compiler('c')
|
|
cpp_compiler = meson.get_compiler('cpp')
|
|
|
|
is_mingw = c_compiler.get_id() == 'gcc' and host_machine.system() == 'windows'
|
|
if is_mingw
|
|
add_project_link_arguments([], language: 'c')
|
|
add_project_link_arguments([], language: 'cpp')
|
|
endif
|
|
|
|
build_opts = [
|
|
'-Wno-unused',
|
|
'-D_GNU_SOURCE',
|
|
'-DVERSION="T1M ' + version_pretty + '"'
|
|
]
|
|
c_opts = []
|
|
cpp_opts = []
|
|
add_project_arguments(build_opts + c_opts, language: 'c')
|
|
add_project_arguments(build_opts + cpp_opts, language: 'cpp')
|
|
|
|
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')
|
|
|
|
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')
|
|
dep_swresample = c_compiler.find_library('swresample.dll')
|
|
|
|
dep_sdl2 = c_compiler.find_library('SDL2')
|
|
|
|
# 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
|
|
)
|
|
if host_machine.system() == 'windows'
|
|
windows = import('windows')
|
|
version_res = windows.compile_resources(version_rc)
|
|
endif
|
|
endif
|
|
|
|
sources = [
|
|
'src/3dsystem/3d_gen.c',
|
|
'src/3dsystem/matrix.c',
|
|
'src/3dsystem/phd_math.c',
|
|
'src/ati3dcif/Error.cpp',
|
|
'src/ati3dcif/Interop.cpp',
|
|
'src/ati3dcif/Renderer.cpp',
|
|
'src/ati3dcif/Texture.cpp',
|
|
'src/ati3dcif/TransDelay.cpp',
|
|
'src/ati3dcif/VertexStream.cpp',
|
|
'src/config.c',
|
|
'src/ddraw/Blitter.cpp',
|
|
'src/ddraw/DirectDraw.cpp',
|
|
'src/ddraw/DirectDrawSurface.cpp',
|
|
'src/ddraw/Interop.cpp',
|
|
'src/ddraw/Renderer.cpp',
|
|
'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',
|
|
'src/game/ai/centaur.c',
|
|
'src/game/ai/cowboy.c',
|
|
'src/game/ai/crocodile.c',
|
|
'src/game/ai/dino.c',
|
|
'src/game/ai/evil_lara.c',
|
|
'src/game/ai/larson.c',
|
|
'src/game/ai/lion.c',
|
|
'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',
|
|
'src/game/ai/raptor.c',
|
|
'src/game/ai/rat.c',
|
|
'src/game/ai/skate_kid.c',
|
|
'src/game/ai/statue.c',
|
|
'src/game/ai/vole.c',
|
|
'src/game/ai/wolf.c',
|
|
'src/game/box.c',
|
|
'src/game/camera.c',
|
|
'src/game/cinema.c',
|
|
'src/game/clock.c',
|
|
'src/game/collide.c',
|
|
'src/game/control.c',
|
|
'src/game/control_pause.c',
|
|
'src/game/control_util.c',
|
|
'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',
|
|
'src/game/effects/flicker.c',
|
|
'src/game/effects/flipmap.c',
|
|
'src/game/effects/flood.c',
|
|
'src/game/effects/lara_effects.c',
|
|
'src/game/effects/missile.c',
|
|
'src/game/effects/powerup.c',
|
|
'src/game/effects/raising_block.c',
|
|
'src/game/effects/ricochet.c',
|
|
'src/game/effects/sand.c',
|
|
'src/game/effects/splash.c',
|
|
'src/game/effects/stairs2slope.c',
|
|
'src/game/effects/turn_180.c',
|
|
'src/game/effects/twinkle.c',
|
|
'src/game/effects/waterfall.c',
|
|
'src/game/fmv.c',
|
|
'src/game/game.c',
|
|
'src/game/gamebuf.c',
|
|
'src/game/gameflow.c',
|
|
'src/game/hair.c',
|
|
'src/game/input.c',
|
|
'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',
|
|
'src/game/level.c',
|
|
'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',
|
|
'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',
|
|
'src/game/overlay.c',
|
|
'src/game/people.c',
|
|
'src/game/picture.c',
|
|
'src/game/random.c',
|
|
'src/game/requester.c',
|
|
'src/game/savegame.c',
|
|
'src/game/screen.c',
|
|
'src/game/settings.c',
|
|
'src/game/setup.c',
|
|
'src/game/shell.c',
|
|
'src/game/sound.c',
|
|
'src/game/sphere.c',
|
|
'src/game/text.c',
|
|
'src/game/traps/damocles_sword.c',
|
|
'src/game/traps/dart.c',
|
|
'src/game/traps/dart_emitter.c',
|
|
'src/game/traps/falling_block.c',
|
|
'src/game/traps/falling_ceiling.c',
|
|
'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',
|
|
'src/game/traps/pendulum.c',
|
|
'src/game/traps/rolling_ball.c',
|
|
'src/game/traps/rolling_block.c',
|
|
'src/game/traps/spikes.c',
|
|
'src/game/traps/teeth_trap.c',
|
|
'src/game/traps/thors_hammer.c',
|
|
'src/game/viewport.c',
|
|
'src/global/vars.c',
|
|
'src/global/vars_platform.c',
|
|
'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',
|
|
'src/init.c',
|
|
'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',
|
|
'src/specific/s_fmv.c',
|
|
'src/specific/s_input.c',
|
|
'src/specific/s_misc.c',
|
|
'src/specific/s_output.c',
|
|
'src/specific/s_picture.c',
|
|
'src/specific/s_shell.c',
|
|
version_res,
|
|
]
|
|
|
|
dependencies = [
|
|
dep_avcodec,
|
|
dep_avformat,
|
|
dep_avutil,
|
|
dep_dinput8,
|
|
dep_dxguid,
|
|
dep_sdl2,
|
|
dep_shlwapi,
|
|
dep_swscale,
|
|
dep_swresample,
|
|
dep_shlwapi,
|
|
dep_opengl32,
|
|
]
|
|
|
|
executable(
|
|
'Tomb1Main',
|
|
sources,
|
|
name_prefix: '',
|
|
include_directories: ['src/'],
|
|
dependencies: dependencies,
|
|
gui_app: true,
|
|
)
|