skunkworks-c/meson.build

80 lines
2.6 KiB
Meson
Raw Normal View History

2022-12-21 15:01:04 +01:00
project('skunkworks', 'c',
default_options: [
'buildtype=release',
'strip=true',
'debug=false'
]
)
2022-12-21 12:09:42 +01:00
cmake = import('cmake')
opt = cmake.subproject_options()
#opt.add_cmake_defines({'MSVC': true})
libz = cmake.subproject('zlib-1.2.13', options: opt).dependency('zlibstatic')
opt = cmake.subproject_options()
opt.add_cmake_defines({
'ZLIB_INCLUDE_DIRS': 'subprojects/zlib-1.2.13',
'PNG_BUILD_ZLIB': true,
'PNG_SHARED': false,
'PNG_STATIC': true,
'PNG_EXECUTABLES': false,
'PNG_TESTS': false,
'BUILD_SHARED_LIBS': false,
'SKIP_INSTALL_ALL': true
})
opt.append_compile_args('c', '-I../subprojects/zlib-1.2.13', '-Isubprojects/zlib-1.2.13/__CMake_build')
libpng = cmake.subproject('lpng1639', options: opt).dependency('png_static')
2022-12-21 15:01:04 +01:00
opt = cmake.subproject_options()
opt.add_cmake_defines({'GLFW_BUILD_DOCS': false})
2022-12-21 12:09:42 +01:00
2022-12-21 15:01:04 +01:00
if host_machine.system() == 'emscripten'
#libglfw = meson.get_compiler('c').find_library('glfw')
deps = [libz, libpng]
else
libglfw = cmake.subproject('glfw-3.3.8', options: opt).dependency('glfw')
libglew = subproject('glew-2.1.0').get_variable('libglew_dep')
deps = [libz, libpng, libglew, libglfw]
endif
2022-12-21 12:09:42 +01:00
skunk_sources = [
2022-12-22 05:52:59 +01:00
'src/color32.c',
2022-12-22 10:05:39 +01:00
'src/error.c',
'src/file.c',
'src/framebuffer.c',
2023-01-20 09:30:34 +01:00
'src/gamepad.c',
2022-12-31 12:14:57 +01:00
'src/gsa.c',
'src/gsa_input.c',
'src/gsa_map.c',
'src/gsa_text.c',
2022-12-22 05:52:59 +01:00
'src/image32.c',
2022-12-31 12:14:57 +01:00
'src/image8.c',
2023-01-14 05:48:58 +01:00
'src/scaler.c',
2022-12-31 12:14:57 +01:00
'src/shader.c',
2023-01-14 05:48:58 +01:00
'src/shaders.c',
2022-12-21 12:09:42 +01:00
'src/skunkworks.c',
2023-01-07 14:22:22 +01:00
'src/types.c',
2022-12-21 12:09:42 +01:00
'src/vec2i.c',
'src/window.c'
]
2022-12-31 12:14:57 +01:00
xxd = find_program('xxd')
embed_gfx = custom_target('embed-gfx', input: ['gfx.png'], output: ['embed_gfx.h'],
command: [xxd, '-i', '@INPUT@', '@OUTPUT@'])
2022-12-22 10:05:39 +01:00
add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language : 'c')
2022-12-31 12:14:57 +01:00
add_project_arguments('-Wall', language : 'c')
add_project_arguments('-Wextra', language : 'c')
add_project_arguments('-Werror', language : 'c')
2022-12-22 10:05:39 +01:00
lib = static_library('skunkworks', skunk_sources, include_directories: 'include', dependencies: deps)
2022-12-22 10:05:39 +01:00
2022-12-21 15:01:04 +01:00
if host_machine.system() == 'emscripten'
executable('skunktest', link_with: lib, include_directories: 'include', dependencies: deps, link_args: ['-lglfw', '-lGL', '-s', 'USE_GLFW=3'], name_suffix: 'html')
executable('gsa', 'examples/gsa_simple.c', embed_gfx, link_with: lib, include_directories: 'include', dependencies: deps, link_args: ['-lglfw', '-lGL', '-s', 'USE_GLFW=3', '-s', 'ALLOW_MEMORY_GROWTH', '-s', 'FULL_ES3'], name_suffix: 'html')
2022-12-21 15:01:04 +01:00
else
2022-12-31 12:14:57 +01:00
executable('skunktest', 'src/test.c', link_with: lib, include_directories: 'include', dependencies: deps)
executable('gsa', 'examples/gsa_simple.c', embed_gfx, link_with: lib, include_directories: 'include', dependencies: deps)
2022-12-21 15:01:04 +01:00
endif