@@ -33,6 +33,8 @@ get_filename_component(ROOT "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE)
3333if (BUILD_STATIC)
3434 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static" )
3535 set (LINKAGE STATIC )
36+ elseif (WIN32 )
37+ set (LINKAGE STATIC )
3638else ()
3739 set (LINKAGE SHARED)
3840endif ()
@@ -64,49 +66,66 @@ if(BUILD_DEPENDENCIES)
6466 file (MAKE_DIRECTORY ${KINESIS_VIDEO_OPEN_SOURCE_SRC} /local)
6567 endif ()
6668
67- set (OPEN_SRC_INSTALL_PREFIX ${KINESIS_VIDEO_OPEN_SOURCE_SRC} /local)
68- set (ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH} :${OPEN_SRC_INSTALL_PREFIX} /lib/pkgconfig" )
69- set (ENV{PATH } "$ENV{PATH} :${OPEN_SRC_INSTALL_PREFIX} /bin" )
70- set (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${OPEN_SRC_INSTALL_PREFIX} )
71-
72- message (STATUS "Begin building dependencies." )
69+ if (NOT OPEN_SRC_INSTALL_PREFIX)
70+ set (OPEN_SRC_INSTALL_PREFIX ${KINESIS_VIDEO_OPEN_SOURCE_SRC} /local)
71+ set (ENV{PKG_CONFIG_PATH}
72+ "$ENV{PKG_CONFIG_PATH} :${OPEN_SRC_INSTALL_PREFIX} /lib/pkgconfig" )
73+ set (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${OPEN_SRC_INSTALL_PREFIX} )
74+ set (ENV{PATH } "$ENV{PATH} :${OPEN_SRC_INSTALL_PREFIX} /bin" )
75+ endif ()
7376
74- build_dependency(openssl -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_OPENSSL_PLATFORM=${BUILD_OPENSSL_PLATFORM} )
75- build_dependency(curl -DBUILD_STATIC=${BUILD_STATIC} -DUSE_OPENSSL=${USE_OPENSSL} -DUSE_MBEDTLS=${USE_MBEDTLS} )
7677
77- build_dependency(jsmn)
78- build_dependency(autoconf)
79- build_dependency(automake)
80- build_dependency(log4cplus)
78+ message (STATUS "Begin building dependencies." )
8179
82- if (BUILD_TEST)
83- build_dependency(gtest)
80+ if (NOT WIN32 )
81+ build_dependency(autoconf)
82+ build_dependency(automake)
8483 endif ()
84+ build_dependency(log4cplus)
8585
8686 message (STATUS "Finished building dependencies." )
8787endif ()
8888
89+ set (BUILD_COMMON_LWS
90+ FALSE
91+ CACHE BOOL "Build ProducerC without LWS Support" FORCE)
92+ set (BUILD_COMMON_CURL
93+ TRUE
94+ CACHE BOOL "Build ProducerC with CURL Support" FORCE)
95+ add_subdirectory (${KINESIS_VIDEO_PRODUCER_C_SRC} ./kvscproducer EXCLUDE_FROM_ALL )
96+
97+
8998############# find dependent libraries ############
9099find_package (Threads)
91100find_package (PkgConfig REQUIRED)
92- find_package (OpenSSL REQUIRED)
93101
94- pkg_check_modules(LIBCURL REQUIRED libcurl)
102+ find_package (OpenSSL REQUIRED)
103+ set (OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} )
95104
96- set (OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${LIBCURL_INCLUDE_DIRS} )
97- link_directories (${LIBCURL_LIBRARY_DIRS} )
105+ if (OPEN_SRC_INSTALL_PREFIX)
106+ find_package (CURL REQUIRED PATHS ${OPEN_SRC_INSTALL_PREFIX} )
107+ else ()
108+ find_package (CURL REQUIRED)
109+ endif ()
98110
99- set (OPEN_SRC_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR} ${CURL_INCLUDE_DIRS} )
111+ set (OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS} )
112+ link_directories (${CURL_LIBRARY_DIRS} )
100113
101- find_library (
102- Log4cplus
103- NAMES log4cplus REQUIRED
104- PATHS ${OPEN_SRC_INSTALL_PREFIX} /lib)
114+ if (WIN32 )
115+ find_package (Log4cplus
116+ NAMES log4cplus REQUIRED
117+ PATHS ${OPEN_SRC_INSTALL_PREFIX} /lib)
118+ else ()
119+ find_library (Log4cplus
120+ NAMES log4cplus REQUIRED
121+ PATHS ${OPEN_SRC_INSTALL_PREFIX} /lib)
122+ endif ()
105123
124+ set (OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${LOG4CPLUS_INCLUDE_DIRS} )
125+ link_directories (${LOG4CPLUS_LIBRARY_DIRS} )
106126
107- find_library (Jsmn
108- NAMES jsmn REQUIRED
109- PATHS ${OPEN_SRC_INSTALL_PREFIX} /lib)
127+ find_library (Jsmn REQUIRED)
128+ set (OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${JSMN_INCLUDE_DIRS} )
110129
111130############# Enable Sanitizers ############
112131if ("${CMAKE_C_COMPILER_ID} " MATCHES "GNU|Clang" )
@@ -137,6 +156,10 @@ if("${CMAKE_C_COMPILER_ID}" MATCHES "GNU|Clang")
137156 endif ()
138157endif ()
139158
159+ if (MSVC )
160+ add_definitions (-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
161+ endif ()
162+
140163############# Build Targets ############
141164file (GLOB PRODUCER_CPP_SOURCE_FILES "src/*.cpp" "src/common/*.cpp" "src/credential-providers/*.cpp" )
142165file (GLOB GST_PLUGIN_SOURCE_FILES "src/gstreamer/*.cpp" "src/gstreamer/Util/*.cpp" )
@@ -152,13 +175,10 @@ include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/common)
152175include_directories (${KINESIS_VIDEO_PRODUCER_CPP_SRC} /src/JNI/include )
153176include_directories (${KINESIS_VIDEO_PRODUCER_C_SRC} /src/include )
154177
155- set (BUILD_COMMON_LWS
156- FALSE
157- CACHE BOOL "Build ProducerC without LWS Support" FORCE)
158- set (BUILD_COMMON_CURL
159- TRUE
160- CACHE BOOL "Build ProducerC with CURL Support" FORCE)
161- add_subdirectory (${KINESIS_VIDEO_PRODUCER_C_SRC} ./kvscproducer EXCLUDE_FROM_ALL )
178+ if (WIN32 )
179+ SET (JSMN_LIBRARY "../../open-source/local/lib/jsmn" )
180+ SET (Log4cplus "log4cplus::log4cplus" )
181+ endif ()
162182
163183add_library (KinesisVideoProducer ${LINKAGE} ${PRODUCER_CPP_SOURCE_FILES} )
164184target_link_libraries (
@@ -171,7 +191,7 @@ target_link_libraries(
171191 cproducer
172192 ${OPENSSL_SSL_LIBRARY}
173193 ${OPENSSL_CRYPTO_LIBRARY}
174- ${Jsmn }
194+ ${JSMN_LIBRARY }
175195 ${Log4cplus}
176196 ${LIBCURL_LIBRARIES} )
177197
0 commit comments