CMake: Fix indentation + Windows specific commands

This commit is contained in:
Axel Isouard 2016-10-09 08:42:36 +02:00
parent 452450fd20
commit edf4abdcf0
7 changed files with 140 additions and 173 deletions

View file

@ -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)
if (NOT LIBWEBRTC_INSTALL_BIN_DIR)
set(LIBWEBRTC_INSTALL_BIN_DIR "bin")
endif()
if(NOT LIBWEBRTC_INSTALL_LIB_DIR)
endif ()
if (NOT LIBWEBRTC_INSTALL_LIB_DIR)
set(LIBWEBRTC_INSTALL_LIB_DIR "lib")
endif()
if(NOT LIBWEBRTC_INSTALL_DATA_DIR)
endif ()
if (NOT LIBWEBRTC_INSTALL_DATA_DIR)
set(LIBWEBRTC_INSTALL_DATA_DIR "share")
endif()
if(NOT LIBWEBRTC_INSTALL_INCLUDE_DIR)
endif ()
if (NOT LIBWEBRTC_INSTALL_INCLUDE_DIR)
set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include")
endif()
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)
if (BUILD_SAMPLES)
add_subdirectory(Samples)
endif(BUILD_SAMPLES)
endif (BUILD_SAMPLES)

View file

@ -1,35 +1,33 @@
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
)
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 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}
)
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}
)
DEPENDS ${ARG_OUTPUT})
list(LENGTH ARG_DEPENDENCIES NUM_ARG_DEPENDENCIES)
if (${NUM_ARG_DEPENDENCIES} GREATER 0)

View file

@ -1,10 +1,8 @@
find_program(DEPOTTOOLS_GCLIENT_EXECUTABLE
NAMES gclient gclient.bat
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/depot_tools
)
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."
)
FAIL_MESSAGE "Could not find the gclient executable.")

View file

@ -1,17 +1,13 @@
find_path(
LIBWEBRTC_INCLUDE_DIR typedefs.h
find_path(LIBWEBRTC_INCLUDE_DIR typedefs.h
HINTS
ENV LIBWEBRTCDIR
PATH_SUFFIXES webrtc
include/webrtc include
)
include/webrtc include)
find_library(
LIBWEBRTC_LIBRARY
find_library(LIBWEBRTC_LIBRARY
NAMES webrtc
HINTS
ENV LIBWEBRTCDIR
PATH_SUFFIXES lib
)
PATH_SUFFIXES lib)
mark_as_advanced(LIBWEBRTC_LIBRARY LIBWEBRTC_INCLUDE_DIR)

View file

@ -6,13 +6,13 @@ include(Common)
set(LIBWEBRTC_GEN_ARGS use_gold=false)
if(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)
endif (NOT CMAKE_BUILD_TYPE MATCHES DEBUG)
if(NOT BUILD_TESTS)
if (NOT BUILD_TESTS)
set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} rtc_include_tests=false)
endif(NOT BUILD_TESTS)
endif (NOT BUILD_TESTS)
set(GENERATE_COMMAND gn gen out/Default --args="${LIBWEBRTC_GEN_ARGS}")
@ -21,8 +21,7 @@ add_libwebrtc_command(libwebrtc_generate_build
"${GENERATE_COMMAND}"
${CMAKE_BINARY_DIR}/src
"Generate build files"
libwebrtc_links
)
libwebrtc_links)
#
# Run ninja
@ -36,8 +35,7 @@ add_libwebrtc_command(libwebrtc_build
"${BUILD_WEBRTC_COMMAND}"
${CMAKE_BINARY_DIR}/src
"Build WebRTC"
libwebrtc_generate_build
)
libwebrtc_generate_build)
#
# Merge libraries into a single one
@ -53,5 +51,4 @@ add_libwebrtc_command(libwebrtc_merge
"${MERGE_COMMAND}"
${CMAKE_BINARY_DIR}/src
"Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}"
libwebrtc_build
)
libwebrtc_build)

View file

@ -6,15 +6,13 @@ include(Common)
set(GCLIENT_CONFIG_COMMAND
${DEPOTTOOLS_GCLIENT_EXECUTABLE} config --name src
https://chromium.googlesource.com/external/webrtc.git
)
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"
)
"Configuring gclient to pull webrtc code")
#
# Sync
@ -22,30 +20,28 @@ add_libwebrtc_command(libwebrtc_config
set(GCLIENT_SYNC_COMMAND
${DEPOTTOOLS_GCLIENT_EXECUTABLE} sync
--revision ${LIBWEBRTC_WEBRTC_REVISION} -n -D
)
--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
)
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
)
libwebrtc_sync)
#
# Update Clang
@ -58,8 +54,7 @@ add_libwebrtc_command(libwebrtc_clang
"${UPDATE_CLANG_COMMAND}"
${CMAKE_BINARY_DIR}/src
"Updating clang"
libwebrtc_chromium_deps
)
libwebrtc_chromium_deps)
#
# Setup Links
@ -72,5 +67,4 @@ add_libwebrtc_command(libwebrtc_links
"${SETUP_LINKS_COMMAND}"
${CMAKE_BINARY_DIR}/src
"Creating symbolic links"
libwebrtc_clang
)
libwebrtc_clang)

View file

@ -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)
if (WIN)
set(CPACK_GENERATOR "ZIP")
else(WIN)
else (WIN)
set(CPACK_GENERATOR "TGZ")
endif(WIN)
endif (WIN)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LIBWEBRTC_PLATFORM "linux")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(LIBWEBRTC_PLATFORM "mac")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(LIBWEBRTC_PLATFORM "win32")
endif()
endif ()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
set(LIBWEBRTC_ARCH "arm")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
set(LIBWEBRTC_ARCH "x86")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
set(LIBWEBRTC_ARCH "x64")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc")
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc")
set(LIBWEBRTC_ARCH "ppc")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64")
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64")
set(LIBWEBRTC_ARCH "ppc64")
else()
else ()
set(LIBWEBRTC_ARCH "${CMAKE_SYSTEM_PROCESSOR}")
endif()
endif ()
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
set(CPACK_PACKAGE_FILE_NAME "libwebrtc-${LIBWEBRTC_VERSION}-${LIBWEBRTC_PLATFORM}-${LIBWEBRTC_ARCH}")