### Build and Install C Examples Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/coreapi/help/examples/C/CMakeLists.txt Iterates through the defined C example source files, creates executables, applies compile flags, links necessary libraries, and installs them if not on iOS. ```cmake foreach(EXECUTABLE ${LINPHONE_C_EXAMPLES_SOURCE}) string(REPLACE ".c" "" EXECUTABLE_NAME ${EXECUTABLE}) bc_apply_compile_flags(${EXECUTABLE} STRICT_OPTIONS_CPP STRICT_OPTIONS_C) add_executable(${EXECUTABLE_NAME} ${USE_BUNDLE} ${EXECUTABLE}) target_link_libraries(${EXECUTABLE_NAME} PRIVATE ${LINPHONE_LIBS_FOR_TOOLS} ${Mediastreamer2_TARGET} ${Ortp_TARGET} ${BCToolbox_TARGET} ${XSD_LIBRARIES}) if (NOT IOS) install(TARGETS ${EXECUTABLE_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() endforeach() ``` -------------------------------- ### Swift Test Case Setup Example Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/tester/IOS/swift/LinphoneTester/README.md Example structure for a new Swift XCTestCase class. Demonstrates the implementation of class setup and teardown methods. ```swift class MyTestSuiteName : XCTestCase { override class func setUp() { // This is called once, whether you run the whole test class or a single instance. } class func setUp() { // Called at the start of each test } class func tearDown() { // Called at the end of each test, no matter the result } } ``` -------------------------------- ### Install C# Wrapper Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/wrappers/csharp/CMakeLists.txt Installs the generated LinphoneWrapper.cs file and optionally the test directory to the specified installation path. ```cmake install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LinphoneWrapper.cs" DESTINATION "${CMAKE_INSTALL_DATADIR}/linphonecs/") if(ENABLE_CSHARP_WRAPPER_TESTER) # Add the project to the install data dir next to the LinphoneWrapper.cs install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/LinphoneWrapper.Tests" DESTINATION "${CMAKE_INSTALL_DATADIR}/linphonecs/" ) endif() ``` -------------------------------- ### Install HTML Documentation Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/help/CMakeLists.txt This command installs the generated HTML documentation to the appropriate directory within the installation prefix. The destination path includes the project version. ```cmake install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html" DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/mediastreamer2-${MEDIASTREAMER_VERSION}") ``` -------------------------------- ### Install gdb.setup Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/cmake/Android/gdbserver/CMakeLists.txt Installs the configured gdb.setup file to the bin directory of the project. ```cmake install(FILES "${PROJECT_BINARY_DIR}/gdb.setup" DESTINATION bin) ``` -------------------------------- ### Install PostQuantumCryptoEngine Headers Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/postquantumcryptoengine/include/CMakeLists.txt Installs the collected header files for the PostQuantumCryptoEngine to the specified installation directory with defined permissions. This ensures headers are available for external use after installation. ```cmake install(FILES ${POSTQUANTUMCRYPTOENGINE_HEADER_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/postquantumcryptoengine PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Build and Install Mediastreamer2 Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/README.md Standard make commands to build and install the Mediastreamer2 library after configuration. ```bash make make install ``` -------------------------------- ### Install Targets and Permissions in CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/CMakeLists.txt Configures installation destinations for runtime, libraries, archives, and frameworks. Sets specific file permissions for installed components. ```cmake RUNTIME DESTINATION ${Mediastreamer2_PLUGINS_DIR} LIBRARY DESTINATION ${Mediastreamer2_PLUGINS_DIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install BCUnit Library Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bcunit/BCUnit/Sources/CMakeLists.txt Installs the bcunit target, including runtime, library, and archive files, to their designated installation directories. It also sets file permissions. ```cmake install(TARGETS bcunit EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Enable Standard CMake Installation Option Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/third_party/abseil-cpp/CMake/README.md CMake option to enable the standard installation procedure for Abseil. Set to ON to allow installation. ```cmake -DABSL_ENABLE_INSTALL=ON ``` -------------------------------- ### Install Abseil Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/third_party/abseil-cpp/CMake/README.md Installs the Abseil library after it has been configured and built. This command should be executed from the build directory. ```bash cmake --build /temporary/build/abseil-cpp --target install ``` -------------------------------- ### Enable Example Plugin Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/CMakeLists.txt Adds the '-DHAVE_EXAMPLE_PLUGIN' preprocessor definition if ENABLE_EXAMPLE_PLUGIN is set, indicating the presence of an example plugin. ```cmake if(ENABLE_EXAMPLE_PLUGIN) add_definitions(-DHAVE_EXAMPLE_PLUGIN) endif() ``` -------------------------------- ### Install Utils Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/include/CMakeLists.txt Installs utility header files into a sub-directory named 'utils'. ```cmake install(FILES ${UTILS_HEADER_FILES} DESTINATION "${DEST_ROOT_DIRECTORY}/utils" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Install Android Support Library Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/cmake/Android/support/CMakeLists.txt Installs the 'support' library targets (runtime, library, archive) to their respective destinations within the installation directory. It also sets file permissions for the installed files. ```cmake install(TARGETS support RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install Root Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/include/CMakeLists.txt Installs the main linphone SDK header files to the specified destination directory. ```cmake set(DEST_ROOT_DIRECTORY "${CMAKE_INSTALL_INCLUDEDIR}/linphone") install(FILES ${ROOT_HEADER_FILES} DESTINATION "${DEST_ROOT_DIRECTORY}" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Install Node.js Dependencies Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/lime/tester/server/nodejs/README.md Run this command in the project directory to install necessary Node.js packages. ```bash npm install ``` -------------------------------- ### Install Qt Plugin Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/src/CMakeLists.txt Installs the msqogl Qt plugin to the specified plugin directory, handling different destination types (runtime, library, archive, framework). ```cmake install(TARGETS msqogl RUNTIME DESTINATION ${MS2_PLUGINS_DIR} LIBRARY DESTINATION ${MS2_PLUGINS_DIR} ARCHIVE DESTINATION ${MS2_PLUGINS_DIR} FRAMEWORK DESTINATION Frameworks ) ``` -------------------------------- ### Configure and Install Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bcunit/BCUnit/Headers/CMakeLists.txt Configures the main BCUnit.h header file from a template and installs all collected header files to the appropriate system directory. ```cmake configure_file(BCUnit.h.in BCUnit.h @ONLY) install(FILES ${HEADER_FILES} ${CMAKE_CURRENT_BINARY_DIR}/BCUnit.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/BCUnit PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Install PostQuantumCryptoEngine Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/postquantumcryptoengine/src/CMakeLists.txt Installs the postquantumcryptoengine library and its associated files (runtime, library, archive) to the specified destinations. Permissions are set for broad access. ```cmake install(TARGETS postquantumcryptoengine EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT core ) ``` -------------------------------- ### Install Tester Executable and Libraries Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/postquantumcryptoengine/tester/CMakeLists.txt Configures the installation of the 'pqcrypto-tester' target. It specifies the destination directories for runtime, library, and archive files, along with file permissions. ```cmake install(TARGETS pqcrypto-tester RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install Pystache and Six Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/README.md Installs Python dependencies required for the build process. Use pip3 if pip is associated with Python 2. ```bash pip install pystache pip install six ``` -------------------------------- ### Install Tester Executable Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bctoolbox/tester/CMakeLists.txt This snippet defines the installation rules for the tester executable. It installs the executable to the runtime directory and libraries/archives to the library directory, provided it's not an iOS build. Permissions are also set. ```cmake if(NOT IOS) install(TARGETS bctoolbox-tester-exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() ``` -------------------------------- ### Install Video Player and Recorder Executables Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/tools/CMakeLists.txt Installs the 'mediastreamer2-player' and 'mediastreamer2-recorder' executables to the runtime destination if video support is enabled and the platform is not iOS. ```cmake if(ENABLE_VIDEO AND NOT IOS) install(TARGETS mediastreamer2-player RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(TARGETS mediastreamer2-recorder RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif() ``` -------------------------------- ### Install Belcard Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belcard/include/CMakeLists.txt Installs the Belcard header files to the 'include/belcard' directory within the project's installation path. Sets read and write permissions for the owner, and read permissions for the group and others. ```cmake install(FILES ${BELCARD_HEADER_FILES} DESTINATION include/belcard PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ``` -------------------------------- ### Install C# Wrapper Version File Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/wrappers/csharp/CMakeLists.txt Installs the generated CMake version file for the C# wrapper to the specified destination directory. ```cmake install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LinphoneCsVersion.cmake" DESTINATION "${CMAKE_INSTALL_DATADIR}/LinphoneCs/cmake" ) ``` -------------------------------- ### Install C API Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/include/CMakeLists.txt Installs the C API specific header files into a sub-directory named 'api'. ```cmake install(FILES ${C_API_HEADER_FILES} DESTINATION "${DEST_ROOT_DIRECTORY}/api" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Define bcunit Example Library Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bcunit/Examples/CMakeLists.txt Adds a static library named 'bcunitexamples' compiled from 'ExampleTests.c'. This is a fundamental step in building the example test suite. ```cmake add_library(bcunitexamples STATIC ExampleTests.c) ``` -------------------------------- ### Install Belle SIP Tester Header File Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belle-sip/tester/CMakeLists.txt Installs the public header file 'belle_sip_tester_utils.h' to the include directory, making it accessible for external projects. ```cmake install(FILES belle_sip_tester_utils.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/belle-sip PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Install belr Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/src/CMakeLists.txt Installs the belr target (runtime, library, archive, framework) to the appropriate directories. Permissions are set for broad access. ```cmake install(TARGETS belr EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Build LIME Library with CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/lime/README.md Standard CMake command to configure, build, and install the LIME library. Specify installation and search prefixes as needed. ```bash cmake -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= make make install ``` -------------------------------- ### Install MSAudio Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/msaaudio/CMakeLists.txt Installs the MSAudio target to the specified directories. Configures runtime and library destinations, along with file permissions. ```cmake install(TARGETS msaaudio RUNTIME DESTINATION ${Mediastreamer2_PLUGINS_DIR} LIBRARY DESTINATION ${Mediastreamer2_PLUGINS_DIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install liblinphone-groupchat-benchmark Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/tester/CMakeLists.txt Installs the liblinphone-groupchat-benchmark target with specified runtime, library, and archive destinations, along with file permissions. ```cmake install(TARGETS liblinphone-groupchat-benchmark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install BCToolbox Library Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bctoolbox/src/CMakeLists.txt Installs the main bctoolbox library, including runtime, library, and archive files, to their designated destinations. It also sets file permissions. ```cmake install(TARGETS bctoolbox EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT core ) ``` -------------------------------- ### Install belr Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/src/CMakeLists.txt Installs the belr header files to the include/belr directory. This makes the library's API accessible to users. ```cmake install(FILES ${BELR_HEADER_FILES} DESTINATION include/belr PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Define C Examples Source Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/coreapi/help/examples/C/CMakeLists.txt Sets the source files for C examples when tools are enabled. This variable is set with PARENT_SCOPE to be accessible in parent directories. ```cmake set(LINPHONE_C_EXAMPLES_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/buddy_status.c ${CMAKE_CURRENT_SOURCE_DIR}/chatroom.c ${CMAKE_CURRENT_SOURCE_DIR}/filetransfer.c ${CMAKE_CURRENT_SOURCE_DIR}/helloworld.c ${CMAKE_CURRENT_SOURCE_DIR}/notify.c ${CMAKE_CURRENT_SOURCE_DIR}/realtimetext_receiver.c ${CMAKE_CURRENT_SOURCE_DIR}/realtimetext_sender.c ${CMAKE_CURRENT_SOURCE_DIR}/registration.c PARENT_SCOPE ) ``` -------------------------------- ### Install Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/msandroidcamera2/CMakeLists.txt Defines the installation rules for the 'msandroidcamera2' target, specifying destinations for runtime, library, archive, and framework files, along with file permissions. ```cmake install(TARGETS msandroidcamera2 RUNTIME DESTINATION ${Mediastreamer2_PLUGINS_DIR} LIBRARY DESTINATION ${Mediastreamer2_PLUGINS_DIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install PDB Files on Windows Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bctoolbox/src/CMakeLists.txt Installs the Program Database (PDB) files for the BCToolbox library on Windows for Debug and RelWithDebInfo configurations. ```cmake if(MSVC AND BUILD_SHARED_LIBS) install(FILES $ DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE CONFIGURATIONS Debug RelWithDebInfo ) endif() ``` -------------------------------- ### Install Tester Database Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/tester/CMakeLists.txt Installs database files for the liblinphone-tester component, including regular and downloaded database files. ```cmake install(FILES ${DB_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/liblinphone-tester/db") install(FILES ${DB_DOWNLOADED_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/liblinphone-tester/db/${DB_DOWNLOAD_DIRECTORY}") ``` -------------------------------- ### Install msoboe Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/msoboe/CMakeLists.txt Configures the installation of the msoboe target, specifying runtime and library destinations within the Mediastreamer2 plugin directory, and setting file permissions. ```cmake install(TARGETS msoboe RUNTIME DESTINATION ${Mediastreamer2_PLUGINS_DIR} LIBRARY DESTINATION ${Mediastreamer2_PLUGINS_DIR} ARCHIVE DESTINATION ${Mediastreamer2_PLUGINS_DIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Adjust AEC Metric Logging Frequency Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/tools/audio/tools/README.md Modify the logging frequency of AEC metrics in the mswebrtc_aec3.cc file to get more instant measurements during calls. This example logs metrics every 5000 milliseconds. ```c++ if ((filter->ticker->time % 5000) == 0) { ms_message("WebRTCAEC[%p] AEC3 current metrics: delay = %d ms, ERL = %f, ERLE = %f", this, aecMetrics.delay_ms, aecMetrics.echo_return_loss, aecMetrics.echo_return_loss_enhancement); } ``` -------------------------------- ### Installation Rules for Non-iOS Targets Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/tester/CMakeLists.txt Installs the mediastreamer2-tester executable and associated data files (sounds, scenarios, raw, images) to designated directories. ```cmake if(NOT IOS) install(TARGETS mediastreamer2-tester RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) install(FILES ${SOUND_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/mediastreamer2-tester/sounds") install(FILES ${SCENARIO_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/mediastreamer2-tester/scenarios") install(FILES ${RAW_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/mediastreamer2-tester/raw") if(ENABLE_VIDEO AND ENABLE_QRCODE) install(FILES ${IMAGE_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/mediastreamer2-tester/images") endif() endif() ``` -------------------------------- ### Build and Install Google Test Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/third_party/abseil-cpp/CMake/README.md Configures, builds, and installs Google Test using CMake. This is a prerequisite for building Abseil with external Google Test support. ```bash cmake -S /source/googletest -B /build/googletest -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/installation/dir -DBUILD_GMOCK=ON cmake --build /build/googletest --target install ``` -------------------------------- ### Install Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/lime/include/CMakeLists.txt Installs the defined header files to the 'include/lime' directory with specified file permissions. This ensures headers are available for external projects. ```cmake install(FILES ${LIME_HEADER_FILES} DESTINATION include/lime PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ``` -------------------------------- ### Start X3DH Test Server Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/lime/tester/server/nodejs/README.md Execute the main server script with the path to the database directory and optional settings. ```bash node x3dh.js -d [options] ``` -------------------------------- ### Install Other Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belle-sip/tester/CMakeLists.txt Installs additional files to the data directory of the installation. ```cmake install(FILES ${OTHER_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/belle-sip-tester") ``` -------------------------------- ### Build Belr Project Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/README.md Standard commands to build and install the Belr project using CMake. Ensure you set the installation prefix and search paths for dependencies. ```bash cmake . -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= make make install ``` -------------------------------- ### Install PDB Files for Tester on Windows Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bctoolbox/src/CMakeLists.txt Installs the Program Database (PDB) files for the BCToolbox tester library on Windows for Debug and RelWithDebInfo configurations. ```cmake if(MSVC AND BUILD_SHARED_LIBS) install(FILES $ DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE CONFIGURATIONS Debug RelWithDebInfo ) endif() ``` -------------------------------- ### Server Configuration Example Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/lime/tester/server/nodejs/README.md The configuration file should export an associative array mapping Curve IDs to their respective database paths. ```javascript { "c25519": "./c25519.sqlite3", "c448": "./c448.sqlite3", "c25519/kyber512": "./c25519k512.sqlite3", "c25519/mlkem512": "./c25519mlk512.sqlite3", "c488/mlkem1024": "./c488mlk1024.sqlite3" } ``` -------------------------------- ### Configure CMake to Skip Install RPATH Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belcard/README.md When invoking CMake for installation, use this option to prevent the installation binaries from being stripped of any rpath. ```bash cmake -DCMAKE_SKIP_INSTALL_RPATH=ON ``` -------------------------------- ### Install Linphone Python Module Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/tools/python/doc/source/getting_started.md Use pip to install prebuilt packages of Linphone for Python. This command installs the latest pre-release version. ```bash > pip install linphone --pre ``` -------------------------------- ### Initialize Output Directories and Targets Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/cmake/NuGet/Windows/CMakeLists.txt Sets up the base output directory for NuGet packages and defines custom targets for unzipping and OpenGL downloads. It also cleans and creates necessary subdirectories for packages. ```cmake set(LINPHONESDK_OUTPUT_DIR ${CMAKE_BINARY_DIR}/packages/nuget) add_custom_target(unzip ALL) add_custom_command(TARGET unzip PRE_BUILD COMMAND ${CMAKE_COMMAND} -E remove_directory ${LINPHONESDK_OUTPUT_DIR}) add_custom_command(TARGET unzip PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${LINPHONESDK_OUTPUT_DIR}/uwp) add_custom_command(TARGET unzip PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${LINPHONESDK_OUTPUT_DIR}/windows) add_custom_command(TARGET unzip PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${LINPHONESDK_OUTPUT_DIR}/windowsstore) add_custom_target(opengl ALL DEPENDS unzip) ``` -------------------------------- ### Include Directories Setup Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/CMakeLists.txt Sets up the include directories for the mediastreamer2 project, including standard and generated directories. ```cmake include_directories( include src/audiofilters src/utils src/voip ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src ) ``` -------------------------------- ### Install MSYS2 Packages Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/README.md Installs essential tools from MSYS2 for building the SDK on Windows. This command installs a toolchain, Python, Doxygen, Perl, and others. ```bash pacman -S --needed base-devel mingw-w64-x86_64-toolchain python pystache python-six mingw-w64-x86_64-doxygen mingw-w64-x86_64-perl mingw-w64-x86_64-yasm mingw-w64-x86_64-gawk mingw-w64-x86_64-bzip2 mingw-w64-x86_64-nasm mingw-w64-x86_64-sed mingw-w64-x86_64-intltool mingw-w64-x86_64-graphviz ``` -------------------------------- ### Install iOS BCToolbox Framework Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bctoolbox/src/CMakeLists.txt Installs the bctoolbox-ios framework for iOS if the platform is Apple and iOS. It specifies installation destinations and permissions for the core component. ```cmake if(APPLE AND IOS) install(TARGETS bctoolbox-ios EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT core ) endif() ``` -------------------------------- ### Configure gdb.setup Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/cmake/Android/gdbserver/CMakeLists.txt Configures the gdb.setup file using a template. The @ONLY option ensures that only variables defined in the CMakeLists.txt file are substituted. ```cmake configure_file(gdb.setup.in gdb.setup @ONLY) ``` -------------------------------- ### Install oRTP Library Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/ortp/src/CMakeLists.txt Configures the installation of the 'ortp' target, specifying destinations for runtime, library, archive, and framework files. It also sets file permissions for installed components. ```cmake install(TARGETS ortp EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ``` -------------------------------- ### Install Belle SIP Tester Library (iOS) Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belle-sip/tester/CMakeLists.txt Installs the 'libbelle-sip-tester' library for iOS. It configures properties for framework building and specifies installation destinations for various artifact types. ```cmake if (IOS) set_target_properties(libbelle-sip-tester PROPERTIES FRAMEWORK TRUE MACOSX_FRAMEWORK_IDENTIFIER com.belledonne-communications.libbelle-sip-tester MACOSX_FRAMEWORK_INFO_PLIST "${PROJECT_SOURCE_DIR}/build/osx/Info.plist.in" PUBLIC_HEADER "belle_sip_tester_utils.h" ) install(TARGETS libbelle-sip-tester EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) else() install(TARGETS libbelle-sip-tester EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() ``` -------------------------------- ### Configure Provisioning Documentation Output Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/wrappers/csharp/CMakeLists.txt Configures the output file for provisioning configuration documentation and generates a raw version from a template. ```cmake set(PROVISIONING_DOC_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.dox) configure_file("${PROJECT_SOURCE_DIR}/coreapi/help/doc/doxygen/provisioning_configuration_key.dox.in" "${PROVISIONING_DOC_OUTPUT_FILE}.raw") ``` -------------------------------- ### Install belr Tool Binaries and Libraries Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/tools/CMakeLists.txt Installs the belr-parse and belr-compiler targets to the runtime, library, and archive destinations, setting specific file permissions. This installation is skipped for iOS builds. ```cmake if(NOT IOS) install(TARGETS belr-parse belr-compiler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() ``` -------------------------------- ### Android Build Configuration and Build Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/README.md Configure and build the Android SDK. Ensure you have the Android SDK and NDK installed or use the provided Docker image. ```bash # Configure the build cmake --preset=android-sdk -B build-android -DCMAKE_BUILD_TYPE=RelWithDebInfo # Build cmake --build build-android --parallel ``` -------------------------------- ### Copy NuGet Packages to Install Prefix Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/cmake/NuGet/Windows/CMakeLists.txt Adds another custom command to the 'nuget' target that copies the generated 'packages' directory to the installation prefix. This ensures the packages are available in the final installation location. ```cmake add_custom_command(TARGET nuget COMMAND ${CMAKE_COMMAND} "-E" "copy_directory" "${CMAKE_CURRENT_BINARY_DIR}/packages" "${CMAKE_INSTALL_PREFIX}/packages" WORKING_DIRECTORY ${LINPHONESDK_OUTPUT_DIR} ) ``` -------------------------------- ### Configure QSA and QnxAudioManager Support Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/CMakeLists.txt Finds QSA and QnxAudioManager libraries, which are required. ```cmake if(ENABLE_QSA) find_package(QSA REQUIRED) find_package(QnxAudioManager REQUIRED) endif() ``` -------------------------------- ### Conditional Swift Wrapper Compilation and Installation Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/wrappers/swift/CMakeLists.txt This snippet conditionally compiles and installs the Swift wrapper source if wrapper compilation is disabled. It adds a custom target for the Swift source and installs the generated Swift file. ```cmake if(NOT ENABLE_SWIFT_WRAPPER_COMPILATION) add_custom_target(linphoneswsource ALL DEPENDS LinphoneWrapper.swift) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LinphoneWrapper.swift" DESTINATION "${CMAKE_INSTALL_DATADIR}/linphonesw/" ) endif() ``` -------------------------------- ### Build BZRTP with CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/bzrtp/README.md Standard commands to configure, build, and install the BZRTP library using CMake. Ensure dependencies are available in specified paths. ```bash cmake . -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= make make install ``` -------------------------------- ### Windows Build Configuration Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/README.md Configure the Windows project using the windows-sdk preset. Ensure Visual Studio 2022 or later is installed. ```bash cmake --preset=windows-sdk -B build-windows ``` -------------------------------- ### Install Belr Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/include/CMakeLists.txt Installs the Belr header files to the 'include/belr' directory within the project's installation path. It also sets read and write permissions for the owner, and read permissions for the group and world. ```cmake install(FILES ${BELR_HEADER_FILES} DESTINATION include/belr PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ``` -------------------------------- ### Define Main WebRTC Source List Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/CMakeLists.txt Initializes the WEBRTC_SRC list with the main C file. ```cmake set(WEBRTC_SRC mswebrtc.c ) ``` -------------------------------- ### Install Ring Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/src/CMakeLists.txt Installs ring files to the linphone rings directory if RING_FILES is set and not on Apple/iOS. ```cmake if(RING_FILES) install(FILES ${RING_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/sounds/linphone/rings" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) endif() ``` -------------------------------- ### Build Python Wrapper and Wheel Package Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/README.md Builds the Linphone SDK with Python wrapper and documentation enabled, then installs and generates a wheel package. Ensure Python 3.10+ and necessary tools (cython, pdoc, wheel) are installed. ```bash cmake --preset=default -B build-python -DENABLE_PYTHON_WRAPPER=ON -DENABLE_DOC=ON cmake --build build-python --target install cmake --build build-python --target wheel ``` -------------------------------- ### Install Tester Certificate Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/tester/CMakeLists.txt Installs various certificate files for the liblinphone-tester component into designated subdirectories. ```cmake install(FILES ${CERTIFICATE_ALT_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/liblinphone-tester/certificates/altname") install(FILES ${CERTIFICATE_CLIENT_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/liblinphone-tester/certificates/client") install(FILES ${CERTIFICATE_CN_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/liblinphone-tester/certificates/cn") ``` -------------------------------- ### Install Enums Header Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/include/CMakeLists.txt Installs header files related to enums into a sub-directory named 'enums'. ```cmake install(FILES ${ENUMS_HEADER_FILES} DESTINATION "${DEST_ROOT_DIRECTORY}/enums" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Install mswebrtc Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mswebrtc/CMakeLists.txt Installs the mswebrtc target and exports it under the LibLinphoneTargets configuration. This makes the library available for other projects. ```cmake install(TARGETS mswebrtc EXPORT LibLinphoneTargets ``` -------------------------------- ### Install Sound Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/src/CMakeLists.txt Installs sound files to the linphone sounds directory if ENABLE_ASSETS and SOUND_FILES are set and not on Apple/iOS. ```cmake if(ENABLE_ASSETS AND SOUND_FILES) install(FILES ${SOUND_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/sounds/linphone" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) endif() ``` -------------------------------- ### Install Grammar Files Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/src/CMakeLists.txt Installs grammar files to the belr grammars directory if the GRAMMAR_FILES variable is set and not on Apple/iOS. ```cmake if(GRAMMAR_FILES) install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/belr/grammars" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) endif() ``` -------------------------------- ### Install Tester Header for Mobile Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/tester/CMakeLists.txt Installs the liblinphone_tester.h header file to the linphone include directory for mobile builds. ```cmake install(FILES "liblinphone_tester.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/linphone PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ``` -------------------------------- ### Installing Exported Targets in CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/CMakeLists.txt Installs the exported targets for the project. This allows other CMake projects to link against your library. ```cmake install(EXPORT ${PROJECT_NAME}Targets FILE "${PROJECT_NAME}Targets.cmake" DESTINATION ${CMAKE_MODULES_INSTALL_DIR} ) ``` -------------------------------- ### Create PostQuantumCryptoEngine Tester Executable Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/postquantumcryptoengine/tester/CMakeLists.txt Creates an executable target named 'pqcrypto-tester' using the defined C and C++ source files. The linker language is explicitly set to CXX. ```cmake add_executable(pqcrypto-tester ${POSTQUANTUMCRYPTOENGINE_TEST_C_SOURCES} ${POSTQUANTUMCRYPTOENGINE_TEST_CXX_SOURCES}) set_target_properties(pqcrypto-tester PROPERTIES LINKER_LANGUAGE CXX) ``` -------------------------------- ### Build Belr and Skip Install RPATH Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belr/README.md Invokes CMake with -DCMAKE_SKIP_INSTALL_RPATH=ON to ensure installed binaries are stripped of any rpath. ```bash cmake . -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= -DCMAKE_SKIP_INSTALL_RPATH=ON ``` -------------------------------- ### Build Belle-sip with CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/belle-sip/README.md Standard commands to build and install the Belle-sip library using CMake. Ensure dependencies are met before building. ```bash cmake . make make install ``` -------------------------------- ### Process Provisioning Configuration Documentation Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/liblinphone/wrappers/python/CMakeLists.txt Processes a raw doxygen XML file into a Markdown file for documentation. This involves multiple sed commands to reformat the content, convert HTML tags to Markdown, and adjust specific Linphone syntax. ```cmake configure_file(${PROJECT_SOURCE_DIR}/coreapi/help/doc/doxygen/simple_provisioning_configuration_key.dox.in ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md.raw) add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md" COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} 's/\#Linphone\(\[A-Za-z\]+\)/\`\\1\`/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md.raw > ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\/\\*//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\\*\\///g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\[\[:space:\]\]*\\*\[\[:space:\]\]*//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\[\[:space:\]\]*${SED_BACKSLASH}defgroup\[\[:space:\]\]+\[A-Za-z\\_\]+\[\[:space:\]\]+\(\[A-Za-z\[:space:\]\]+\)/\\# \1/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/${SED_ESCAPE_CHARACTER}\\(.*\[\[:alnum:\]\]+\)${SED_ESCAPE_CHARACTER}\<\/h2${SED_ESCAPE_CHARACTER}\>/\\#\\# \1/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/${SED_ESCAPE_CHARACTER}\\(.*\[\[:alnum:\]\]+\)${SED_ESCAPE_CHARACTER}\<\/li${SED_ESCAPE_CHARACTER}\>/- \1/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/${SED_ESCAPE_CHARACTER}\//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/${SED_ESCAPE_CHARACTER}\<\/ul${SED_ESCAPE_CHARACTER}\>//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/Table ${SED_BACKSLASH}ref \[A-Za-z\\_\]\+ \"[A-Za-z\[:space:\]\\_\\]+\"/The table below/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/${SED_ESCAPE_CHARACTER}\\(.*\[\[:alnum:\]\]+\)${SED_ESCAPE_CHARACTER}\<\/i${SED_ESCAPE_CHARACTER}\>/\1/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\_\#\#\[\[:alnum:\]\]\(.*\[\[:alnum:\]\]+\)/\U\1/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/\_\#/_/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/linphone::\(\[\[:alnum:\]\]+\)::\_\(\[\[:alnum:\]\_\]+\)\\((\\\)\\/\`\\1\\.\\2\\3\`/g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/set_//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md COMMAND sed -r ${SED_BINARY_MODE} ${SED_IN_PLACE_EDIT_ARG} 's/get_//g' ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/provisioning_configuration_key.md.raw ) ``` -------------------------------- ### Skip Install RPATH with CMake Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/ortp/README.md When invoking CMake for packaging, use '-DCMAKE_SKIP_INSTALL_RPATH=ON' to ensure installed binaries are stripped of any rpath. ```bash -DCMAKE_SKIP_INSTALL_RPATH=ON ``` -------------------------------- ### Install Mediastreamer2 Target Source: https://github.com/belledonnecommunications/linphone-sdk/blob/master/mediastreamer2/src/CMakeLists.txt Installs the mediastreamer2 target, including runtime, library, archive, and framework destinations, with specified permissions. ```cmake install(TARGETS mediastreamer2 EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION Frameworks PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ```