Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 34 additions & 41 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,35 +70,29 @@ include(ExternalProject)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/deps.json DEPS_JSON)

# Opus の設定を解析
string(JSON OPUS_VERSION GET ${DEPS_JSON} libopus version)
string(JSON OPUS_GIT_REPOSITORY GET ${DEPS_JSON} libopus repository)
set(OPUS_GIT_TAG "v${OPUS_VERSION}")
string(JSON OPUS_GIT_TAG GET ${DEPS_JSON} libopus tag)
string(JSON OPUS_GIT_REPOSITORY GET ${DEPS_JSON} libopus url)

# FLAC の設定を解析
string(JSON FLAC_VERSION GET ${DEPS_JSON} libflac version)
string(JSON FLAC_GIT_REPOSITORY GET ${DEPS_JSON} libflac repository)
set(FLAC_GIT_TAG "${FLAC_VERSION}")
string(JSON FLAC_GIT_TAG GET ${DEPS_JSON} libflac tag)
string(JSON FLAC_GIT_REPOSITORY GET ${DEPS_JSON} libflac url)

# AOM の設定を解析
string(JSON AOM_VERSION GET ${DEPS_JSON} libaom version)
string(JSON AOM_GIT_REPOSITORY GET ${DEPS_JSON} libaom repository)
set(AOM_GIT_TAG "v${AOM_VERSION}") # タグ用に v プレフィックスを追加
string(JSON AOM_GIT_TAG GET ${DEPS_JSON} libaom tag)
string(JSON AOM_GIT_REPOSITORY GET ${DEPS_JSON} libaom url)

# dav1d の設定を解析
string(JSON DAV1D_VERSION GET ${DEPS_JSON} libdav1d version)
string(JSON DAV1D_GIT_REPOSITORY GET ${DEPS_JSON} libdav1d repository)
set(DAV1D_GIT_TAG "${DAV1D_VERSION}")
string(JSON DAV1D_GIT_TAG GET ${DEPS_JSON} libdav1d tag)
string(JSON DAV1D_GIT_REPOSITORY GET ${DEPS_JSON} libdav1d url)

# YUV の設定を解析
string(JSON YUV_VERSION GET ${DEPS_JSON} libyuv version)
string(JSON YUV_GIT_REPOSITORY GET ${DEPS_JSON} libyuv repository)
set(YUV_GIT_TAG ${YUV_VERSION}) # コミットハッシュを使用
string(JSON YUV_GIT_REF GET ${DEPS_JSON} libyuv ref)
string(JSON YUV_GIT_REPOSITORY GET ${DEPS_JSON} libyuv url)

# VPL の設定を解析(Linux のみ)
if(NOT APPLE AND NOT WIN32)
string(JSON VPL_VERSION GET ${DEPS_JSON} libvpl version)
string(JSON VPL_GIT_REPOSITORY GET ${DEPS_JSON} libvpl repository)
set(VPL_GIT_TAG "v${VPL_VERSION}")
string(JSON VPL_GIT_TAG GET ${DEPS_JSON} libvpl tag)
string(JSON VPL_GIT_REPOSITORY GET ${DEPS_JSON} libvpl url)
endif()

# 静的ライブラリのビルドオプションを設定
Expand All @@ -118,9 +112,9 @@ endif()

# ========== libopus ==========
message(STATUS "Setting up libopus...")
set(OPUS_SOURCE_DIR "${DEPS_DIR}/opus/${OPUS_VERSION}/source")
set(OPUS_BUILD_DIR "${DEPS_DIR}/opus/${OPUS_VERSION}/build")
set(OPUS_INSTALL_DIR "${DEPS_DIR}/opus/${OPUS_VERSION}/install")
set(OPUS_SOURCE_DIR "${DEPS_DIR}/opus/${OPUS_GIT_TAG}/source")
set(OPUS_BUILD_DIR "${DEPS_DIR}/opus/${OPUS_GIT_TAG}/build")
set(OPUS_INSTALL_DIR "${DEPS_DIR}/opus/${OPUS_GIT_TAG}/install")

