set(source_dirs
	ast compile parse parse/lex parse/syntax
	format runtime command)

file(GLOB sources
	*.c
	*.h)

foreach (d ${source_dirs})
	file(GLOB d_sources
		${d}/*.c
		${d}/*.h)
	set(sources ${sources} ${d_sources})
endforeach (d)

add_library(bshell.runtime SHARED ${sources})

target_link_libraries(bshell.runtime FX::Runtime FX::Collections FX::Io FX::Diagnostics)

if (bshell_interactive)
	target_link_libraries(bshell.runtime FX::Term)
endif ()

target_include_directories(bshell.runtime PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_definitions(bshell.runtime PUBLIC
	BSHELL_VERSION="${bshell_version}"
	BSHELL_ENABLE_FLOATING_POINT=${bshell_enable_floating_point}
	BSHELL_INTERACTIVE=${bshell_interactive}
	BSHELL_VERBOSE=${bshell_verbose})
