Init squashed
This commit is contained in:
commit
4aac4b824f
95 changed files with 7582 additions and 0 deletions
119
meson.build
Normal file
119
meson.build
Normal file
|
@ -0,0 +1,119 @@
|
|||
project(
|
||||
'legs',
|
||||
'cpp',
|
||||
default_options: [
|
||||
'cpp_std=c++23',
|
||||
'b_ndebug=if-release',
|
||||
'warning_level=3',
|
||||
],
|
||||
meson_version: '>=1.1',
|
||||
)
|
||||
|
||||
cpp = meson.get_compiler('cpp')
|
||||
buildtype = get_option('buildtype')
|
||||
|
||||
compiler_args = [
|
||||
'-Wcast-align',
|
||||
'-Wconversion',
|
||||
'-Wdouble-promotion',
|
||||
'-Wduplicated-branches',
|
||||
'-Wduplicated-cond',
|
||||
'-Wformat=2',
|
||||
'-Wimplicit-fallthrough',
|
||||
'-Wlogical-op',
|
||||
'-Wmisleading-indentation',
|
||||
'-Wnon-virtual-dtor',
|
||||
'-Wnrvo',
|
||||
'-Wnull-dereference',
|
||||
'-Wold-style-cast',
|
||||
'-Woverloaded-virtual',
|
||||
'-Wshadow',
|
||||
'-Wsign-conversion',
|
||||
'-Wsuggest-override',
|
||||
'-Wunused',
|
||||
'-Wuseless-cast',
|
||||
|
||||
'-DGLM_FORCE_DEPTH_ZERO_TO_ONE',
|
||||
|
||||
'-m64',
|
||||
|
||||
'-DLINUX',
|
||||
'-D_LINUX',
|
||||
'-DPOSIX',
|
||||
|
||||
'-DJPH_OBJECT_STREAM',
|
||||
'-DCPP_RTTI_ENABLED',
|
||||
]
|
||||
|
||||
linker_args = [
|
||||
'-m64',
|
||||
]
|
||||
|
||||
if buildtype == 'debug'
|
||||
compiler_args += [
|
||||
'-DJPH_SHARED_LIBRARY',
|
||||
'-DJPH_PROFILE_ENABLED',
|
||||
'-DJPH_DEBUG_RENDERER',
|
||||
]
|
||||
endif
|
||||
|
||||
add_project_arguments(cpp.get_supported_arguments(compiler_args), language: 'cpp')
|
||||
add_project_link_arguments(cpp.get_supported_link_arguments(linker_args), language: 'cpp')
|
||||
|
||||
# https://github.com/mesonbuild/meson/issues/13601
|
||||
# jolt_opt = cmake.subproject_options()
|
||||
# jolt_dep = cmake.subproject('Jolt', options: jolt_opt)
|
||||
jolt_dep = cpp.find_library('Jolt', dirs: [meson.current_source_dir() + '/lib'])
|
||||
|
||||
# TODO: is there a way to disable warnings for these?
|
||||
imgui_src = files(
|
||||
|
||||
'include/imgui/backends/imgui_impl_sdl2.cpp',
|
||||
'include/imgui/backends/imgui_impl_vulkan.cpp',
|
||||
'include/imgui/imgui.cpp',
|
||||
'include/imgui/imgui_demo.cpp',
|
||||
'include/imgui/imgui_draw.cpp',
|
||||
'include/imgui/imgui_tables.cpp',
|
||||
'include/imgui/imgui_widgets.cpp',
|
||||
)
|
||||
|
||||
glsl_compiler = find_program('glslang', 'glslangValidator')
|
||||
glsl_args = [
|
||||
'--target-env', 'vulkan1.3',
|
||||
'--vn', '@BASENAME@',
|
||||
'--depfile', '@DEPFILE@',
|
||||
'@INPUT@',
|
||||
'-o', '@OUTPUT@',
|
||||
]
|
||||
glsl_generator = generator(
|
||||
glsl_compiler,
|
||||
output: ['@BASENAME@.h'],
|
||||
depfile: '@BASENAME@.h.d',
|
||||
arguments: glsl_args,
|
||||
)
|
||||
|
||||
legs_includes = include_directories(
|
||||
'include/VulkanMemoryAllocator/include',
|
||||
|
||||
'include/glm',
|
||||
|
||||
'include/JoltPhysics',
|
||||
|
||||
'include/imgui',
|
||||
'include/imgui/backends',
|
||||
|
||||
is_system: true,
|
||||
)
|
||||
|
||||
legs_version = vcs_tag(
|
||||
command: ['git', 'describe', '--always', '--dirty=+'],
|
||||
input: 'version.h.in',
|
||||
output: 'version.h',
|
||||
)
|
||||
|
||||
subdir('src')
|
||||
|
||||
examples = get_option('examples')
|
||||
if examples == true
|
||||
subdir('examples')
|
||||
endif
|
Loading…
Add table
Add a link
Reference in a new issue