diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b6dbf2..f87948a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,53 +18,38 @@ option(BUILD_SAMPLES "Build samples binaries" OFF) # Versioning # -execute_process( - COMMAND git log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -execute_process( - COMMAND git describe - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_TAG - OUTPUT_STRIP_TRAILING_WHITESPACE -) - set(LIBWEBRTC_MAJOR_VERSION 0) set(LIBWEBRTC_MINOR_VERSION 0) set(LIBWEBRTC_PATCH_VERSION 1) set(LIBWEBRTC_BUILD_VERSION rc.4) set(LIBWEBRTC_API_VERSION - "${LIBWEBRTC_MAJOR_VERSION}.${LIBWEBRTC_MINOR_VERSION}.${LIBWEBRTC_PATCH_VERSION}" -) + "${LIBWEBRTC_MAJOR_VERSION}.${LIBWEBRTC_MINOR_VERSION}.${LIBWEBRTC_PATCH_VERSION}") set(LIBWEBRTC_VERSION - ${LIBWEBRTC_API_VERSION}-${LIBWEBRTC_BUILD_VERSION} -) + ${LIBWEBRTC_API_VERSION}-${LIBWEBRTC_BUILD_VERSION}) set(LIBWEBRTC_LIBRARY_PROPERTIES ${LIBWEBRTC_LIBRARY_PROPERTIES} VERSION "${LIBWEBRTC_VERSION}" - SOVERSION "${LIBWEBRTC_API_VERSION}" -) + SOVERSION "${LIBWEBRTC_API_VERSION}") + +set(LIBWEBRTC_WEBRTC_REVISION 7502401788fcba5c9f81a9e4701e2f0831e78698) # # Directories # -if(NOT LIBWEBRTC_INSTALL_BIN_DIR) - set(LIBWEBRTC_INSTALL_BIN_DIR "bin") -endif() -if(NOT LIBWEBRTC_INSTALL_LIB_DIR) - set(LIBWEBRTC_INSTALL_LIB_DIR "lib") -endif() -if(NOT LIBWEBRTC_INSTALL_DATA_DIR) - set(LIBWEBRTC_INSTALL_DATA_DIR "share") -endif() -if(NOT LIBWEBRTC_INSTALL_INCLUDE_DIR) - set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include") -endif() +if (NOT LIBWEBRTC_INSTALL_BIN_DIR) + set(LIBWEBRTC_INSTALL_BIN_DIR "bin") +endif () +if (NOT LIBWEBRTC_INSTALL_LIB_DIR) + set(LIBWEBRTC_INSTALL_LIB_DIR "lib") +endif () +if (NOT LIBWEBRTC_INSTALL_DATA_DIR) + set(LIBWEBRTC_INSTALL_DATA_DIR "share") +endif () +if (NOT LIBWEBRTC_INSTALL_INCLUDE_DIR) + set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include") +endif () set(LIBWEBRTC_LIBRARY_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX}) @@ -72,10 +57,9 @@ set(LIBWEBRTC_LIBRARY_PATH ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_LIB_DIR}/${LI set(LIBWEBRTC_BUILD_ROOT ${CMAKE_SOURCE_DIR}/src/out/Default) set(LIBWEBRTC_CHROMIUM_DEPS https://github.com/aisouard/libwebrtc-chromium-deps.git) -set(LIBWEBRTC_WEBRTC_REVISION 7502401788fcba5c9f81a9e4701e2f0831e78698) add_subdirectory(Targets) -if(BUILD_SAMPLES) - add_subdirectory(Samples) -endif(BUILD_SAMPLES) +if (BUILD_SAMPLES) + add_subdirectory(Samples) +endif (BUILD_SAMPLES) diff --git a/CMakeModules/Common.cmake b/CMakeModules/Common.cmake index 504310e..d1c5825 100644 --- a/CMakeModules/Common.cmake +++ b/CMakeModules/Common.cmake @@ -1,38 +1,36 @@ -set(ENV_COMMAND export) -set(ENV_SEP ":") set(DEPOTTOOLS_PATH ${CMAKE_SOURCE_DIR}/Dependencies/depot_tools) -if(WIN32) - set(ENV_COMMAND set) - set(ENV_SEP ";") - set(DEPOTTOOLS_PATH "${DEPOTTOOLS_PATH};${DEPOTTOOLS_PATH}/python276_bin;") -endif(WIN32) - macro(add_libwebrtc_command - ARG_NAME - ARG_OUTPUT - ARG_COMMAND - ARG_WORKING_DIRECTORY - ARG_COMMENT -) - set(ARG_DEPENDENCIES ${ARGN}) + ARG_NAME + ARG_OUTPUT + ARG_COMMAND + ARG_WORKING_DIRECTORY + ARG_COMMENT) + set(ARG_DEPENDENCIES ${ARGN}) + if (WIN32) add_custom_command( - OUTPUT ${ARG_OUTPUT} - COMMAND ${ENV_COMMAND} "DEPOT_TOOLS_WIN_TOOLCHAIN=0" - COMMAND ${ENV_COMMAND} "PATH=${DEPOTTOOLS_PATH}${ENV_SEP}$ENV{PATH}" - COMMAND ${ARG_COMMAND} - WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} - COMMENT ${ARG_COMMENT} - ) + OUTPUT ${ARG_OUTPUT} + COMMAND set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + COMMAND set "PATH=${DEPOTTOOLS_PATH};${DEPOTTOOLS_PATH}/python276_bin;$ENV{PATH}" + COMMAND ${ARG_COMMAND} + WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} + COMMENT ${ARG_COMMENT}) + else (WIN32) + set(ENV_PREFIX export PATH=${DEPOTTOOLS_PATH}:$ENV{PATH}) + add_custom_command( + OUTPUT ${ARG_OUTPUT} + COMMAND ${ENV_PREFIX} && ${ARG_COMMAND} + WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} + COMMENT ${ARG_COMMENT}) + endif (WIN32) - add_custom_target( - ${ARG_NAME} ALL - DEPENDS ${ARG_OUTPUT} - ) + add_custom_target( + ${ARG_NAME} ALL + DEPENDS ${ARG_OUTPUT}) - list(LENGTH ARG_DEPENDENCIES NUM_ARG_DEPENDENCIES) - if (${NUM_ARG_DEPENDENCIES} GREATER 0) - add_dependencies(${ARG_NAME} ${ARG_DEPENDENCIES}) - endif () + list(LENGTH ARG_DEPENDENCIES NUM_ARG_DEPENDENCIES) + if (${NUM_ARG_DEPENDENCIES} GREATER 0) + add_dependencies(${ARG_NAME} ${ARG_DEPENDENCIES}) + endif () endmacro() diff --git a/CMakeModules/FindDepotTools.cmake b/CMakeModules/FindDepotTools.cmake index ddd6332..54cecff 100644 --- a/CMakeModules/FindDepotTools.cmake +++ b/CMakeModules/FindDepotTools.cmake @@ -1,10 +1,8 @@ find_program(DEPOTTOOLS_GCLIENT_EXECUTABLE - NAMES gclient gclient.bat - PATHS ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/depot_tools - ) + NAMES gclient gclient.bat + PATHS ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/depot_tools) include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) find_package_handle_standard_args(DepotTools - REQUIRED_VARS DEPOTTOOLS_GCLIENT_EXECUTABLE - FAIL_MESSAGE "Could not find the gclient executable." - ) \ No newline at end of file + REQUIRED_VARS DEPOTTOOLS_GCLIENT_EXECUTABLE + FAIL_MESSAGE "Could not find the gclient executable.") \ No newline at end of file diff --git a/CMakeModules/FindLibWebRTC.cmake b/CMakeModules/FindLibWebRTC.cmake index 2bdfa09..a95c313 100644 --- a/CMakeModules/FindLibWebRTC.cmake +++ b/CMakeModules/FindLibWebRTC.cmake @@ -1,17 +1,13 @@ -find_path( - LIBWEBRTC_INCLUDE_DIR typedefs.h - HINTS - ENV LIBWEBRTCDIR - PATH_SUFFIXES webrtc - include/webrtc include -) +find_path(LIBWEBRTC_INCLUDE_DIR typedefs.h + HINTS + ENV LIBWEBRTCDIR + PATH_SUFFIXES webrtc + include/webrtc include) -find_library( - LIBWEBRTC_LIBRARY - NAMES webrtc - HINTS - ENV LIBWEBRTCDIR - PATH_SUFFIXES lib -) +find_library(LIBWEBRTC_LIBRARY + NAMES webrtc + HINTS + ENV LIBWEBRTCDIR + PATH_SUFFIXES lib) mark_as_advanced(LIBWEBRTC_LIBRARY LIBWEBRTC_INCLUDE_DIR) \ No newline at end of file diff --git a/Targets/Build/CMakeLists.txt b/Targets/Build/CMakeLists.txt index 504877f..5924297 100644 --- a/Targets/Build/CMakeLists.txt +++ b/Targets/Build/CMakeLists.txt @@ -6,38 +6,36 @@ include(Common) set(LIBWEBRTC_GEN_ARGS use_gold=false) -if(NOT CMAKE_BUILD_TYPE MATCHES DEBUG) - set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} is_debug=false) -endif(NOT CMAKE_BUILD_TYPE MATCHES DEBUG) +if (NOT CMAKE_BUILD_TYPE MATCHES DEBUG) + set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} is_debug=false) +endif (NOT CMAKE_BUILD_TYPE MATCHES DEBUG) -if(NOT BUILD_TESTS) - set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} rtc_include_tests=false) -endif(NOT BUILD_TESTS) +if (NOT BUILD_TESTS) + set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} rtc_include_tests=false) +endif (NOT BUILD_TESTS) set(GENERATE_COMMAND gn gen out/Default --args="${LIBWEBRTC_GEN_ARGS}") add_libwebrtc_command(libwebrtc_generate_build - ${CMAKE_BINARY_DIR}/Nevermind - "${GENERATE_COMMAND}" - ${CMAKE_BINARY_DIR}/src - "Generate build files" - libwebrtc_links -) + ${CMAKE_BINARY_DIR}/Nevermind + "${GENERATE_COMMAND}" + ${CMAKE_BINARY_DIR}/src + "Generate build files" + libwebrtc_links) # # Run ninja # set(BUILD_WEBRTC_COMMAND - ninja -C out/Default libjingle_peerconnection field_trial_default metrics_default) + ninja -C out/Default libjingle_peerconnection field_trial_default metrics_default) add_libwebrtc_command(libwebrtc_build - ${CMAKE_BINARY_DIR}/src/out/Default/obj/root.stamp - "${BUILD_WEBRTC_COMMAND}" - ${CMAKE_BINARY_DIR}/src - "Build WebRTC" - libwebrtc_generate_build -) + ${CMAKE_BINARY_DIR}/src/out/Default/obj/root.stamp + "${BUILD_WEBRTC_COMMAND}" + ${CMAKE_BINARY_DIR}/src + "Build WebRTC" + libwebrtc_generate_build) # # Merge libraries into a single one @@ -46,12 +44,11 @@ add_libwebrtc_command(libwebrtc_build file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_LIB_DIR}) set(MERGE_COMMAND - python webrtc/build/merge_libs.py out/Default ${LIBWEBRTC_LIBRARY_PATH}) + python webrtc/build/merge_libs.py out/Default ${LIBWEBRTC_LIBRARY_PATH}) add_libwebrtc_command(libwebrtc_merge - ${LIBWEBRTC_LIBRARY_PATH} - "${MERGE_COMMAND}" - ${CMAKE_BINARY_DIR}/src - "Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}" - libwebrtc_build -) + ${LIBWEBRTC_LIBRARY_PATH} + "${MERGE_COMMAND}" + ${CMAKE_BINARY_DIR}/src + "Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}" + libwebrtc_build) diff --git a/Targets/Fetch/CMakeLists.txt b/Targets/Fetch/CMakeLists.txt index 080f1c1..7f73d18 100644 --- a/Targets/Fetch/CMakeLists.txt +++ b/Targets/Fetch/CMakeLists.txt @@ -5,47 +5,43 @@ include(Common) # set(GCLIENT_CONFIG_COMMAND - ${DEPOTTOOLS_GCLIENT_EXECUTABLE} config --name src - https://chromium.googlesource.com/external/webrtc.git -) + ${DEPOTTOOLS_GCLIENT_EXECUTABLE} config --name src + https://chromium.googlesource.com/external/webrtc.git) add_libwebrtc_command(libwebrtc_config - ${CMAKE_BINARY_DIR}/.gclient - "${GCLIENT_CONFIG_COMMAND}" - ${CMAKE_BINARY_DIR} - "Configuring gclient to pull webrtc code" -) + ${CMAKE_BINARY_DIR}/.gclient + "${GCLIENT_CONFIG_COMMAND}" + ${CMAKE_BINARY_DIR} + "Configuring gclient to pull webrtc code") # # Sync # set(GCLIENT_SYNC_COMMAND - ${DEPOTTOOLS_GCLIENT_EXECUTABLE} sync - --revision ${LIBWEBRTC_WEBRTC_REVISION} -n -D -) + ${DEPOTTOOLS_GCLIENT_EXECUTABLE} sync + --revision ${LIBWEBRTC_WEBRTC_REVISION} -n -D) add_libwebrtc_command(libwebrtc_sync - ${CMAKE_BINARY_DIR}/src/all.gyp - "${GCLIENT_SYNC_COMMAND}" - ${CMAKE_BINARY_DIR} - "Retrieving WebRTC source code" - libwebrtc_config -) + ${CMAKE_BINARY_DIR}/src/all.gyp + "${GCLIENT_SYNC_COMMAND}" + ${CMAKE_BINARY_DIR} + "Retrieving WebRTC source code" + libwebrtc_config) # # Sync Chromium # -set(GIT_CLONE_COMMAND git clone ${LIBWEBRTC_CHROMIUM_DEPS} ${CMAKE_BINARY_DIR}/src/chromium/src) +set(GIT_CLONE_COMMAND + git clone ${LIBWEBRTC_CHROMIUM_DEPS} ${CMAKE_BINARY_DIR}/src/chromium/src) add_libwebrtc_command(libwebrtc_chromium_deps - ${CMAKE_BINARY_DIR}/src/chromium/src - "${GIT_CLONE_COMMAND}" - ${CMAKE_BINARY_DIR} - "Retrieving Chromium dependencies" - libwebrtc_sync -) + ${CMAKE_BINARY_DIR}/src/chromium/src + "${GIT_CLONE_COMMAND}" + ${CMAKE_BINARY_DIR} + "Retrieving Chromium dependencies" + libwebrtc_sync) # # Update Clang @@ -54,12 +50,11 @@ add_libwebrtc_command(libwebrtc_chromium_deps set(UPDATE_CLANG_COMMAND python chromium/src/tools/clang/scripts/update.py) add_libwebrtc_command(libwebrtc_clang - ${CMAKE_BINARY_DIR}/src/chromium/src/third_party/llvm-build - "${UPDATE_CLANG_COMMAND}" - ${CMAKE_BINARY_DIR}/src - "Updating clang" - libwebrtc_chromium_deps -) + ${CMAKE_BINARY_DIR}/src/chromium/src/third_party/llvm-build + "${UPDATE_CLANG_COMMAND}" + ${CMAKE_BINARY_DIR}/src + "Updating clang" + libwebrtc_chromium_deps) # # Setup Links @@ -68,9 +63,8 @@ add_libwebrtc_command(libwebrtc_clang set(SETUP_LINKS_COMMAND python setup_links.py) add_libwebrtc_command(libwebrtc_links - ${CMAKE_BINARY_DIR}/src/tools/clang - "${SETUP_LINKS_COMMAND}" - ${CMAKE_BINARY_DIR}/src - "Creating symbolic links" - libwebrtc_clang -) + ${CMAKE_BINARY_DIR}/src/tools/clang + "${SETUP_LINKS_COMMAND}" + ${CMAKE_BINARY_DIR}/src + "Creating symbolic links" + libwebrtc_clang) diff --git a/Targets/Install/CMakeLists.txt b/Targets/Install/CMakeLists.txt index 5557caf..bd5447e 100644 --- a/Targets/Install/CMakeLists.txt +++ b/Targets/Install/CMakeLists.txt @@ -27,33 +27,33 @@ set(CPACK_PACKAGE_VERSION_MAJOR "${LIBWEBRTC_MAJOR_VERSION}") set(CPACK_PACKAGE_VERSION_MINOR "${LIBWEBRTC_MINOR_VERSION}") set(CPACK_PACKAGE_VERSION_PATCH "${LIBWEBRTC_PATCH_VERSION}") -if(WIN) - set(CPACK_GENERATOR "ZIP") -else(WIN) - set(CPACK_GENERATOR "TGZ") -endif(WIN) +if (WIN) + set(CPACK_GENERATOR "ZIP") +else (WIN) + set(CPACK_GENERATOR "TGZ") +endif (WIN) -if(CMAKE_SYSTEM_NAME MATCHES "Linux") - set(LIBWEBRTC_PLATFORM "linux") -elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") - set(LIBWEBRTC_PLATFORM "mac") -elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") - set(LIBWEBRTC_PLATFORM "win32") -endif() +if (CMAKE_SYSTEM_NAME MATCHES "Linux") + set(LIBWEBRTC_PLATFORM "linux") +elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") + set(LIBWEBRTC_PLATFORM "mac") +elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") + set(LIBWEBRTC_PLATFORM "win32") +endif () -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") - set(LIBWEBRTC_ARCH "arm") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") - set(LIBWEBRTC_ARCH "x86") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$") - set(LIBWEBRTC_ARCH "x64") -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") - set(LIBWEBRTC_ARCH "ppc") -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64") - set(LIBWEBRTC_ARCH "ppc64") -else() - set(LIBWEBRTC_ARCH "${CMAKE_SYSTEM_PROCESSOR}") -endif() +if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") + set(LIBWEBRTC_ARCH "arm") +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") + set(LIBWEBRTC_ARCH "x86") +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$") + set(LIBWEBRTC_ARCH "x64") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") + set(LIBWEBRTC_ARCH "ppc") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64") + set(LIBWEBRTC_ARCH "ppc64") +else () + set(LIBWEBRTC_ARCH "${CMAKE_SYSTEM_PROCESSOR}") +endif () set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) set(CPACK_PACKAGE_FILE_NAME "libwebrtc-${LIBWEBRTC_VERSION}-${LIBWEBRTC_PLATFORM}-${LIBWEBRTC_ARCH}")