# Windows では .lib、それ以外では .a
if(WIN32)
Expand Down Expand Up @@ -166,9 +160,9 @@ endif()

# ========== libflac ==========
message(STATUS "Setting up libflac...")
set(FLAC_SOURCE_DIR "${DEPS_DIR}/flac/${FLAC_VERSION}/source")
set(FLAC_BUILD_DIR "${DEPS_DIR}/flac/${FLAC_VERSION}/build")
set(FLAC_INSTALL_DIR "${DEPS_DIR}/flac/${FLAC_VERSION}/install")
set(FLAC_SOURCE_DIR "${DEPS_DIR}/flac/${FLAC_GIT_TAG}/source")
set(FLAC_BUILD_DIR "${DEPS_DIR}/flac/${FLAC_GIT_TAG}/build")
set(FLAC_INSTALL_DIR "${DEPS_DIR}/flac/${FLAC_GIT_TAG}/install")

# Windows では .lib、それ以外では .a
if(WIN32)
Expand Down Expand Up @@ -215,9 +209,9 @@ endif()

# ========== libaom ==========
message(STATUS "Setting up libaom...")
set(AOM_SOURCE_DIR "${DEPS_DIR}/aom/${AOM_VERSION}/source")
set(AOM_BUILD_DIR "${DEPS_DIR}/aom/${AOM_VERSION}/build")
set(AOM_INSTALL_DIR "${DEPS_DIR}/aom/${AOM_VERSION}/install")
set(AOM_SOURCE_DIR "${DEPS_DIR}/aom/${AOM_GIT_TAG}/source")
set(AOM_BUILD_DIR "${DEPS_DIR}/aom/${AOM_GIT_TAG}/build")
set(AOM_INSTALL_DIR "${DEPS_DIR}/aom/${AOM_GIT_TAG}/install")

# Windows では .lib、それ以外では .a
if(WIN32)
Expand Down Expand Up @@ -266,9 +260,9 @@ endif()

# ========== dav1d ==========
message(STATUS "Setting up dav1d...")
set(DAV1D_SOURCE_DIR "${DEPS_DIR}/dav1d/${DAV1D_VERSION}/source")
set(DAV1D_BUILD_DIR "${DEPS_DIR}/dav1d/${DAV1D_VERSION}/build")
set(DAV1D_INSTALL_DIR "${DEPS_DIR}/dav1d/${DAV1D_VERSION}/install")
set(DAV1D_SOURCE_DIR "${DEPS_DIR}/dav1d/${DAV1D_GIT_TAG}/source")
set(DAV1D_BUILD_DIR "${DEPS_DIR}/dav1d/${DAV1D_GIT_TAG}/build")
set(DAV1D_INSTALL_DIR "${DEPS_DIR}/dav1d/${DAV1D_GIT_TAG}/install")

# Windows でも meson は libdav1d.a として生成する(MSVC でもリンク可能)
set(DAV1D_LIB ${DAV1D_INSTALL_DIR}/lib/libdav1d.a)
Expand Down Expand Up @@ -306,9 +300,9 @@ endif()

# ========== libyuv ==========
message(STATUS "Setting up libyuv...")
set(YUV_SOURCE_DIR "${DEPS_DIR}/yuv/${YUV_VERSION}/source")
set(YUV_BUILD_DIR "${DEPS_DIR}/yuv/${YUV_VERSION}/build")
set(YUV_INSTALL_DIR "${DEPS_DIR}/yuv/${YUV_VERSION}/install")
set(YUV_SOURCE_DIR "${DEPS_DIR}/yuv/${YUV_GIT_REF}/source")
set(YUV_BUILD_DIR "${DEPS_DIR}/yuv/${YUV_GIT_REF}/build")
set(YUV_INSTALL_DIR "${DEPS_DIR}/yuv/${YUV_GIT_REF}/install")

