INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/")

INCLUDE("${PROJECT_SOURCE_DIR}/snowpack/plugins/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/snowpack/snowpackCore/CMakeLists.txt")

FIND_PACKAGE(MeteoIO)
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${METEOIO_INCLUDE_DIR})
SET(extra_libs ${extra_libs} ${METEOIO_LIBRARIES})

IF(ENABLE_LAPACK)
	FIND_PACKAGE(Lapack REQUIRED)
	LINK_DIRECTORIES(${Lapack_LIBRARIES})
	LINK_DIRECTORIES(${Blas_LIBRARIES})
	SET(extra_libs ${extra_libs} ${Lapack_LIBRARIES} ${Blas_LIBRARIES})
ENDIF(ENABLE_LAPACK)

SET(snowpacklib_sources
	DataClasses.cc
	SnowpackConfig.cc
	Meteo.cc
	Saltation.cc
	Laws_sn.cc
	Utils.cc
	StabilityAlgorithms.cc
	Stability.cc
	Hazard.cc
	SnowDrift.cc
	TechnicalSnow.cc
	${plugins_sources}
	${core_sources}
)

#set compiling targets
IF(BUILD_SHARED_LIBS)
	SET(SHAREDNAME ${PROJECT_NAME})
	ADD_LIBRARY(${SHAREDNAME} ${snowpacklib_sources})
	TARGET_LINK_LIBRARIES(${SHAREDNAME} ${extra_libs} ${METEOIO_LIBRARIES})
	SET_TARGET_PROPERTIES(${SHAREDNAME} PROPERTIES
		MACOSX_RPATH TRUE
		PREFIX "${LIBPREFIX}"
		LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/${LIB_DEST}"
		ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/${LIB_DEST}"
		RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/${LIB_DEST}"
		CLEAN_DIRECT_OUTPUT 1
		VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
		SOVERSION "${VERSION_MAJOR}"
	)

	INSTALL(TARGETS ${SHAREDNAME}
		RUNTIME DESTINATION "${LIB_DEST}" COMPONENT exe
		LIBRARY DESTINATION "${LIB_DEST}" COMPONENT exe
		ARCHIVE DESTINATION "${LIB_DEST}" COMPONENT exe
	)
ENDIF(BUILD_SHARED_LIBS)

IF(BUILD_STATIC_LIBS)
	SET(STATICNAME ${PROJECT_NAME}_STATIC)
	SET(STATICLIBNAME ${PROJECT_NAME})
	ADD_LIBRARY(${STATICNAME} STATIC ${snowpacklib_sources})
	TARGET_LINK_LIBRARIES(${STATICNAME} ${extra_libs} ${METEOIO_LIBRARIES})
	SET_TARGET_PROPERTIES(${STATICNAME} PROPERTIES
		MACOSX_RPATH TRUE
		PREFIX "${LIBPREFIX}"
		LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib"
		ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib"
		RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib"
		CLEAN_DIRECT_OUTPUT 1
		OUTPUT_NAME ${STATICLIBNAME}
	)
	INSTALL(TARGETS ${STATICNAME}
		RUNTIME DESTINATION bin COMPONENT libraries
		LIBRARY DESTINATION lib COMPONENT libraries
		ARCHIVE DESTINATION lib COMPONENT libraries
	)
ENDIF(BUILD_STATIC_LIBS)
