CMake: Fix typos, use 2.8 version

This commit is contained in:
Axel Isouard 2016-10-05 23:35:12 +02:00
parent 0f7a17fdf0
commit 368b57662e
6 changed files with 91 additions and 62 deletions

View file

@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 3.2) cmake_minimum_required(VERSION 2.8)
project(libwebrtc) project(libwebrtc)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_SOURCE_DIR}/CMakeModules) ${CMAKE_SOURCE_DIR}/CMakeModules)
find_package(Git REQUIRED) find_package(Git REQUIRED)
find_package(DepotTools REQUIRED) find_package(DepotTools REQUIRED)
@ -12,35 +12,42 @@ find_package(DepotTools REQUIRED)
# #
option(BUILD_TESTS "Build test binaries" OFF) option(BUILD_TESTS "Build test binaries" OFF)
option(BUILD_SAMPLES "Build samples binaries" ON) option(BUILD_SAMPLES "Build samples binaries" OFF)
# #
# Versioning # Versioning
# #
execute_process( execute_process(
COMMAND git log -1 --format=%h COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE 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 1) set(LIBWEBRTC_MAJOR_VERSION 1)
set(LIBWEBRTC_MINOR_VERSION 0) set(LIBWEBRTC_MINOR_VERSION 0)
set(LIBWEBRTC_PATCH_VERSION 0) set(LIBWEBRTC_PATCH_VERSION 0)
set(LIBWEBRTC_BUILD_VERSION ${GIT_COMMIT_HASH}) set(LIBWEBRTC_BUILD_VERSION ${GIT_COMMIT_HASH})
set(LIBWEBRTC_VERSION
${LIBWEBRTC_MAJOR_VERSION}.${LIBWEBRTC_MINOR_VERSION}.${LIBWEBRTC_PATCH_VERSION}-${LIBWEBRTC_BUILD_VERSION}
)
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
${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}"
) )
# #
# Directories # Directories
@ -58,17 +65,17 @@ 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()
if(NOT LIBWEBRTC_INSTALL_CMAKE_DIR)
set(LIBWEBRTC_INSTALL_CMAKE_DIR "lib")
endif()
set(LIBWEBRTC_LIBRARY ${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX}) set(LIBWEBRTC_LIBRARY_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX})
set(LIBWEBRTC_LIBRARY_PATH ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_LIB_DIR}/${LIBWEBRTC_LIBRARY_NAME})
set(LIBWEBRTC_BUILD_ROOT ${CMAKE_SOURCE_DIR}/src/out/Default) set(LIBWEBRTC_BUILD_ROOT ${CMAKE_SOURCE_DIR}/src/out/Default)
set(LIBWEBRTC_CHROMIUM_DEPS git@github.com:aisouard/libwebrtc-chromium-deps.git) set(LIBWEBRTC_CHROMIUM_DEPS https://github.com/aisouard/libwebrtc-chromium-deps.git)
set(LIBWEBRTC_WEBRTC_REVISION 7502401788fcba5c9f81a9e4701e2f0831e78698) 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,5 +1,3 @@
set(LIBWEBRTC_ENV_COMMAND ${CMAKE_COMMAND} -E env \"PATH=${CMAKE_SOURCE_DIR}/Dependencies/depot_tools:$ENV{PATH}\")
macro(add_libwebrtc_command macro(add_libwebrtc_command
ARG_NAME ARG_NAME
ARG_OUTPUT ARG_OUTPUT
@ -11,7 +9,7 @@ macro(add_libwebrtc_command
add_custom_command( add_custom_command(
OUTPUT ${ARG_OUTPUT} OUTPUT ${ARG_OUTPUT}
COMMAND ${ARG_COMMAND} COMMAND export "PATH=${CMAKE_SOURCE_DIR}/Dependencies/depot_tools:$ENV{PATH}" && ${ARG_COMMAND}
WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY}
COMMENT ${ARG_COMMENT} COMMENT ${ARG_COMMENT}
) )
@ -25,4 +23,4 @@ macro(add_libwebrtc_command
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

@ -32,7 +32,7 @@ include_directories(${CMAKE_SOURCE_DIR}/out/src)
if(WIN) if(WIN)
add_definitions(-DWEBRTC_WIN) add_definitions(-DWEBRTC_WIN)
else(WIN) else(WIN)
add_definitions(-DWEBRTC_POSIX -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0) add_definitions(-DWEBRTC_POSIX -std=gnu++0x -D_GLIBCXX_USE_CXX11_ABI=0)
set(PEERCONNECTION_SOURCE_FILES ${PEERCONNECTION_SOURCE_FILES} set(PEERCONNECTION_SOURCE_FILES ${PEERCONNECTION_SOURCE_FILES}
UnixConsole.cpp) UnixConsole.cpp)
endif(WIN) endif(WIN)
@ -41,9 +41,7 @@ add_executable(PeerConnection
${PEERCONNECTION_SOURCE_FILES} ${PEERCONNECTION_SOURCE_FILES}
${PEERCONNECTION_HEADER_FILES}) ${PEERCONNECTION_HEADER_FILES})
set(PEERCONNECTION_LIBRARIES set(PEERCONNECTION_LIBRARIES ${LIBWEBRTC_LIBRARY_PATH} Threads::Threads)
${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY}
Threads::Threads)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(PEERCONNECTION_LIBRARIES ${PEERCONNECTION_LIBRARIES} set(PEERCONNECTION_LIBRARIES ${PEERCONNECTION_LIBRARIES}
@ -51,4 +49,4 @@ if(UNIX AND NOT APPLE)
${CMAKE_DL_LIBS}) ${CMAKE_DL_LIBS})
endif(UNIX AND NOT APPLE) endif(UNIX AND NOT APPLE)
target_link_libraries(PeerConnection ${PEERCONNECTION_LIBRARIES}) target_link_libraries(PeerConnection ${PEERCONNECTION_LIBRARIES})

View file

@ -4,18 +4,17 @@ include(Common)
# Generate build files # Generate build files
# #
set(LIBWEBRTC_GEN_ARGS "") 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 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 set(GENERATE_COMMAND gn gen out/Default --args='${LIBWEBRTC_GEN_ARGS}')
${LIBWEBRTC_ENV_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
@ -30,8 +29,7 @@ add_libwebrtc_command(libwebrtc_generate_build
# #
set(BUILD_WEBRTC_COMMAND set(BUILD_WEBRTC_COMMAND
${LIBWEBRTC_ENV_COMMAND} ninja -C out/Default ninja -C out/Default libjingle_peerconnection field_trial_default metrics_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
@ -45,16 +43,15 @@ add_libwebrtc_command(libwebrtc_build
# Merge libraries into a single one # Merge libraries into a single one
# #
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_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 python webrtc/build/merge_libs.py out/Default ${LIBWEBRTC_LIBRARY_PATH})
${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY})
add_libwebrtc_command(libwebrtc_merge add_libwebrtc_command(libwebrtc_merge
${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY} ${LIBWEBRTC_LIBRARY_PATH}
"${MERGE_COMMAND}" "${MERGE_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Merging libraries into ${WEBRTC_LIBRARY}" "Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}"
libwebrtc_build libwebrtc_build
) )

View file

@ -51,11 +51,11 @@ add_libwebrtc_command(libwebrtc_chromium_deps
# Update Clang # Update Clang
# #
set(UPDATE_CLAND_COMMAND ${LIBWEBRTC_ENV_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_CLAND_COMMAND}" "${UPDATE_CLANG_COMMAND}"
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Updating clang" "Updating clang"
libwebrtc_chromium_deps libwebrtc_chromium_deps
@ -65,7 +65,7 @@ add_libwebrtc_command(libwebrtc_clang
# Setup Links # Setup Links
# #
set(SETUP_LINKS_COMMAND ${LIBWEBRTC_ENV_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
@ -73,4 +73,4 @@ add_libwebrtc_command(libwebrtc_links
${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src
"Creating symbolic links" "Creating symbolic links"
libwebrtc_clang libwebrtc_clang
) )

View file

@ -3,27 +3,56 @@
# #
install( install(
FILES ${CMAKE_BINARY_DIR}/${LIBWEBRTC_LIBRARY} FILES ${LIBWEBRTC_LIBRARY_PATH}
DESTINATION ${LIBWEBRTC_INSTALL_LIB_DIR} DESTINATION ${LIBWEBRTC_INSTALL_LIB_DIR}
COMPONENT Libraries COMPONENT Libraries
) )
# #
# Install headers # Install headers
# #
file( install(
GLOB_RECURSE header_files DIRECTORY ${CMAKE_BINARY_DIR}/src/webrtc
RELATIVE ${CMAKE_BINARY_DIR}/src DESTINATION ${LIBWEBRTC_INSTALL_INCLUDE_DIR}
FOLLOW_SYMLINKS FILES_MATCHING PATTERN "*.h"
${CMAKE_BINARY_DIR}/src/webrtc/*.h
) )
foreach(f ${header_files}) #
get_filename_component(RELATIVE_PATH ${f} DIRECTORY) # Create package
install( #
FILES ${CMAKE_BINARY_DIR}/src/${f}
DESTINATION ${LIBWEBRTC_INSTALL_INCLUDE_DIR}/${RELATIVE_PATH} set(CPACK_PACKAGE_NAME "${LIBWEBRTC_MAJOR_VERSION}")
COMPONENT Headers set(CPACK_PACKAGE_VERSION_MAJOR "${LIBWEBRTC_MAJOR_VERSION}")
) set(CPACK_PACKAGE_VERSION_MINOR "${LIBWEBRTC_MINOR_VERSION}")
endforeach() set(CPACK_PACKAGE_VERSION_PATCH "${LIBWEBRTC_PATCH_VERSION}")
if(WIN)
set(CPACK_GENERATOR "ZIP")
else(WIN)
set(CPACK_GENERATOR "TGZ")
endif(WIN)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
set(LIBWEBRTC_ARCH "arm")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
if(APPLE)
set(LIBWEBRTC_ARCH "x86")
else()
set(LIBWEBRTC_ARCH "i386")
endif()
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
set(LIBWEBRTC_ARCH "x86_64")
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-${GIT_COMMIT_TAG}-${CMAKE_SYSTEM_NAME}-${LIBWEBRTC_ARCH}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "libwebrtc")
include(CPack)