Using PUBLIC FILE_SET HEADERS with dependent targets

You may try it like this snippet:

# ...
# Write spglib_export.h to the current binary directory
include(GenerateExportHeader)
generate_export_header(Spglib_symspg
	EXPORT_FILE_NAME spglib_export.h
	EXPORT_MACRO_NAME API_SPGLIB
)
configure_file(spglib.h spglib.h COPYONLY)

target_sources(Spglib_symspg
	PUBLIC
		FILE_SET HEADERS
		BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
		FILES
			${CMAKE_CURRENT_BINARY_DIR}/spglib_export.h
			${CMAKE_CURRENT_BINARY_DIR}/spglib.h
)
target_include_directories(Spglib_symspg
		PRIVATE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
		PUBLIC
		"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
		"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
# ...