cmake_minimum_required(VERSION 3.15)
project(iso8601lib)

set(ISO8601LIB_EXPORT_FILENAME ${PROJECT_NAME}_export.h)
set(ISO8601LIB_PUBLIC_HEADERS
	${PROJECT_SOURCE_DIR}/iso8601.h
	${CMAKE_CURRENT_BINARY_DIR}/${ISO8601LIB_EXPORT_FILENAME}
)

add_library(${PROJECT_NAME} ${ISO8601LIB_PUBLIC_HEADERS} iso8601.c)

include(GenerateExportHeader)
generate_export_header(${PROJECT_NAME} EXPORT_MACRO_NAME ISO8601LIB_API)

target_include_directories(${PROJECT_NAME} PUBLIC
	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
	$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
	$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_compile_definitions(${PROJECT_NAME} PUBLIC ISO8601LIB_EXPORT)

set_target_properties(${PROJECT_NAME} PROPERTIES
	WINDOWS_EXPORT_ALL_SYMBOLS TRUE
	PUBLIC_HEADER "${ISO8601LIB_PUBLIC_HEADERS}"
)

include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME})
