cmake_minimum_required(VERSION 3.21)

project(aswm)

set(CMAKE_C_STANDARD 23)

find_package(X11 REQUIRED)

set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -pg")

include(FetchContent)

FetchContent_Declare(
	zlog
	GIT_REPOSITORY https://github.com/HardySimpson/zlog.git
	GIT_TAG 3715879775f725260aeda14f94887bbc7a007e29
)

FetchContent_Declare(
	argparse
	GIT_REPOSITORY https://github.com/cofyc/argparse.git
	GIT_TAG 5559200a91a334e15391e8285571145f6b6cc002
)

FetchContent_MakeAvailable(zlog argparse)

add_library(libaswm
	src/aswm/aswm.c
	src/aswm/mapper/mapper.c
	src/aswm/event_handlers/create.c
	src/aswm/event_handlers/configure.c
	src/aswm/event_handlers/reparent.c
	src/aswm/event_handlers/destroy.c
	src/aswm/event_handlers/map.c
	src/aswm/event_handlers/unmap.c
	src/aswm/event_handlers/property.c
	src/aswm/event_handlers/message.c
	src/aswm/log/log.c
)
target_include_directories(libaswm PUBLIC ${X11_INCLUDE_DIR} src
	${zlog_SOURCE_DIR}/src)
target_link_libraries(libaswm ${X11_LIBRARIES} zlog)

add_executable(aswm src/aswm/main.c ${argparse_SOURCE_DIR}/argparse.c)
target_include_directories(aswm PUBLIC ${argparse_SOURCE_DIR})
target_link_libraries(aswm libaswm)

add_subdirectory(test)

install(TARGETS aswm)
