237 lines
9.9 KiB
CMake
237 lines
9.9 KiB
CMake
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 ()
|