JD2022-TU1/main/extern/Hue/libhuestream/CMakeLists.txt

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 ()