list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}) #============================================ # hedk-support #============================================ # Make a choice for HTTP client used by hedk-support: # curl, java, winhttp, objc # we chose defaults according to platform, adjust if needed if (WIN32) set(HTTP_CLIENT winhttp) elseif(APPLE) set(HTTP_CLIENT obj) else() set(HTTP_CLIENT curl) endif() #If curl chosen, find or build library if (HTTP_CLIENT STREQUAL curl) FIND_PACKAGE(CURL) if(CURL_FOUND) MESSAGE("Found CURL at " ${CURL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) SET(requiredlibs ${requiredlibs} ${CURL_LIBRARIES} ) else() include(ExternalProjectCurl) endif() endif() add_subdirectory(support) #============================================ # hedk-bridgediscovery #============================================ add_subdirectory(bridgediscovery) #============================================ # edtls #============================================ ExternalProject_Add( edtls_ext PATCH_COMMAND "" UPDATE_COMMAND "" DOWNLOAD_COMMAND "" SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/edtls" CMAKE_CACHE_ARGS -DBUILD_DTLS_LIB:BOOL=OFF -DBUILD_TEST:BOOL=OFF -DBUILD_CLIENT:BOOL=ON -DBUILD_SERVER:BOOL=OFF CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} TEST_COMMAND "" ) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_BINARY_DIR}/edtls") find_and_copy_libs(edtls_ext "edtls_client;client_wrapper" "${CMAKE_BINARY_DIR}/bin") add_dependencies(edtls_ext mbedtls_ext) #============================================ # huestream #============================================ include_directories( . ) set(huestream_files huestream/HueStream.cpp huestream/HueStream.h huestream/common/data/Area.cpp huestream/common/data/Area.h huestream/common/data/Bridge.cpp huestream/common/data/Bridge.h huestream/common/data/Color.cpp huestream/common/data/Color.h huestream/common/data/Group.cpp huestream/common/data/Group.h huestream/common/data/Light.cpp huestream/common/data/Light.h huestream/common/data/Location.cpp huestream/common/data/Location.h huestream/common/http/Http.cpp huestream/common/http/Http.h huestream/common/http/HttpRequestInfo.cpp huestream/common/http/HttpRequestInfo.h huestream/common/http/IHttp.h huestream/common/language/DummyTranslator.cpp huestream/common/language/DummyTranslator.h huestream/common/language/IMessageTranslator.h huestream/common/serialize/ObjectBuilder.cpp huestream/common/serialize/ObjectBuilder.h huestream/common/serialize/Serializable.cpp huestream/common/serialize/Serializable.h huestream/common/serialize/SerializerHelper.h huestream/common/time/ITimeManager.h huestream/common/time/TimeManager.cpp huestream/common/time/TimeManager.h huestream/common/util/HueMath.cpp huestream/common/util/HueMath.h huestream/common/util/Random.cpp huestream/common/util/Random.h huestream/config/DefaultObjectBuilder.cpp huestream/config/DefaultObjectBuilder.h huestream/config/HueConfig.cpp huestream/config/HueConfig.h huestream/config/HueSettings.cpp huestream/config/HueSettings.h huestream/config/AppSettings.cpp huestream/config/AppSettings.h huestream/connect/ConnectionFlow.cpp huestream/connect/ConnectionFlow.h huestream/connect/FeedbackMessage.cpp huestream/connect/FeedbackMessage.h huestream/connect/DefaultAuthenticator.cpp huestream/connect/DefaultAuthenticator.h huestream/connect/DefaultBridgeSearcher.cpp huestream/connect/DefaultBridgeSearcher.h huestream/connect/DefaultConnectionFlowFactory.cpp huestream/connect/DefaultConnectionFlowFactory.h huestream/connect/FileStorageAccessor.cpp huestream/connect/FileStorageAccessor.h huestream/connect/FullConfigRetriever.cpp huestream/connect/FullConfigRetriever.h huestream/connect/HueConnect.cpp huestream/connect/HueConnect.h huestream/connect/IBridgeAuthenticator.h huestream/connect/IBridgeSearcher.h huestream/connect/IBridgeStorageAccessor.h huestream/connect/IConnectionFlowFactory.h huestream/connect/IFullConfigRetriever.h huestream/connect/IMessageDispatcher.h huestream/connect/MessageDispatcher.cpp huestream/connect/MessageDispatcher.h huestream/connect/OperationResult.h huestream/effect/Engine.cpp huestream/effect/Engine.h huestream/effect/IEngine.h huestream/effect/animation/Player.cpp huestream/effect/animation/Player.h huestream/effect/animation/data/Curve/Curve.cpp huestream/effect/animation/data/Curve/Curve.h huestream/effect/animation/data/Curve/CurveOptions.cpp huestream/effect/animation/data/Curve/CurveOptions.h huestream/effect/animation/data/Playables/PlayableConstant.cpp huestream/effect/animation/data/Playables/PlayableConstant.h huestream/effect/animation/data/Playables/PlayableCurve.cpp huestream/effect/animation/data/Playables/PlayableCurve.h huestream/effect/animation/data/Playables/PlayableRandomizer.cpp huestream/effect/animation/data/Playables/PlayableRandomizer.h huestream/effect/animation/data/Playables/PlayableSequence.cpp huestream/effect/animation/data/Playables/PlayableSequence.h huestream/effect/animation/data/Playables/PlayableTween.cpp huestream/effect/animation/data/Playables/PlayableTween.h huestream/effect/animation/data/Playables/TweenType.cpp huestream/effect/animation/data/Playables/TweenType.h huestream/effect/animation/data/Playables/base/Playable.cpp huestream/effect/animation/data/Playables/base/Playable.h huestream/effect/animation/data/Playables/base/Repeatable.cpp huestream/effect/animation/data/Playables/base/Repeatable.h huestream/effect/animation/data/Channel.cpp huestream/effect/animation/data/Channel.h huestream/effect/animation/data/Point.cpp huestream/effect/animation/data/Point.h huestream/effect/animation/data/Vector.cpp huestream/effect/animation/data/Vector.h huestream/effect/animation/reader/CachedFileBuffer.cpp huestream/effect/animation/reader/CachedFileBuffer.h huestream/effect/animation/reader/CbvCurveReader.cpp huestream/effect/animation/reader/CbvCurveReader.h huestream/effect/animation/reader/ICurveReader.h huestream/effect/base/Effect.cpp huestream/effect/base/Effect.h huestream/effect/base/PlayableEffect.cpp huestream/effect/base/PlayableEffect.h huestream/effect/base/PlayableColorEffect.cpp huestream/effect/base/PlayableColorEffect.h huestream/effect/base/LightSourceEffect.cpp huestream/effect/base/LightSourceEffect.h huestream/effect/base/RadialEffect.cpp huestream/effect/base/RadialEffect.h huestream/effect/specialized/MultiChannelEffect.cpp huestream/effect/specialized/MultiChannelEffect.h huestream/effect/specialized/AreaEffect.cpp huestream/effect/specialized/AreaEffect.h huestream/effect/specialized/DynamicSceneEffect.cpp huestream/effect/specialized/DynamicSceneEffect.h huestream/effect/specialized/ExplosionEffect.cpp huestream/effect/specialized/ExplosionEffect.h huestream/effect/specialized/HitEffect.cpp huestream/effect/specialized/HitEffect.h huestream/effect/specialized/SequenceEffect.cpp huestream/effect/specialized/SequenceEffect.h huestream/effect/specialized/StaticColorEffect.cpp huestream/effect/specialized/StaticColorEffect.h huestream/stream/ConnectionState.h huestream/stream/GroupToLightStatesSerializer.cpp huestream/stream/GroupToLightStatesSerializer.h huestream/stream/HueStreamClient.cpp huestream/stream/HueStreamClient.h huestream/stream/IConnector.h huestream/stream/IStreamStarter.h huestream/stream/IStreamingClient.cpp huestream/stream/IStreamingClient.h huestream/stream/StreamStarter.cpp huestream/stream/StreamStarter.h huestream/stream/UDPConnector.cpp huestream/stream/UDPConnector.h huestream/stream/DTLSConnector.cpp huestream/stream/DTLSConnector.h huestream/stream/MbedtlsUDPClientAbs.cpp huestream/stream/MbedtlsUDPClientAbs.h huestream/stream/Stream.cpp huestream/stream/Stream.h huestream/stream/IStream.h huestream/stream/DefaultStreamFactory.cpp huestream/stream/DefaultStreamFactory.h huestream/stream/IStreamFactory.h huestream/connect/HueCallbackHandler.cpp huestream/connect/HueCallbackHandler.h huestream/stream/DefaultEntropyProvider.cpp huestream/stream/DefaultEntropyProvider.h huestream/stream/DefaultTimerProvider.cpp huestream/stream/DefaultTimerProvider.h) add_library(huestream ${LIB_BUILD_MODE} ${huestream_files}) set(LIBS bridge_discovery edk_support json edtls_client client_wrapper mbedtls mbedcrypto mbedx509) if (WIN32) set(LIBS ${LIBS} Iphlpapi ws2_32) endif() add_library_dependencies(huestream "${LIBS}") add_dependencies(huestream edtls_ext) install(TARGETS huestream RUNTIME DESTINATION ${INSTALL_DIR} LIBRARY DESTINATION ${INSTALL_DIR} ARCHIVE DESTINATION ${INSTALL_DIR}) install(DIRECTORY ${CMAKE_SOURCE_DIR}/libhuestream/huestream DESTINATION ${INSTALL_DIR}/include FILES_MATCHING PATTERN "*.h") if (BUILD_TEST) add_subdirectory(test) endif ()