From 368b57662ef5907f41bda1e78f2409e98e788b55 Mon Sep 17 00:00:00 2001 From: Axel Isouard Date: Wed, 5 Oct 2016 23:35:12 +0200 Subject: [PATCH] CMake: Fix typos, use 2.8 version --- CMakeLists.txt | 49 ++++++++++++--------- CMakeModules/Common.cmake | 6 +-- Samples/PeerConnection/CMakeLists.txt | 8 ++-- Targets/Build/CMakeLists.txt | 21 ++++----- Targets/Fetch/CMakeLists.txt | 8 ++-- Targets/Install/CMakeLists.txt | 61 ++++++++++++++++++++------- 6 files changed, 91 insertions(+), 62 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0669cab..8a35269 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 2.8) project(libwebrtc) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - ${CMAKE_SOURCE_DIR}/CMakeModules) + ${CMAKE_SOURCE_DIR}/CMakeModules) find_package(Git REQUIRED) find_package(DepotTools REQUIRED) @@ -12,35 +12,42 @@ find_package(DepotTools REQUIRED) # option(BUILD_TESTS "Build test binaries" OFF) -option(BUILD_SAMPLES "Build samples binaries" ON) +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 + 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 1) set(LIBWEBRTC_MINOR_VERSION 0) set(LIBWEBRTC_PATCH_VERSION 0) 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 - "${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} - VERSION "${LIBWEBRTC_VERSION}" - SOVERSION "${LIBWEBRTC_API_VERSION}" - ) + VERSION "${LIBWEBRTC_VERSION}" + SOVERSION "${LIBWEBRTC_API_VERSION}" +) # # Directories @@ -58,17 +65,17 @@ endif() if(NOT LIBWEBRTC_INSTALL_INCLUDE_DIR) set(LIBWEBRTC_INSTALL_INCLUDE_DIR "include") 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_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) add_subdirectory(Targets) if(BUILD_SAMPLES) add_subdirectory(Samples) -endif(BUILD_SAMPLES) \ No newline at end of file +endif(BUILD_SAMPLES) diff --git a/CMakeModules/Common.cmake b/CMakeModules/Common.cmake index 62f19f5..c1f6c01 100644 --- a/CMakeModules/Common.cmake +++ b/CMakeModules/Common.cmake @@ -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 ARG_NAME ARG_OUTPUT @@ -11,7 +9,7 @@ macro(add_libwebrtc_command add_custom_command( OUTPUT ${ARG_OUTPUT} - COMMAND ${ARG_COMMAND} + COMMAND export "PATH=${CMAKE_SOURCE_DIR}/Dependencies/depot_tools:$ENV{PATH}" && ${ARG_COMMAND} WORKING_DIRECTORY ${ARG_WORKING_DIRECTORY} COMMENT ${ARG_COMMENT} ) @@ -25,4 +23,4 @@ macro(add_libwebrtc_command if (${NUM_ARG_DEPENDENCIES} GREATER 0) add_dependencies(${ARG_NAME} ${ARG_DEPENDENCIES}) endif () -endmacro() \ No newline at end of file +endmacro() diff --git a/Samples/PeerConnection/CMakeLists.txt b/Samples/PeerConnection/CMakeLists.txt index 9391153..02a59b5 100644 --- a/Samples/PeerConnection/CMakeLists.txt +++ b/Samples/PeerConnection/CMakeLists.txt @@ -32,7 +32,7 @@ include_directories(${CMAKE_SOURCE_DIR}/out/src) if(WIN) add_definitions(-DWEBRTC_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} UnixConsole.cpp) endif(WIN) @@ -41,9 +41,7 @@ add_executable(PeerConnection ${PEERCONNECTION_SOURCE_FILES} ${PEERCONNECTION_HEADER_FILES}) -set(PEERCONNECTION_LIBRARIES - ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY} - Threads::Threads) +set(PEERCONNECTION_LIBRARIES ${LIBWEBRTC_LIBRARY_PATH} Threads::Threads) if(UNIX AND NOT APPLE) set(PEERCONNECTION_LIBRARIES ${PEERCONNECTION_LIBRARIES} @@ -51,4 +49,4 @@ if(UNIX AND NOT APPLE) ${CMAKE_DL_LIBS}) endif(UNIX AND NOT APPLE) -target_link_libraries(PeerConnection ${PEERCONNECTION_LIBRARIES}) \ No newline at end of file +target_link_libraries(PeerConnection ${PEERCONNECTION_LIBRARIES}) diff --git a/Targets/Build/CMakeLists.txt b/Targets/Build/CMakeLists.txt index 3bafa45..3b9311a 100644 --- a/Targets/Build/CMakeLists.txt +++ b/Targets/Build/CMakeLists.txt @@ -4,18 +4,17 @@ include(Common) # Generate build files # -set(LIBWEBRTC_GEN_ARGS "") +set(LIBWEBRTC_GEN_ARGS use_gold=false) 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) if(NOT BUILD_TESTS) set(LIBWEBRTC_GEN_ARGS ${LIBWEBRTC_GEN_ARGS} rtc_include_tests=false) endif(NOT BUILD_TESTS) -set(GENERATE_COMMAND - ${LIBWEBRTC_ENV_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 ${CMAKE_BINARY_DIR}/Nevermind @@ -30,8 +29,7 @@ add_libwebrtc_command(libwebrtc_generate_build # set(BUILD_WEBRTC_COMMAND - ${LIBWEBRTC_ENV_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 @@ -45,16 +43,15 @@ add_libwebrtc_command(libwebrtc_build # 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 - python webrtc/build/merge_libs.py out/Default - ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY}) + python webrtc/build/merge_libs.py out/Default ${LIBWEBRTC_LIBRARY_PATH}) add_libwebrtc_command(libwebrtc_merge - ${CMAKE_BINARY_DIR}/${LIBWEBRTC_INSTALL_CMAKE_DIR}/${LIBWEBRTC_LIBRARY} + ${LIBWEBRTC_LIBRARY_PATH} "${MERGE_COMMAND}" ${CMAKE_BINARY_DIR}/src - "Merging libraries into ${WEBRTC_LIBRARY}" + "Merging libraries into ${LIBWEBRTC_LIBRARY_NAME}" libwebrtc_build -) \ No newline at end of file +) diff --git a/Targets/Fetch/CMakeLists.txt b/Targets/Fetch/CMakeLists.txt index 74b0807..080f1c1 100644 --- a/Targets/Fetch/CMakeLists.txt +++ b/Targets/Fetch/CMakeLists.txt @@ -51,11 +51,11 @@ add_libwebrtc_command(libwebrtc_chromium_deps # 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 ${CMAKE_BINARY_DIR}/src/chromium/src/third_party/llvm-build - "${UPDATE_CLAND_COMMAND}" + "${UPDATE_CLANG_COMMAND}" ${CMAKE_BINARY_DIR}/src "Updating clang" libwebrtc_chromium_deps @@ -65,7 +65,7 @@ add_libwebrtc_command(libwebrtc_clang # 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 ${CMAKE_BINARY_DIR}/src/tools/clang @@ -73,4 +73,4 @@ add_libwebrtc_command(libwebrtc_links ${CMAKE_BINARY_DIR}/src "Creating symbolic links" libwebrtc_clang -) \ No newline at end of file +) diff --git a/Targets/Install/CMakeLists.txt b/Targets/Install/CMakeLists.txt index 52973e1..8ed8d95 100644 --- a/Targets/Install/CMakeLists.txt +++ b/Targets/Install/CMakeLists.txt @@ -3,27 +3,56 @@ # install( - FILES ${CMAKE_BINARY_DIR}/${LIBWEBRTC_LIBRARY} - DESTINATION ${LIBWEBRTC_INSTALL_LIB_DIR} - COMPONENT Libraries + FILES ${LIBWEBRTC_LIBRARY_PATH} + DESTINATION ${LIBWEBRTC_INSTALL_LIB_DIR} + COMPONENT Libraries ) # # Install headers # -file( - GLOB_RECURSE header_files - RELATIVE ${CMAKE_BINARY_DIR}/src - FOLLOW_SYMLINKS - ${CMAKE_BINARY_DIR}/src/webrtc/*.h +install( + DIRECTORY ${CMAKE_BINARY_DIR}/src/webrtc + DESTINATION ${LIBWEBRTC_INSTALL_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h" ) -foreach(f ${header_files}) - get_filename_component(RELATIVE_PATH ${f} DIRECTORY) - install( - FILES ${CMAKE_BINARY_DIR}/src/${f} - DESTINATION ${LIBWEBRTC_INSTALL_INCLUDE_DIR}/${RELATIVE_PATH} - COMPONENT Headers - ) -endforeach() \ No newline at end of file +# +# Create package +# + +set(CPACK_PACKAGE_NAME "${LIBWEBRTC_MAJOR_VERSION}") +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(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)