11cmake_minimum_required (VERSION 3.13)
22
33if (NOT WEBRTC_TOOLCHAIN_FILE STREQUAL "" )
4- message (STATUS "Toolchain file: ${WEBRTC_TOOLCHAIN_FILE} " )
5- set (CMAKE_TOOLCHAIN_FILE "${WEBRTC_TOOLCHAIN_FILE} " )
4+ message (STATUS "Toolchain file: ${WEBRTC_TOOLCHAIN_FILE} " )
5+ set (CMAKE_TOOLCHAIN_FILE "${WEBRTC_TOOLCHAIN_FILE} " )
66endif ()
77
88project (webrtc-java)
99
1010if (UNIX AND NOT APPLE )
11- set (LINUX TRUE )
11+ # Apply the sysroot configuration for the actual build
12+ if (DEFERRED_SYSROOT)
13+ # Configure sysroot for all subsequent operations
14+ set (CMAKE_SYSROOT ${DEFERRED_SYSROOT} )
15+ set (CMAKE_FIND_ROOT_PATH ${DEFERRED_SYSROOT} )
16+
17+ # Set pkg-config environment
18+ set (ENV{PKG_CONFIG_SYSROOT_DIR} "${DEFERRED_SYSROOT} " )
19+ set (ENV{PKG_CONFIG_PATH} "${DEFERRED_SYSROOT} /usr/lib/pkgconfig:${DEFERRED_SYSROOT} /usr/share/pkgconfig" )
20+
21+ # Restrict library and header searches to sysroot only
22+ set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
23+ set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
24+ set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
25+ endif ()
26+
27+ set (LINUX TRUE )
1228endif ()
1329
1430if (APPLE )
15- set (CMAKE_CXX_VISIBILITY_PRESET hidden)
16- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s" )
17- set (SOURCE_TARGET macos)
31+ set (CMAKE_CXX_VISIBILITY_PRESET hidden)
32+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s" )
33+ set (SOURCE_TARGET macos)
1834elseif (LINUX)
19- set (CMAKE_POSITION_INDEPENDENT_CODE ON )
20- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s" )
21- set (SOURCE_TARGET linux)
35+ set (CMAKE_POSITION_INDEPENDENT_CODE ON )
36+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s" )
37+ set (SOURCE_TARGET linux)
2238elseif (WIN32 )
23- set (CMAKE_CXX_FLAGS_RELEASE "/MT" )
24- set (CMAKE_CXX_FLAGS_DEBUG "/MTd" )
25- set (SOURCE_TARGET windows)
39+ set (CMAKE_CXX_FLAGS_RELEASE "/MT" )
40+ set (CMAKE_CXX_FLAGS_DEBUG "/MTd" )
41+ set (SOURCE_TARGET windows)
2642endif ()
2743
2844if (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC" )
@@ -45,54 +61,54 @@ file(GLOB SOURCES_PLATFORM "src/platform/${SOURCE_TARGET}/*.cpp")
4561file (GLOB SOURCES_RTC "src/rtc/*.cpp" )
4662
4763list (APPEND SOURCES
48- ${SOURCES_ROOT}
49- ${SOURCES_API}
50- ${SOURCES_MEDIA}
51- ${SOURCES_MEDIA_AUDIO}
52- ${SOURCES_MEDIA_AUDIO_OS}
53- ${SOURCES_MEDIA_VIDEO}
54- ${SOURCES_MEDIA_VIDEO_DESKTOP}
55- ${SOURCES_MEDIA_VIDEO_DESKTOP_OS}
56- ${SOURCES_MEDIA_VIDEO_OS}
57- ${SOURCES_PLATFORM}
58- ${SOURCES_RTC}
64+ ${SOURCES_ROOT}
65+ ${SOURCES_API}
66+ ${SOURCES_MEDIA}
67+ ${SOURCES_MEDIA_AUDIO}
68+ ${SOURCES_MEDIA_AUDIO_OS}
69+ ${SOURCES_MEDIA_VIDEO}
70+ ${SOURCES_MEDIA_VIDEO_DESKTOP}
71+ ${SOURCES_MEDIA_VIDEO_DESKTOP_OS}
72+ ${SOURCES_MEDIA_VIDEO_OS}
73+ ${SOURCES_PLATFORM}
74+ ${SOURCES_RTC}
5975)
6076
6177add_library (${PROJECT_NAME} SHARED ${SOURCES} )
6278
6379target_include_directories (${PROJECT_NAME}
64- PRIVATE
65- include
66- include /api
67- include /media
68- include /rtc
80+ PRIVATE
81+ include
82+ include /api
83+ include /media
84+ include /rtc
6985)
7086
7187set_target_properties (${PROJECT_NAME} PROPERTIES
72- CXX_STANDARD 20
73- CXX_STANDARD_REQUIRED ON
74- CXX_EXTENSIONS OFF
88+ CXX_STANDARD 20
89+ CXX_STANDARD_REQUIRED ON
90+ CXX_EXTENSIONS OFF
7591)
7692
7793target_link_libraries (${PROJECT_NAME} jni-voithos)
7894target_link_libraries (${PROJECT_NAME} webrtc)
7995
8096if (APPLE )
81- set_source_files_properties (${SOURCES} PROPERTIES COMPILE_FLAGS "-x objective-c++" )
82- target_link_libraries (${PROJECT_NAME} "-framework Foundation" "-framework AVFoundation" "-framework CoreMedia" "-framework CoreAudio" "-framework IOKit" )
97+ set_source_files_properties (${SOURCES} PROPERTIES COMPILE_FLAGS "-x objective-c++" )
98+ target_link_libraries (${PROJECT_NAME} "-framework Foundation" "-framework AVFoundation" "-framework CoreMedia" "-framework CoreAudio" "-framework IOKit" )
8399elseif (LINUX)
84- if (NOT TARGET_CPU MATCHES "^arm" )
85- set (CXX_LIBS "-static-libgcc -stdlib=libc++ -lc++ -lc++abi" )
86- else ()
87- set (CXX_LIBS "-static-libgcc" )
88- endif ()
100+ if (NOT TARGET_CPU MATCHES "^arm" )
101+ set (CXX_LIBS "-static-libgcc -stdlib=libc++ -lc++ -lc++abi" )
102+ else ()
103+ set (CXX_LIBS "-static-libgcc" )
104+ endif ()
89105
90- target_link_libraries (${PROJECT_NAME} ${CXX_LIBS} pulse udev)
106+ target_link_libraries (${PROJECT_NAME} ${CXX_LIBS} pulse udev)
91107elseif (WIN32 )
92- target_link_libraries (${PROJECT_NAME} c++.lib msvcprt.lib dwmapi.lib mf.lib mfreadwrite.lib mfplat.lib mfuuid.lib shcore.lib)
108+ target_link_libraries (${PROJECT_NAME} dwmapi.lib mf.lib mfreadwrite.lib mfplat.lib mfuuid.lib shcore.lib)
93109endif ()
94110
95111install (TARGETS ${PROJECT_NAME}
96- RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime
97- LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime
112+ RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime
113+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime
98114)
0 commit comments