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 # 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_MAJOR_VERSION 0)
set(LIBWEBRTC_MINOR_VERSION 0) set(LIBWEBRTC_MINOR_VERSION 0)
set(LIBWEBRTC_PATCH_VERSION 1) set(LIBWEBRTC_PATCH_VERSION 1)
set(LIBWEBRTC_BUILD_VERSION rc.4) set(LIBWEBRTC_BUILD_VERSION rc.4)
set(LIBWEBRTC_API_VERSION 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 set(LIBWEBRTC_VERSION
${LIBWEBRTC_API_VERSION}-${LIBWEBRTC_BUILD_VERSION} ${LIBWEBRTC_API_VERSION}-${LIBWEBRTC_BUILD_VERSION})
)
set(LIBWEBRTC_LIBRARY_PROPERTIES ${LIBWEBRTC_LIBRARY_PROPERTIES} set(LIBWEBRTC_LIBRARY_PROPERTIES ${LIBWEBRTC_LIBRARY_PROPERTIES}
VERSION "${LIBWEBRTC_VERSION}" VERSION "${LIBWEBRTC_VERSION}"
SOVERSION "${LIBWEBRTC_API_VERSION}" SOVERSION "${LIBWEBRTC_API_VERSION}")
)
set(LIBWEBRTC_WEBRTC_REVISION 7502401788fcba5c9f81a9e4701e2f0831e78698)
# #
# Directories # Directories
# #
if(NOT LIBWEBRTC_INSTALL_BIN_DIR) if (NOT LIBWEBRTC_INSTALL_BIN_DIR)
set(LIBWEBRTC_INSTALL_BIN_DIR "bin") set(LIBWEBRTC_INSTALL_BIN_DIR "bin")
endif() endif ()
if(NOT LIBWEBRTC_INSTALL_LIB_DIR) if (NOT LIBWEBRTC_INSTALL_LIB_DIR)
set(LIBWEBRTC_INSTALL_LIB_DIR "lib") set(LIBWEBRTC_INSTALL_LIB_DIR "lib")
endif() endif ()
if(NOT LIBWEBRTC_INSTALL_DATA_DIR) if (NOT LIBWEBRTC_INSTALL_DATA_DIR)
set(LIBWEBRTC_INSTALL_DATA_DIR "share") set(LIBWEBRTC_INSTALL_DATA_DIR "share")
endif() endif ()
if(NOT LIBWEBRTC_INSTALL_INCLUDE_DIR) if (NOT LIBWEBRTC_INSTALL_INCLUDE_DIR)
set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include") set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include")
endif() endif ()
set(LIBWEBRTC_LIBRARY_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX}) 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_BUILD_ROOT ${CMAKE_SOURCE_DIR}/src/out/Default)
set(LIBWEBRTC_CHROMIUM_DEPS https://github.com/aisouard/libwebrtc-chromium-deps.git) set(LIBWEBRTC_CHROMIUM_DEPS https://github.com/aisouard/libwebrtc-chromium-deps.git)
set(LIBWEBRTC_WEBRTC_REVISION 7502401788fcba5c9f81a9e4701e2f0831e78698)
add_subdirectory(Targets) add_subdirectory(Targets)
if(BUILD_SAMPLES) if (BUILD_SAMPLES)
add_subdirectory(Samples) add_subdirectory(Samples)
endif(BUILD_SAMPLES) endif (BUILD_SAMPLES)

View file

@ -1,38 +1,36 @@
set(ENV_COMMAND export)
set(ENV_SEP ":")
set(DEPOTTOOLS_PATH ${CMAKE_SOURCE_DIR}/Dependencies/depot_tools) 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 macro(add_libwebrtc_command
ARG_NAME ARG_NAME
ARG_OUTPUT ARG_OUTPUT
ARG_COMMAND ARG_COMMAND
ARG_WORKING_DIRECTORY ARG_WORKING_DIRECTORY
ARG_COMMENT ARG_COMMENT)
) set(ARG_DEPENDENCIES ${ARGN})
set(ARG_DEPENDENCIES ${ARGN})
if (WIN32)
add_custom_command( add_custom_command(
OUTPUT ${ARG_OUTPUT} OUTPUT ${ARG_OUTPUT}
COMMAND ${ENV_COMMAND} "DEPOT_TOOLS_WIN_TOOLCHAIN=0" COMMAND set "DEPOT_TOOLS_WIN_TOOLCHAIN=0"
COMMAND ${ENV_COMMAND} "PATH=${DEPOTTOOLS_PATH}${ENV_SEP}$ENV{PATH}" COMMAND set "PATH=${DEPOTTOOLS_PATH};${DEPOTTOOLS_PATH}/python276_bin;$ENV{PATH}"
COMMAND ${ARG_COMMAND} COMMAND ${ARG_COMMAND}
WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} 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( add_custom_target(
${ARG_NAME} ALL ${ARG_NAME} ALL
DEPENDS ${ARG_OUTPUT} DEPENDS ${ARG_OUTPUT})
)
list(LENGTH ARG_DEPENDENCIES NUM_ARG_DEPENDENCIES) list(LENGTH ARG_DEPENDENCIES NUM_ARG_DEPENDENCIES)
if (${NUM_ARG_DEPENDENCIES} GREATER 0) if (${NUM_ARG_DEPENDENCIES} GREATER 0)
add_dependencies(${ARG_NAME} ${ARG_DEPENDENCIES}) add_dependencies(${ARG_NAME} ${ARG_DEPENDENCIES})
endif () endif ()
endmacro() endmacro()

View file

@ -1,10 +1,8 @@
find_program(DEPOTTOOLS_GCLIENT_EXECUTABLE find_program(DEPOTTOOLS_GCLIENT_EXECUTABLE
NAMES gclient gclient.bat 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) include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
find_package_handle_standard_args(DepotTools find_package_handle_standard_args(DepotTools
REQUIRED_VARS DEPOTTOOLS_GCLIENT_EXECUTABLE 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( find_path(LIBWEBRTC_INCLUDE_DIR typedefs.h
LIBWEBRTC_INCLUDE_DIR typedefs.h HINTS
HINTS ENV LIBWEBRTCDIR
ENV LIBWEBRTCDIR PATH_SUFFIXES webrtc
PATH_SUFFIXES webrtc include/webrtc include)
include/webrtc include
)
find_library( find_library(LIBWEBRTC_LIBRARY
LIBWEBRTC_LIBRARY NAMES webrtc
NAMES webrtc HINTS
HINTS ENV LIBWEBRTCDIR
ENV LIBWEBRTCDIR PATH_SUFFIXES lib)
PATH_SUFFIXES lib
)
mark_as_advanced(LIBWEBRTC_LIBRARY LIBWEBRTC_INCLUDE_DIR) mark_as_advanced(LIBWEBRTC_LIBRARY LIBWEBRTC_INCLUDE_DIR)

View file

@ -6,38 +6,36 @@ include(Common)
set(LIBWEBRTC_GEN_ARGS use_gold=false) 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) 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) 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}") set(GENERATE_COMMAND gn gen out/Default --args="${LIBWEBRTC_GEN_ARGS}")
add_libwebrtc_command(libwebrtc_generate_build add_libwebrtc_command(libwebrtc_generate_build
${CMAKE_BINARY_DIR}/Nevermind ${CMAKE_BINARY_DIR}/Nevermind
"${GENERATE_COMMAND}" "${GENERATE_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Generate build files" "Generate build files"
libwebrtc_links libwebrtc_links)
)
# #
# Run ninja # Run ninja
# #
set(BUILD_WEBRTC_COMMAND 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 add_libwebrtc_command(libwebrtc_build
${CMAKE_BINARY_DIR}/src/out/Default/obj/root.stamp ${CMAKE_BINARY_DIR}/src/out/Default/obj/root.stamp
"${BUILD_WEBRTC_COMMAND}" "${BUILD_WEBRTC_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Build WebRTC" "Build WebRTC"
libwebrtc_generate_build libwebrtc_generate_build)
)
# #
# Merge libraries into a single one # 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}) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_LIB_DIR})
set(MERGE_COMMAND 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 add_libwebrtc_command(libwebrtc_merge
${LIBWEBRTC_LIBRARY_PATH} ${LIBWEBRTC_LIBRARY_PATH}
"${MERGE_COMMAND}" "${MERGE_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}" "Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}"
libwebrtc_build libwebrtc_build)
)

View file

@ -5,47 +5,43 @@ include(Common)
# #
set(GCLIENT_CONFIG_COMMAND set(GCLIENT_CONFIG_COMMAND
${DEPOTTOOLS_GCLIENT_EXECUTABLE} config --name src ${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 add_libwebrtc_command(libwebrtc_config
${CMAKE_BINARY_DIR}/.gclient ${CMAKE_BINARY_DIR}/.gclient
"${GCLIENT_CONFIG_COMMAND}" "${GCLIENT_CONFIG_COMMAND}"
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
"Configuring gclient to pull webrtc code" "Configuring gclient to pull webrtc code")
)
# #
# Sync # Sync
# #
set(GCLIENT_SYNC_COMMAND set(GCLIENT_SYNC_COMMAND
${DEPOTTOOLS_GCLIENT_EXECUTABLE} sync ${DEPOTTOOLS_GCLIENT_EXECUTABLE} sync
--revision ${LIBWEBRTC_WEBRTC_REVISION} -n -D --revision ${LIBWEBRTC_WEBRTC_REVISION} -n -D)
)
add_libwebrtc_command(libwebrtc_sync add_libwebrtc_command(libwebrtc_sync
${CMAKE_BINARY_DIR}/src/all.gyp ${CMAKE_BINARY_DIR}/src/all.gyp
"${GCLIENT_SYNC_COMMAND}" "${GCLIENT_SYNC_COMMAND}"
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
"Retrieving WebRTC source code" "Retrieving WebRTC source code"
libwebrtc_config libwebrtc_config)
)
# #
# Sync Chromium # 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 add_libwebrtc_command(libwebrtc_chromium_deps
${CMAKE_BINARY_DIR}/src/chromium/src ${CMAKE_BINARY_DIR}/src/chromium/src
"${GIT_CLONE_COMMAND}" "${GIT_CLONE_COMMAND}"
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
"Retrieving Chromium dependencies" "Retrieving Chromium dependencies"
libwebrtc_sync libwebrtc_sync)
)
# #
# Update Clang # Update Clang
@ -54,12 +50,11 @@ add_libwebrtc_command(libwebrtc_chromium_deps
set(UPDATE_CLANG_COMMAND python chromium/src/tools/clang/scripts/update.py) set(UPDATE_CLANG_COMMAND python chromium/src/tools/clang/scripts/update.py)
add_libwebrtc_command(libwebrtc_clang add_libwebrtc_command(libwebrtc_clang
${CMAKE_BINARY_DIR}/src/chromium/src/third_party/llvm-build ${CMAKE_BINARY_DIR}/src/chromium/src/third_party/llvm-build
"${UPDATE_CLANG_COMMAND}" "${UPDATE_CLANG_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Updating clang" "Updating clang"
libwebrtc_chromium_deps libwebrtc_chromium_deps)
)
# #
# Setup Links # Setup Links
@ -68,9 +63,8 @@ add_libwebrtc_command(libwebrtc_clang
set(SETUP_LINKS_COMMAND python setup_links.py) set(SETUP_LINKS_COMMAND python setup_links.py)
add_libwebrtc_command(libwebrtc_links add_libwebrtc_command(libwebrtc_links
${CMAKE_BINARY_DIR}/src/tools/clang ${CMAKE_BINARY_DIR}/src/tools/clang
"${SETUP_LINKS_COMMAND}" "${SETUP_LINKS_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Creating symbolic links" "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_MINOR "${LIBWEBRTC_MINOR_VERSION}")
set(CPACK_PACKAGE_VERSION_PATCH "${LIBWEBRTC_PATCH_VERSION}") set(CPACK_PACKAGE_VERSION_PATCH "${LIBWEBRTC_PATCH_VERSION}")
if(WIN) if (WIN)
set(CPACK_GENERATOR "ZIP") set(CPACK_GENERATOR "ZIP")
else(WIN) else (WIN)
set(CPACK_GENERATOR "TGZ") set(CPACK_GENERATOR "TGZ")
endif(WIN) endif (WIN)
if(CMAKE_SYSTEM_NAME MATCHES "Linux") if (CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LIBWEBRTC_PLATFORM "linux") set(LIBWEBRTC_PLATFORM "linux")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(LIBWEBRTC_PLATFORM "mac") set(LIBWEBRTC_PLATFORM "mac")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(LIBWEBRTC_PLATFORM "win32") set(LIBWEBRTC_PLATFORM "win32")
endif() endif ()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
set(LIBWEBRTC_ARCH "arm") set(LIBWEBRTC_ARCH "arm")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
set(LIBWEBRTC_ARCH "x86") set(LIBWEBRTC_ARCH "x86")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$") elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
set(LIBWEBRTC_ARCH "x64") set(LIBWEBRTC_ARCH "x64")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc")
set(LIBWEBRTC_ARCH "ppc") set(LIBWEBRTC_ARCH "ppc")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64") elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64")
set(LIBWEBRTC_ARCH "ppc64") set(LIBWEBRTC_ARCH "ppc64")
else() else ()
set(LIBWEBRTC_ARCH "${CMAKE_SYSTEM_PROCESSOR}") set(LIBWEBRTC_ARCH "${CMAKE_SYSTEM_PROCESSOR}")
endif() endif ()
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
set(CPACK_PACKAGE_FILE_NAME "libwebrtc-${LIBWEBRTC_VERSION}-${LIBWEBRTC_PLATFORM}-${LIBWEBRTC_ARCH}") set(CPACK_PACKAGE_FILE_NAME "libwebrtc-${LIBWEBRTC_VERSION}-${LIBWEBRTC_PLATFORM}-${LIBWEBRTC_ARCH}")