SET(HEADERS_LIST
	forwarding.hpp
	series.hpp
	power_series.hpp
	poisson_series.hpp
	settings.hpp
	exceptions.hpp
	term.hpp
	thread_barrier.hpp
	polynomial.hpp
	kronecker_monomial.hpp
	hash_set.hpp
	is_cf.hpp
	is_key.hpp
	debug_access.hpp
	real_trigonometric_kronecker_monomial.hpp
	thread_management.hpp
	kronecker_array.hpp
	static_vector.hpp
	real.hpp
	piranha.hpp
	symbol_set.hpp
	runtime_info.hpp
	series_multiplier.hpp
	array_key.hpp
	symbol.hpp
	safe_cast.hpp
	t_substitutable_series.hpp
	print_coefficient.hpp
	type_traits.hpp
	mp_integer.hpp
	mp_rational.hpp
	math.hpp
	init.hpp
	print_tex_coefficient.hpp
	cache_aligning_allocator.hpp
	trigonometric_series.hpp
	monomial.hpp
	small_vector.hpp
	memory.hpp
	dynamic_aligning_allocator.hpp
	thread_pool.hpp
	tuning.hpp
	convert_to.hpp
	key_is_multipliable.hpp
	divisor.hpp
	key_is_convertible.hpp
	pow.hpp
	binomial.hpp
	divisor_series.hpp
	substitutable_series.hpp
	ipow_substitutable_series.hpp
	invert.hpp
	base_series_multiplier.hpp
	rational_function.hpp
	lambdify.hpp
	s11n.hpp
)

SET(DETAIL_HEADERS_LIST
	detail/atomic_flag_array.hpp
	detail/atomic_lock_guard.hpp
	detail/series_multiplier_fwd.hpp
	detail/gmp.hpp
	detail/mpfr.hpp
	detail/config_clang.hpp
	detail/sfinae_types.hpp
	detail/real_fwd.hpp
	detail/km_commons.hpp
	detail/mp_rational_fwd.hpp
	detail/poisson_series_fwd.hpp
	detail/series_fwd.hpp
	detail/polynomial_fwd.hpp
	detail/config_gcc.hpp
	detail/symbol_set_fwd.hpp
	detail/vector_hasher.hpp
	detail/prepare_for_print.hpp
	detail/small_vector_fwd.hpp
	detail/is_digit.hpp
	detail/config_intel.hpp
	detail/type_in_tuple.hpp
	detail/vector_merge_args.hpp
	detail/divisor_series_fwd.hpp
	detail/cf_mult_impl.hpp
	detail/safe_integral_adder.hpp
	detail/parallel_vector_transform.hpp
	detail/ulshift.hpp
	detail/demangle.hpp
	detail/init_data.hpp
)

# NOTE: this dummy cpp file is here with the sole purpose of getting the headers
# inside the project files generated by CMake.
add_library(piranha_dummy STATIC piranha_dummy.cpp ${HEADERS_LIST} ${DETAIL_HEADERS_LIST})

if(PIRANHA_INSTALL_HEADERS)
	install(FILES ${HEADERS_LIST} DESTINATION include/piranha)
	install(FILES ${DETAIL_HEADERS_LIST} DESTINATION include/piranha/detail)
	# Install separately the config.hpp as it gets generated automatically and we do not want
	# it included with the others.
	install(FILES config.hpp DESTINATION include/piranha)
endif()
