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

if (bshell_interactive EQUAL 1)
	message(STATUS "Interactive support: Enabled")
	set(source_dirs ${source_dirs} line-ed)
else ()
	message(STATUS "Interactive support: Disabled")
endif ()

file(GLOB bshell_sources
	*.c
	*.h)

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

add_executable(bshell ${bshell_sources})

target_link_libraries(bshell
	bshell.core bshell.runtime
	FX::Runtime FX::Collections FX::Cmdline)

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

target_compile_definitions(bshell PUBLIC
	BSHELL_VERSION="${bshell_version}"
	BSHELL_ENABLE_FLOATING_POINT=${bshell_enable_floating_point}
	BSHELL_INTERACTIVE=${bshell_interactive}
	BSHELL_VERBOSE=${bshell_verbose})
