project('dreamcast-opengl', 'c', 'cpp', default_options: ['cpp_std=c++20']) cc = meson.get_compiler('c') kosinc = include_directories('/opt/toolchains/dc/kos/include') koskernelinc = include_directories('/opt/toolchains/dc/kos/kernel/arch/dreamcast/include') kosaddonsinc = include_directories('/opt/toolchains/dc/kos/addons/include') kosportsinc = include_directories('/opt/toolchains/dc/kos-ports/include') GL = cc.find_library('GL', required: true) math = cc.find_library('m', required: true) stb_image = cc.find_library('stb_image', required: true) subdir('romdisk') tinyobjloader = subproject('tinyobjloader') tinyobjloader_dep = tinyobjloader.get_variable('tinyobjloader_dep') # pcx = cc.find_library('pcx', required: true) # kosutils = cc.find_library('kosutils', required: true) deps = [ GL, math, stb_image, tinyobjloader_dep ] incdirs = [ kosinc, koskernelinc, kosaddonsinc, kosportsinc ] engine = static_library('engine', ['engine.cc'], dependencies: deps, include_directories: incdirs) engine_dep = declare_dependency(link_with: engine, include_directories: incdirs) deps += [engine_dep] executable('hello.elf', ['hello.cc'], dependencies: deps, include_directories: incdirs) executable('gl.elf', ['gl.cc'], dependencies: deps, include_directories: incdirs) executable('cube.elf', ['cube.cc', romdsk_o], dependencies: deps, include_directories: incdirs)