build config for integrated asset compiler
This commit is contained in:
		
							parent
							
								
									abb367dffc
								
							
						
					
					
						commit
						94f95157fe
					
				
							
								
								
									
										109
									
								
								meson.build
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								meson.build
									
									
									
									
									
								
							@ -35,6 +35,8 @@ if buildtype == 'debug' or buildtype == 'debugoptimized'
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Gather dependencies
 | 
			
		||||
common_incdirs = [include_directories(['contrib', 'src'])]
 | 
			
		||||
 | 
			
		||||
thread_dep = dependency('threads')
 | 
			
		||||
m_dep = compiler.find_library('m', required : false)
 | 
			
		||||
vk_dep = dependency('vulkan', required : false)
 | 
			
		||||
@ -45,7 +47,22 @@ if get_option('use_xlib')
 | 
			
		||||
  add_project_arguments(['-DRT_USE_XLIB'], language : 'c')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
incdir = include_directories(['contrib', 'src'])
 | 
			
		||||
runtime_incdirs = common_incdirs
 | 
			
		||||
runtime_linkargs = []
 | 
			
		||||
runtime_additional_sources = []
 | 
			
		||||
runtime_cargs = []
 | 
			
		||||
if get_option('build_asset_compiler')
 | 
			
		||||
  runtime_cargs += ['-DRT_BUILD_ASSET_COMPILER']
 | 
			
		||||
 | 
			
		||||
  # Shaderc for shaders
 | 
			
		||||
  shaderc_include = include_directories('contrib/shaderc/libshaderc/include')
 | 
			
		||||
  shaderc_libdir = 'NONE'
 | 
			
		||||
  if host_machine.system() == 'windows'
 | 
			
		||||
    shaderc_libdir = meson.project_source_root() / 'contrib/shaderc/build-win/libshaderc/Release'
 | 
			
		||||
  endif
 | 
			
		||||
  runtime_incdirs += shaderc_include
 | 
			
		||||
  runtime_linkargs += ['-L'+shaderc_libdir, '-lshaderc_combined']
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
runtime_lib = library('rt',
 | 
			
		||||
  # Project Sources
 | 
			
		||||
@ -91,7 +108,9 @@ runtime_lib = library('rt',
 | 
			
		||||
  'contrib/xxhash/xxhash.c',
 | 
			
		||||
  'contrib/lz4/lz4.c',
 | 
			
		||||
  dependencies : [thread_dep, m_dep, windowing_dep],
 | 
			
		||||
  include_directories : incdir,
 | 
			
		||||
  include_directories : runtime_incdirs,
 | 
			
		||||
  link_args : runtime_linkargs,
 | 
			
		||||
  c_args : runtime_cargs,
 | 
			
		||||
  c_pch : 'pch/rt_pch.h')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -120,7 +139,7 @@ if vk_dep.found()
 | 
			
		||||
    'contrib/volk/volk.h',
 | 
			
		||||
    'contrib/volk/volk.c',
 | 
			
		||||
    dependencies : [m_dep, vk_inc_dep, windowing_dep],
 | 
			
		||||
    include_directories : incdir,
 | 
			
		||||
    include_directories : common_incdirs,
 | 
			
		||||
    link_with : [runtime_lib],
 | 
			
		||||
    c_pch : 'pch/vk_pch.h',
 | 
			
		||||
    c_args : platform_defs)
 | 
			
		||||
@ -128,66 +147,60 @@ if vk_dep.found()
 | 
			
		||||
  static_renderer_lib = vk_renderer_lib
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
shaderc_include = include_directories('contrib/shaderc/libshaderc/include')
 | 
			
		||||
shaderc_libdir = 'NONE'
 | 
			
		||||
if host_machine.system() == 'windows'
 | 
			
		||||
  shaderc_libdir = meson.project_source_root() / 'contrib/shaderc/build-win/libshaderc/Release'
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Handle linking against both runtime and renderer if we build static libs
 | 
			
		||||
runtime_link_libs = []
 | 
			
		||||
engine_link_libs = []
 | 
			
		||||
if get_option('default_library') == 'static'
 | 
			
		||||
  runtime_link_libs = [runtime_lib, static_renderer_lib]
 | 
			
		||||
  engine_link_libs = [runtime_lib, static_renderer_lib]
 | 
			
		||||
else
 | 
			
		||||
  runtime_link_libs = [runtime_lib]
 | 
			
		||||
  engine_link_libs = [runtime_lib]
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Asset Compiler Tool
 | 
			
		||||
