message (STATUS "Preparing Hammer libraries.")

add_subdirectory(Tools)

message (STATUS "Preparing Hammer Base library.")

add_library (Base
             ./Core/Particle.cc
			 ./Core/SettingsHandler.cc
			 ./Core/AmplitudeBase.cc
			 ./Core/FormFactorBase.cc
			 ./Core/RateBase.cc
			 )

target_include_directories(Base PRIVATE ${PROJECT_SOURCE_DIR}/include
											 ${PROJECT_BINARY_DIR}/include)
set_target_properties(Base PROPERTIES POSITION_INDEPENDENT_CODE ${Hammer_PIC})
SET_TARGET_PROPERTIES(Base PROPERTIES VERSION ${Hammer_VERSION})
SET_TARGET_PROPERTIES(Base PROPERTIES SOVERSION ${Hammer_VERSION})
target_compile_options(Base PRIVATE ${Hammer_CompileOptions})
if(VERBOSE_DEBUG)
	target_compile_options(Base PRIVATE ${Hammer_VerboseOptions})
	if(VERY_VERBOSE_DEBUG)
		target_compile_options(Base PRIVATE ${Hammer_SanitizeOptions})
	endif()
endif()
target_link_libraries(Base PUBLIC Tools ThirdParty::Boost ThirdParty::BoostSystem ThirdParty::YamlCpp)

if(SANITIZE)
	add_sanitizers(Base)
endif()

install (TARGETS Base DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/Hammer)

add_subdirectory(Core)
add_subdirectory(Amplitudes)
add_subdirectory(FormFactors)
add_subdirectory(Rates)
