jadeite/game_payload/meson.build
2023-08-04 23:01:53 +03:00

62 lines
1.4 KiB
Meson

fs = import('fs')
include_dir = include_directories('include')
# Input files
sources = [
'src/main.c',
'src/ntdll.c',
'src/ace.c',
'src/pe.c',
'src/game.c',
'src/hi3.c',
'src/hsr.c',
'src/utils.c',
'src/msg.c',
'src/tx.c'
]
if fs.exists('src/core.c')
# Compile the real file first (dirty hack)
core_fake_exe = executable(
'core.o',
'src/core.c',
link_args: [ '-r' ], # Output an object file
include_directories: include_dir
)
# another dirty hack
copy_core = find_program('copy_core.sh')
core_target = [custom_target(
'copy_core',
output: 'core.o',
input: core_fake_exe.extract_all_objects(recursive: false),
command: [
copy_core,
'@INPUT0@',
'@OUTPUT0@', meson.current_source_dir() / 'blob/core.o'
]
)]
core_blob = []
else
message('Using precompiled core blob. Refer to the readme for more details')
core_target = []
core_blob = [ 'blob/core.o' ]
endif
conf_data = configuration_data()
conf_data.set('version', meson.project_version())
conf = configure_file(input: 'include/config.h.in', output: 'config.h', configuration: conf_data)
shared_library(
'game_payload',
sources,
core_target,
conf,
objects: core_blob,
include_directories: include_dir,
name_prefix: ''
)