executable('assetc',
 | 
			
		||||
  'src/tools/assetc/assetmeta.h',
 | 
			
		||||
  'src/tools/assetc/assetsettings.h',
 | 
			
		||||
  'src/tools/assetc/dependency_tracking.h',
 | 
			
		||||
  'src/tools/assetc/description_parser.h',
 | 
			
		||||
  'src/tools/assetc/options.h',
 | 
			
		||||
  'src/tools/assetc/packages.h',
 | 
			
		||||
  'src/tools/assetc/processing.h',
 | 
			
		||||
  'src/tools/assetc/processing_flags.h',
 | 
			
		||||
  'src/tools/assetc/utils.h',
 | 
			
		||||
 | 
			
		||||
  'src/tools/assetc/assetc.c',
 | 
			
		||||
  'src/tools/assetc/assetmeta.c',
 | 
			
		||||
  'src/tools/assetc/assetsettings.c',
 | 
			
		||||
  'src/tools/assetc/dependency_tracking.c',
 | 
			
		||||
  'src/tools/assetc/description_parser.c',
 | 
			
		||||
  'src/tools/assetc/discovery.c',
 | 
			
		||||
  'src/tools/assetc/packages.c',
 | 
			
		||||
  'src/tools/assetc/pipeline_processor.c',
 | 
			
		||||
  'src/tools/assetc/processor.c',
 | 
			
		||||
  'src/tools/assetc/shader_processor.c',
 | 
			
		||||
  'src/tools/assetc/uidtable.c',
 | 
			
		||||
  'src/tools/assetc/utils.c',
 | 
			
		||||
 | 
			
		||||
  # Contrib sources
 | 
			
		||||
  'contrib/xxhash/xxhash.c',
 | 
			
		||||
  'contrib/lz4/lz4.c',
 | 
			
		||||
  include_directories : [incdir, shaderc_include],
 | 
			
		||||
  dependencies : [],
 | 
			
		||||
  link_with : runtime_link_libs,
 | 
			
		||||
  link_args : ['-L'+shaderc_libdir, '-lshaderc_combined'],
 | 
			
		||||
  win_subsystem : 'console')
 | 
			
		||||
#executable('assetc',
 | 
			
		||||
#  'src/tools/assetc/assetmeta.h',
 | 
			
		||||
#  'src/tools/assetc/assetsettings.h',
 | 
			
		||||
#  'src/tools/assetc/dependency_tracking.h',
 | 
			
		||||
#  'src/tools/assetc/description_parser.h',
 | 
			
		||||
#  'src/tools/assetc/options.h',
 | 
			
		||||
#  'src/tools/assetc/packages.h',
 | 
			
		||||
#  'src/tools/assetc/processing.h',
 | 
			
		||||
#  'src/tools/assetc/processing_flags.h',
 | 
			
		||||
#  'src/tools/assetc/utils.h',
 | 
			
		||||
#
 | 
			
		||||
#  'src/tools/assetc/assetc.c',
 | 
			
		||||
#  'src/tools/assetc/assetmeta.c',
 | 
			
		||||
#  'src/tools/assetc/assetsettings.c',
 | 
			
		||||
#  'src/tools/assetc/dependency_tracking.c',
 | 
			
		||||
#  'src/tools/assetc/description_parser.c',
 | 
			
		||||
#  'src/tools/assetc/discovery.c',
 | 
			
		||||
#  'src/tools/assetc/packages.c',
 | 
			
		||||
#  'src/tools/assetc/pipeline_processor.c',
 | 
			
		||||
#  'src/tools/assetc/processor.c',
 | 
			
		||||
#  'src/tools/assetc/shader_processor.c',
 | 
			
		||||
#  'src/tools/assetc/uidtable.c',
 | 
			
		||||
#  'src/tools/assetc/utils.c',
 | 
			
		||||
#
 | 
			
		||||
#  # Contrib sources
 | 
			
		||||
#  'contrib/xxhash/xxhash.c',
 | 
			
		||||
#  'contrib/lz4/lz4.c',
 | 
			
		||||
#  include_directories : [incdir, shaderc_include],
 | 
			
		||||
#  dependencies : [],
 | 
			
		||||
#  link_with : engine_link_libs,
 | 
			
		||||
#  link_args : ['-L'+shaderc_libdir, '-lshaderc_combined'],
 | 
			
		||||
#  win_subsystem : 'console')
 | 
			
		||||
 | 
			
		||||
# Game
 | 
			
		||||
executable('voyage',
 | 
			
		||||
  'src/game/voyage.c',
 | 
			
		||||
  include_directories : incdir,
 | 
			
		||||
  link_with : runtime_link_libs,
 | 
			
		||||
  include_directories : common_incdirs,
 | 
			
		||||
  link_with : engine_link_libs,
 | 
			
		||||
  win_subsystem : 'windows')
 | 
			
		||||
 | 
			
		||||
# Unit Tests
 | 
			
		||||
rttest_exe = executable('rttest',
 | 
			
		||||
  'src/tests/rttest.c',
 | 
			
		||||
  link_with : runtime_link_libs,
 | 
			
		||||
  include_directories : incdir,
 | 
			
		||||
  link_with : engine_link_libs,
 | 
			
		||||
  include_directories : common_incdirs,
 | 
			
		||||
  win_subsystem : 'console')
 | 
			
		||||
test('runtime test', rttest_exe)
 | 
			
		||||
 | 
			
		||||
@ -1,2 +1,3 @@
 | 
			
		||||
option('use_xlib', type : 'boolean', value : false, description : 'Use Xlib for window creation under linux')
 | 
			
		||||
option('error_report_debugbreak', type : 'boolean', value : true, description : 'Debugbreak in vyReportError')
 | 
			
		||||
option('error_report_debugbreak', type : 'boolean', value : true, description : 'Debugbreak in ReportError')
 | 
			
		||||
option('build_asset_compiler', type : 'boolean', value : true, description : 'Enables or disables the asset compiler inside runtime.')
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user