From e87a7ccf885b4d2c67a93f83a8a7ac36f2f5602a Mon Sep 17 00:00:00 2001 From: selsta Date: Mon, 29 Jun 2020 01:42:33 +0200 Subject: [PATCH] cmake: add basic support --- .github/workflows/build.yml | 42 +++++++++++++++++++++++++++++++++---- src/CMakeLists.txt | 25 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 src/CMakeLists.txt diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 49c540a..81670a6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,9 +10,13 @@ jobs: steps: - uses: actions/checkout@v1 - name: make - run: make + run: | + mkdir build + cd build + cmake ../src + cmake --build . - name: download testfile - run: ./hlsdl -b -o test.ts "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" + run: build/hlsdl -b -o test.ts "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" - name: verify testfile run: echo "6bf11a9a4be02443d4790e43e6569a614128bad453c5cb327ec74031f6ea6382 test.ts" | shasum -a256 -c @@ -27,8 +31,38 @@ jobs: - name: install libcurl libcrypto run: sudo apt -y install libcurl4-openssl-dev libssl-dev - name: make - run: make + run: | + mkdir build + cd build + cmake ../src + cmake --build . - name: download testfile - run: ./hlsdl -b -o test.ts "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" + run: build/hlsdl -b -o test.ts "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" + - name: verify testfile + run: echo "6bf11a9a4be02443d4790e43e6569a614128bad453c5cb327ec74031f6ea6382 test.ts" | shasum -a256 -c + + + build-windows: + + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + + steps: + - uses: actions/checkout@v1 + with: + submodules: recursive + - uses: eine/setup-msys2@v1 + with: + install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-openssl mingw-w64-x86_64-curl + - name: build + run: | + mkdir build + cd build + cmake -G "MSYS Makefiles" ../src + cmake --build . + - name: download testfile + run: build/hlsdl -b -o test.ts "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" - name: verify testfile run: echo "6bf11a9a4be02443d4790e43e6569a614128bad453c5cb327ec74031f6ea6382 test.ts" | shasum -a256 -c diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..d070f48 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.5) + +project(hlsdl VERSION 0.27 LANGUAGES C) + +if (APPLE AND NOT IOS) + if (NOT OPENSSL_ROOT_DIR) + EXECUTE_PROCESS(COMMAND brew --prefix openssl + OUTPUT_VARIABLE OPENSSL_ROOT_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() +endif() + +find_package(OpenSSL REQUIRED) +find_package(CURL REQUIRED) +find_package(Threads REQUIRED) + +add_executable(hlsdl main.c aes_openssl.c curl.c hls.c misc.c msg.c mpegts.c) + +target_include_directories(hlsdl PRIVATE ${OPENSSL_INCLUDE_DIR} ${CURL_INCLUDE_DIRS}) + +if (WIN32) + target_sources(hlsdl PRIVATE "../msvc/win/memmem.c") +endif() + +target_link_libraries(hlsdl PRIVATE OpenSSL::Crypto CURL::libcurl Threads::Threads)