cmake_minimum_required(VERSION 3.2)
project(cloud-storage)

addProjectIncludeDirectory()
setUpProject(library)

if (GALAXY_ENABLE_UNITY_BUILD)
	set_property(TARGET ${PROJECT_NAME} PROPERTY UNITY_BUILD ON)
endif(GALAXY_ENABLE_UNITY_BUILD)

# PUBLIC: Session is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC ${CONAN_LIBS_POCO_DATA})
# PUBLIC: Optional is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC ${CONAN_LIBS_POCO_FOUNDATION})
# PUBLIC: CloudSavesSynchronizer derives from QObject.
target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Core)

# PUBLIC: TracedError is both caught and thrown in the library.
target_link_libraries(${PROJECT_NAME} PUBLIC error-handling)
# PUBLIC: ProductId is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC fundamentals)
# PUBLIC: CommServiceInterface is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC service-message-interchange)
# PUBLIC: CloudSynchronization derives from Entity.
target_link_libraries(${PROJECT_NAME} PUBLIC sql-fundamentals)
# PUBLIC: OnlineStateInterface is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC web)
# PUBLIC: ProductAuthorization is used in both implementation and public API.
target_link_libraries(${PROJECT_NAME} PUBLIC website-data)

# PRIVATE: MiniManifestContents is used only in the implementation.
target_link_libraries(${PROJECT_NAME} PRIVATE offline-products)
# PRIVATE: processListings is used only in the implementation.
target_link_libraries(${PROJECT_NAME} PRIVATE operating-system)
