From 1944a92f9a01e58f369b06f989281b03896e1714 Mon Sep 17 00:00:00 2001 From: Axel Isouard Date: Sat, 26 Nov 2016 09:37:55 +0100 Subject: [PATCH] CMake: Rewrite package definitions --- Targets/CMakeLists.txt | 3 ++- Targets/Package/CMakeLists.txt | 46 ++++++++++++++++++++++++++++++++ Targets/WebRTC/CMakeLists.txt | 7 ++--- Targets/libwebrtc/CMakeLists.txt | 16 +++++++++-- 4 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 Targets/Package/CMakeLists.txt diff --git a/Targets/CMakeLists.txt b/Targets/CMakeLists.txt index 5bced46..b2cfe99 100644 --- a/Targets/CMakeLists.txt +++ b/Targets/CMakeLists.txt @@ -1 +1,2 @@ -add_subdirectory(WebRTC) \ No newline at end of file +add_subdirectory(WebRTC) +add_subdirectory(Package) \ No newline at end of file diff --git a/Targets/Package/CMakeLists.txt b/Targets/Package/CMakeLists.txt new file mode 100644 index 0000000..6f930fd --- /dev/null +++ b/Targets/Package/CMakeLists.txt @@ -0,0 +1,46 @@ +# +# 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}") + +set(CPACK_INSTALL_CMAKE_PROJECTS + "${CPACK_INSTALL_CMAKE_PROJECTS};${CMAKE_BINARY_DIR}/libwebrtc;libwebrtc;ALL;/") + +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_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 "AMD64") + 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}") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "libwebrtc") + +include(CPack) \ No newline at end of file diff --git a/Targets/WebRTC/CMakeLists.txt b/Targets/WebRTC/CMakeLists.txt index f428751..78604fa 100644 --- a/Targets/WebRTC/CMakeLists.txt +++ b/Targets/WebRTC/CMakeLists.txt @@ -112,10 +112,11 @@ add_libwebrtc_command(webrtc-build # ExternalProject_Add(libwebrtc DEPENDS webrtc-build - INSTALL_COMMAND "" + INSTALL_DIR ${CMAKE_BINARY_DIR}/install SOURCE_DIR ${CMAKE_SOURCE_DIR}/Targets/libwebrtc BINARY_DIR ${CMAKE_BINARY_DIR}/libwebrtc CMAKE_ARGS - -DLIBWEBRTC_OUTPUT_DIR:STRING=${CMAKE_BINARY_DIR}/src/out/Default - -DLIBWEBRTC_INSTALL_LIB_DIR:PATH=${LIBWEBRTC_INSTALL_LIB_DIR}) + -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/install + -DLIBWEBRTC_INCLUDE_DIR:STRING=${CMAKE_BINARY_DIR}/src/webrtc + -DLIBWEBRTC_OUTPUT_DIR:PATH=${CMAKE_BINARY_DIR}/src/out/Default) \ No newline at end of file diff --git a/Targets/libwebrtc/CMakeLists.txt b/Targets/libwebrtc/CMakeLists.txt index e099ebb..9b25021 100644 --- a/Targets/libwebrtc/CMakeLists.txt +++ b/Targets/libwebrtc/CMakeLists.txt @@ -38,8 +38,20 @@ set_source_files_properties(${LIBWEBRTC_OBJ_FILES} PROPERTIES GENERATED true) set_target_properties(webrtc PROPERTIES - LINKER_LANGUAGE C) + LINKER_LANGUAGE C + LIBRARY_OUTPUT_DIRECTORY ${LIBWEBRTC_OUTPUT_DIR}) + +# +# Install headers +# +install(DIRECTORY ${LIBWEBRTC_INCLUDE_DIR} + DESTINATION "include" + FILES_MATCHING PATTERN "*.h") + +# +# Install library +# install(TARGETS webrtc - DESTINATION ${LIBWEBRTC_INSTALL_LIB_DIR} + DESTINATION "lib" COMPONENT Libraries) \ No newline at end of file