# Windows では .lib、それ以外では .a
if(WIN32)
Expand All @@ -326,7 +320,7 @@ else()
ExternalProject_Add(
libyuv_build
GIT_REPOSITORY ${YUV_GIT_REPOSITORY}
GIT_TAG ${YUV_GIT_TAG}
GIT_TAG ${YUV_GIT_REF}
GIT_SHALLOW FALSE
SOURCE_DIR ${YUV_SOURCE_DIR}
BINARY_DIR ${YUV_BUILD_DIR}
Expand All @@ -348,7 +342,7 @@ endif()
# ========== libvpl (Linux のみ、ヘッダーのみ) ==========
if(INTEL_VPL_ENABLED)
message(STATUS "Setting up libvpl...")
set(VPL_SOURCE_DIR "${DEPS_DIR}/vpl/${VPL_VERSION}/source")
set(VPL_SOURCE_DIR "${DEPS_DIR}/vpl/${VPL_GIT_TAG}/source")

# ヘッダーディレクトリの存在チェック
if(EXISTS "${VPL_SOURCE_DIR}/api/vpl/mfx.h")
Expand Down Expand Up @@ -378,14 +372,13 @@ endif()
# ========== libvpx (macOS / Linux) ==========
if(APPLE OR UNIX)
# VPX の設定を解析
string(JSON VPX_VERSION GET ${DEPS_JSON} libvpx version)
string(JSON VPX_GIT_REPOSITORY GET ${DEPS_JSON} libvpx repository)
set(VPX_GIT_TAG "v${VPX_VERSION}")
string(JSON VPX_GIT_TAG GET ${DEPS_JSON} libvpx tag)
string(JSON VPX_GIT_REPOSITORY GET ${DEPS_JSON} libvpx url)

message(STATUS "Setting up libvpx...")
set(VPX_SOURCE_DIR "${DEPS_DIR}/vpx/${VPX_VERSION}/source")
set(VPX_BUILD_DIR "${DEPS_DIR}/vpx/${VPX_VERSION}/build")
set(VPX_INSTALL_DIR "${DEPS_DIR}/vpx/${VPX_VERSION}/install")
set(VPX_SOURCE_DIR "${DEPS_DIR}/vpx/${VPX_GIT_TAG}/source")
set(VPX_BUILD_DIR "${DEPS_DIR}/vpx/${VPX_GIT_TAG}/build")
set(VPX_INSTALL_DIR "${DEPS_DIR}/vpx/${VPX_GIT_TAG}/install")

set(VPX_LIB ${VPX_INSTALL_DIR}/lib/libvpx.a)

Expand Down
30 changes: 15 additions & 15 deletions deps.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
{
"libopus": {
"version": "1.6",
"repository": "https://github.com/xiph/opus"
"tag": "v1.6",
"url": "https://github.com/xiph/opus"
},
"libflac": {
"version": "1.5.0",
"repository": "https://github.com/xiph/flac"
"tag": "1.5.0",
"url": "https://github.com/xiph/flac"
},
"libvpx": {
"version": "1.15.2",
"repository": "https://chromium.googlesource.com/webm/libvpx"
"tag": "v1.15.2",
"url": "https://chromium.googlesource.com/webm/libvpx"
},
"libaom": {
"version": "3.13.1",
"repository": "https://aomedia.googlesource.com/aom"
"tag": "v3.13.1",
"url": "https://aomedia.googlesource.com/aom"
},
"libdav1d": {
"version": "1.5.2",
"repository": "https://github.com/videolan/dav1d"
"tag": "1.5.2",
"url": "https://github.com/videolan/dav1d"
},
"libvpl": {
"version": "2.15.0",
"repository": "https://github.com/intel/libvpl"
"tag": "v2.15.0",
"url": "https://github.com/intel/libvpl"
},
"libyuv": {
"version": "068c9f2f643ce59eeb3001d61374bf44a2abd825",
"repository": "https://chromium.googlesource.com/libyuv/libyuv"
"ref": "068c9f2f643ce59eeb3001d61374bf44a2abd825",
"url": "https://chromium.googlesource.com/libyuv/libyuv"
}
}
}