Skip to content

Commit 4b1a8d0

Browse files
committed
Sand 1.0.0-BATE2
1 parent a2449cb commit 4b1a8d0

File tree

637 files changed

+39838
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

637 files changed

+39838
-0
lines changed

.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
.DS_Store
2+
.metadata
3+
bin/
4+
.classpath
5+
.project
6+
.settings/
7+
.idea
8+
*.iml
9+
*.ipr
10+
*.iws
11+
!/com.firstlinecode.sand.demo/*.ipr
12+
!/com.firstlinecode.sand.demo/*.iws
13+
!/com.firstlinecode.sand.demo/.idea
14+
target/
15+
.theia
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
cmake_minimum_required(VERSION 3.21)
2+
3+
# set the project name and version
4+
project(WebcamWebrtcNativeService VERSION 1.0)
5+
6+
# specify the C++ standard
7+
set(CMAKE_CXX_STANDARD 14)
8+
set(CMAKE_CXX_STANDARD_REQUIRED True)
9+
10+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
11+
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
12+
13+
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
14+
set(CMAKE_BUILD_TYPE "Debug")
15+
endif()
16+
17+
if (CMAKE_HOST_WIN32)
18+
set(SOURCE_REPOS_DIR "C:\\Users\\49190\\source\\repos")
19+
set(VCPKG_DIR "${SOURCE_REPOS_DIR}\\vcpkg")
20+
21+
set(CPPNET_SRC_DIR "${SOURCE_REPOS_DIR}\\CppNet_src")
22+
set(CPPNET_INCLUDE_DIR "${CPPNET_SRC_DIR}\\CppNet\\include")
23+
set(CPPNET_LIBRARY_PATH "${CPPNET_SRC_DIR}\\CppNet_vs_build\\lib\\Debug")
24+
25+
set(WEBRTC_SRC_DIR "${SOURCE_REPOS_DIR}\\webrtc_native_code\\webrtc-checkout\\src")
26+
set(WEBRTC_INCLUDE_DIR "${WEBRTC_SRC_DIR};${WEBRTC_SRC_DIR}\\third_party\\abseil-cpp")
27+
set(WEBRTC_LIBRARY_PATH "${WEBRTC_SRC_DIR}\\out\\Default\\obj")
28+
set(WEBRTC_VIDEO_CAPTURE_LIBRARY_PATH "${WEBRTC_LIBRARY_PATH}\\modules\\video_capture")
29+
set(JSONCPP_INCLUDE_DIR "${VCPKG_DIR}\\installed\\x64-windows-static\\include")
30+
set(JSONCPP_LIBRARY_PATH "${VCPKG_DIR}\\installed\\x64-windows-static\\debug\\lib")
31+
32+
add_compile_definitions(USE_AURA=1)
33+
add_compile_definitions(_HAS_EXCEPTIONS=0)
34+
add_compile_definitions(__STD_C)
35+
add_compile_definitions(_CRT_RAND_S)
36+
add_compile_definitions(_CRT_SECURE_NO_DEPRECATE)
37+
add_compile_definitions(_SCL_SECURE_NO_DEPRECATE)
38+
add_compile_definitions(_ATL_NO_OPENGL)
39+
add_compile_definitions(_WINDOWS)
40+
add_compile_definitions(CERT_CHAIN_PARA_HAS_EXTRA_FIELDS)
41+
add_compile_definitions(PSAPI_VERSION=2)
42+
add_compile_definitions(WIN32)
43+
add_compile_definitions(_SECURE_ATL)
44+
add_compile_definitions(__WRL_NO_DEFAULT_LIB__)
45+
add_compile_definitions(WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP)
46+
add_compile_definitions(WINAPI_PARTITION_DESKTOP)
47+
add_compile_definitions(WIN10=_WIN32_WINNT_WIN10)
48+
add_compile_definitions(WIN32_LEAN_AND_MEAN)
49+
add_compile_definitions(NOMINMAX)
50+
add_compile_definitions(_UNICODE)
51+
add_compile_definitions(UNICODE)
52+
add_compile_definitions(NTDDI_VERSION=NTDDI_WIN10_RS2)
53+
add_compile_definitions(_WIN32_WINNT=0x0A00)
54+
add_compile_definitions(WINVER=0x0A00)
55+
add_compile_definitions(NDEBUG)
56+
add_compile_definitions(NVALGRIND)
57+
add_compile_definitions(DYNAMIC_ANNOTATIONS_ENABLED=0)
58+
add_compile_definitions(WEBRTC_ENABLE_PROTOBUF=0)
59+
add_compile_definitions(WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE)
60+
add_compile_definitions(RTC_ENABLE_VP9)
61+
add_compile_definitions(HAVE_SCTP)
62+
add_compile_definitions(WEBRTC_LIBRARY_IMPL)
63+
add_compile_definitions(WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS)
64+
add_compile_definitions(WEBRTC_WIN)
65+
add_compile_definitions(ABSL_ALLOCATOR_NOTHROW=1)
66+
add_compile_definitions(HAVE_SCTP)
67+
else()
68+
if(CMAKE_FIND_ROOT_PATH)
69+
set(SOURCE_REPOS_DIR ${DEPENDENCY_LIBRARIES_ROOTDIR})
70+
else()
71+
set(SOURCE_REPOS_DIR "/home/dongger/sources")
72+
endif()
73+
74+
set(CPPNET_SRC_DIR "${SOURCE_REPOS_DIR}/CppNet_src")
75+
set(CPPNET_INCLUDE_DIR "${CPPNET_SRC_DIR}/CppNet/include")
76+
if(CMAKE_CROSSCOMPILING)
77+
set(CPPNET_LIBRARY_PATH "${CPPNET_SRC_DIR}/CppNet_build/arm64/lib")
78+
else()
79+
set(CPPNET_LIBRARY_PATH "${CPPNET_SRC_DIR}/CppNet_build/x64/lib")
80+
endif()
81+
82+
set(WEBRTC_SRC_DIR "${SOURCE_REPOS_DIR}/webrtc_native_code/webrtc-checkout/src")
83+
if(CMAKE_CROSSCOMPILING)
84+
set(WEBRTC_INCLUDE_DIR "${CMAKE_FIND_ROOT_PATH}/${WEBRTC_SRC_DIR};${CMAKE_FIND_ROOT_PATH}/${WEBRTC_SRC_DIR}/third_party/abseil-cpp")
85+
else()
86+
set(WEBRTC_INCLUDE_DIR "${WEBRTC_SRC_DIR};${WEBRTC_SRC_DIR}/third_party/abseil-cpp")
87+
endif()
88+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
89+
set(WEBRTC_LIBRARY_PATH "${WEBRTC_SRC_DIR}/out/arm64/obj")
90+
else()
91+
set(WEBRTC_LIBRARY_PATH "${WEBRTC_SRC_DIR}/out/x64/obj")
92+
endif()
93+
94+
set(WEBRTC_VIDEO_CAPTURE_LIBRARY_PATH
95+
"${WEBRTC_LIBRARY_PATH}/modules/video_capture")
96+
97+
if(CMAKE_CROSSCOMPILING)
98+
set(JSONCPP_SRC_DIR "${SOURCE_REPOS_DIR}/jsoncpp_src")
99+
set(JSONCPP_INCLUDE_DIR "${JSONCPP_SRC_DIR}/jsoncpp/include")
100+
set(JSONCPP_LIBRARY_PATH "${JSONCPP_SRC_DIR}/jsoncpp_build/lib")
101+
else()
102+
set(JSONCPP_PACKAGE_DIR "${SOURCE_REPOS_DIR}/vcpkg/packages/jsoncpp_x64-linux")
103+
set(JSONCPP_INCLUDE_DIR "${JSONCPP_PACKAGE_DIR}/include")
104+
set(JSONCPP_LIBRARY_PATH "${JSONCPP_PACKAGE_DIR}/lib")
105+
endif()
106+
107+
if(CMAKE_CROSSCOMPILING)
108+
set(CMAKE_CXX_FLAGS "-isystem ${CMAKE_FIND_ROOT_PATH}/usr/include ${CMAKE_CXX_FLAGS}")
109+
set(CMAKE_CXX_FLAGS "-isystem ${CMAKE_FIND_ROOT_PATH}/usr/include/c++/8 ${CMAKE_CXX_FLAGS}")
110+
set(CMAKE_CXX_FLAGS "-isystem ${CMAKE_FIND_ROOT_PATH}/usr/include/aarch64-linux-gnu ${CMAKE_CXX_FLAGS}")
111+
set(CMAKE_CXX_FLAGS "-isysroot ${CMAKE_FIND_ROOT_PATH} ${CMAKE_CXX_FLAGS}")
112+
endif()
113+
114+
set(CMAKE_CXX_FLAGS "-std=c++0x -pthread ${CMAKE_CXX_FLAGS}")
115+
# set(CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0 -static-libstdc++ ${CMAKE_CXX_FLAGS}")
116+
set(CMAKE_CXX_FLAGS "-static-libstdc++ ${CMAKE_CXX_FLAGS}")
117+
118+
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CPPNET_LIBRARY_PATH}/libcppnet.a ${WEBRTC_LIBRARY_PATH}/libwebrtc.a ${WEBRTC_VIDEO_CAPTURE_LIBRARY_PATH}/libvideo_capture_module.a ${JSONCPP_LIBRARY_PATH}/libjsoncpp.a")
119+
120+
add_compile_definitions(ENABLE_PRECOMPILED_HEADERS OFF)
121+
add_compile_definitions(WEBRTC_POSIX)
122+
add_compile_definitions(WEBRTC_LINUX)
123+
endif()
124+
125+
if(MSVC)
126+
add_compile_options(
127+
$<$<CONFIG:>:/MT> #---------|
128+
$<$<CONFIG:Debug>:/MTd> #---|-- Statically link the runtime libraries
129+
$<$<CONFIG:Release>:/MT> #--|
130+
)
131+
endif()
132+
133+
# add the executable
134+
add_executable(WebcamWebrtcNativeService
135+
SocketServer.cxx
136+
SocketServer.h
137+
test_video_capturer.cxx
138+
test_video_capturer.h
139+
vcm_capturer.cxx
140+
vcm_capturer.h
141+
WebcamWebrtcPeer.cxx
142+
WebcamWebrtcPeer.h
143+
WebcamWebrtcNativeService.cxx
144+
)
145+
146+
target_include_directories(WebcamWebrtcNativeService
147+
PRIVATE ${CPPNET_INCLUDE_DIR}
148+
PRIVATE ${WEBRTC_INCLUDE_DIR}
149+
PRIVATE ${JSONCPP_INCLUDE_DIR}
150+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
151+
)
152+
153+
find_path(socketHFound "sys/socket.h")
154+
find_path(stdintHFound "stdint.h")
155+
156+
message("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
157+
message("CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES: ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}")
158+
message("CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES: ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}")
159+
message("CMAKE_FIND_ROOT_PATH: ${CMAKE_FIND_ROOT_PATH}")
160+
message("socketHFound: ${socketHFound}")
161+
message("CMAKE_LINKER: ${CMAKE_LINKER}")
162+
message("CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
163+
message("stdintHFound: ${stdintHFound}")
164+
165+
if (CMAKE_HOST_WIN32)
166+
find_library(CPPNET_LIB NAMES cppnet.lib PATHS ${CPPNET_LIBRARY_PATH})
167+
find_library(WEBRTC_LIB NAMES webrtc.lib PATHS ${WEBRTC_LIBRARY_PATH})
168+
find_library(WEBRTC_VIDEO_CAPTURE_LIB NAMES video_capture_module.lib PATHS ${WEBRTC_VIDEO_CAPTURE_LIBRARY_PATH})
169+
find_library(JSONCPP_LIB NAMES jsoncpp.lib PATHS ${JSONCPP_LIBRARY_PATH})
170+
else()
171+
find_library(CPPNET_LIB NAMES libcppnet.a PATHS ${CPPNET_LIBRARY_PATH})
172+
find_library(WEBRTC_LIB NAMES libwebrtc.a PATHS ${WEBRTC_LIBRARY_PATH})
173+
find_library(WEBRTC_VIDEO_CAPTURE_LIB NAMES libvideo_capture_module.a PATHS ${WEBRTC_VIDEO_CAPTURE_LIBRARY_PATH})
174+
find_library(JSONCPP_LIB NAMES libjsoncpp.a PATHS ${JSONCPP_LIBRARY_PATH})
175+
endif()
176+
177+
if (CMAKE_HOST_WIN32)
178+
target_link_libraries(WebcamWebrtcNativeService
179+
${CPPNET_LIB}
180+
${WEBRTC_LIB}
181+
${WEBRTC_VIDEO_CAPTURE_LIB}
182+
${JSONCPP_LIB}
183+
libucrtd.lib
184+
winmm.lib
185+
strmiids.lib
186+
secur32.lib
187+
msdmo.lib
188+
dmoguids.lib
189+
wmcodecdspuuid.lib
190+
)
191+
else()
192+
target_link_libraries(WebcamWebrtcNativeService
193+
${CPPNET_LIB}
194+
${WEBRTC_LIB}
195+
${WEBRTC_VIDEO_CAPTURE_LIB}
196+
${JSONCPP_LIB}
197+
dl
198+
jpeg
199+
)
200+
endif()
201+
202+
# add the install targets
203+
if (CMAKE_HOST_WIN32)
204+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
205+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
206+
207+
if (NOT CMAKE_BUILD_TYPE)
208+
set(CMAKE_BUILD_TYPE "Debug")
209+
message("Set CMAKE_BUILD_TYPE to default value(Debug). ")
210+
endif()
211+
212+
install(TARGETS WebcamWebrtcNativeService
213+
DESTINATION bin
214+
)
215+
else()
216+
install(TARGETS WebcamWebrtcNativeService
217+
DESTINATION bin
218+
)
219+
endif()
220+

0 commit comments

Comments
 (0)