|
| 1 | +set(MPV_URL "https://reposilite.silenium.dev/releases/dev/silenium/libs/mpv/mpv-natives-${NATIVE_PLATFORM}/${MPV_VERSION}/mpv-natives-${NATIVE_PLATFORM}-${MPV_VERSION}.zip") |
| 2 | +set(MPV_URL_SHA256 "https://reposilite.silenium.dev/releases/dev/silenium/libs/mpv/mpv-natives-${NATIVE_PLATFORM}/${MPV_VERSION}/mpv-natives-${NATIVE_PLATFORM}-${MPV_VERSION}.zip.sha256") |
| 3 | +set(MPV_PREFIX "${CMAKE_BINARY_DIR}/mpv") |
| 4 | +message(STATUS "Downloading mpv from ${MPV_URL}") |
| 5 | + |
| 6 | +file(DOWNLOAD "${MPV_URL_SHA256}" "${CMAKE_BINARY_DIR}/mpv.zip.sha256") |
| 7 | +file(READ "${CMAKE_BINARY_DIR}/mpv.zip.sha256" MPV_SHA256) |
| 8 | +file(DOWNLOAD "${MPV_URL}" "${CMAKE_BINARY_DIR}/mpv.zip" EXPECTED_HASH SHA256=${MPV_SHA256} SHOW_PROGRESS) |
| 9 | +file(ARCHIVE_EXTRACT INPUT "${CMAKE_BINARY_DIR}/mpv.zip" DESTINATION "${MPV_PREFIX}") |
| 10 | + |
| 11 | +set(MPV_INCLUDE_DIR "${MPV_PREFIX}/include") |
| 12 | +set(MPV_LIB_DIR "${MPV_PREFIX}/lib") |
| 13 | +set(MPV_LIBRARIES |
| 14 | + mpv |
| 15 | + ass |
| 16 | + placebo) |
1 | 17 | add_library(mpv STATIC IMPORTED) |
2 | | -if (NOT DEFINED MPV_A_LOCATION) |
3 | | - set(MPV_URL "https://reposilite.silenium.dev/releases/dev/silenium/libs/mpv/mpv-natives-${MPV_PLATFORM}${MPV_PLATFORM_EXTENSION}/${MPV_VERSION}/mpv-natives-${MPV_PLATFORM}${MPV_PLATFORM_EXTENSION}-${MPV_VERSION}.zip") |
4 | | - set(MPV_URL_SHA256 "https://reposilite.silenium.dev/releases/dev/silenium/libs/mpv/mpv-natives-${MPV_PLATFORM}${MPV_PLATFORM_EXTENSION}/${MPV_VERSION}/mpv-natives-${MPV_PLATFORM}${MPV_PLATFORM_EXTENSION}-${MPV_VERSION}.zip.sha256") |
5 | | - set(MPV_PREFIX "${CMAKE_BINARY_DIR}/mpv") |
6 | | - message(STATUS "Downloading mpv from ${MPV_URL}") |
7 | 18 |
|
8 | | - file(DOWNLOAD "${MPV_URL_SHA256}" "${CMAKE_BINARY_DIR}/mpv.zip.sha256") |
9 | | - file(READ "${CMAKE_BINARY_DIR}/mpv.zip.sha256" MPV_SHA256) |
10 | | - file(DOWNLOAD "${MPV_URL}" "${CMAKE_BINARY_DIR}/mpv.zip" EXPECTED_HASH SHA256=${MPV_SHA256} SHOW_PROGRESS) |
11 | | - file(ARCHIVE_EXTRACT INPUT "${CMAKE_BINARY_DIR}/mpv.zip" DESTINATION "${MPV_PREFIX}") |
| 19 | +set(MPV_MRI "${CMAKE_CURRENT_BINARY_DIR}/mpv.mri") |
| 20 | +file(WRITE "${MPV_MRI}" "CREATE libmpv.a\n") |
| 21 | +message(STATUS "Checking for mpv libraries") |
| 22 | +foreach (MPV_LIBRARY ${MPV_LIBRARIES}) |
| 23 | + set(LIB_PATH "${MPV_LIB_DIR}/lib${MPV_LIBRARY}.a") |
| 24 | + if (NOT EXISTS ${LIB_PATH}) |
| 25 | + message(STATUS " ${MPV_LIBRARY} not found") |
| 26 | + continue() |
| 27 | + endif () |
| 28 | + message(STATUS " Found ${MPV_LIBRARY}") |
| 29 | + file(APPEND "${MPV_MRI}" "ADDLIB ${LIB_PATH}\n") |
| 30 | +endforeach () |
| 31 | +file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/mpv.mri" "SAVE\nEND\n") |
12 | 32 |
|
13 | | - set(MPV_INCLUDE_DIR "${MPV_PREFIX}/include") |
14 | | - set(MPV_LIB_DIR "${MPV_PREFIX}/lib") |
15 | | - set_target_properties(mpv PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/libmpv.a") |
16 | | - target_include_directories(mpv INTERFACE "${MPV_INCLUDE_DIR}") |
17 | | -else () |
18 | | - set_target_properties(mpv PROPERTIES IMPORTED_LOCATION "${MPV_A_LOCATION}") |
19 | | -endif () |
| 33 | +add_custom_target(mpv_custom |
| 34 | + COMMAND ar -M < "${CMAKE_CURRENT_BINARY_DIR}/mpv.mri" |
| 35 | + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
| 36 | + BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/libmpv.a |
| 37 | +) |
| 38 | +add_dependencies(mpv mpv_custom) |
| 39 | +set_target_properties(mpv PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/libmpv.a") |
20 | 40 |
|
| 41 | +target_include_directories(mpv INTERFACE "${MPV_INCLUDE_DIR}") |
21 | 42 | target_link_options(mpv INTERFACE "-Wl,-Bsymbolic") |
0 commit comments