From ea50e494473623ed0dbff2907194aaf268dc449a Mon Sep 17 00:00:00 2001
From: Min Chen <[email protected]>
Date: Wed, 14 Sep 2016 15:23:38 -0500
Subject: [PATCH] [multi-lib] Support 8+10+12 bits in single DLL (Workaround)
---
source/CMakeLists.txt | 40 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 39 insertions(+), 1 deletions(-)
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index dd19d28..c2c2f7f 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -36,6 +36,7 @@ configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
"${PROJECT_BINARY_DIR}/x265_config.h")
+
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
# System architecture detection
@@ -396,6 +397,39 @@ if(WIN32)
endif(WINXP_SUPPORT)
endif()
+
+if(ENABLE_SHARED AND LINKED_10BIT AND LINKED_12BIT)
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?setParamAspectRatio@x265@@YAXPEAUx265_param@@HH@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?getParamAspectRatio@x265@@YAXPEAUx265_param@@AEAH1@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?general_log_file@x265@@YAXPEBUx265_param@@PEBDH1ZZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?general_log@x265@@YAXPEBUx265_param@@PEBDH1ZZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_api_get_94@x265_10bit@@YAPEBUx265_api@@H@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_api_get_94@x265_12bit@@YAPEBUx265_api@@H@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_api_query@x265_10bit@@YAPEBUx265_api@@HHPEAH@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_api_query@x265_12bit@@YAPEBUx265_api@@HHPEAH@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?x265_mdate@x265@@YA_JXZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_picturePlaneSize@x265@@YAIHHHH@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?x265_ssim2dB@x265@@YANN@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?x265_ssim2dB@x265@@YANN@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_report_simd@x265@@YAXPEAUx265_param@@@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_fopen@x265@@YAPEAU_iobuf@@PEBD0@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_malloc@x265@@YAPEAX_K@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?x265_free@x265@@YAXPEAX@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?x265_atoi@x265@@YAHPEBDAEA_N@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?start@Thread@x265@@QEAA_NXZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?stop@Thread@x265@@QEAAXXZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "??0Thread@x265@@QEAA@XZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "??1Thread@x265@@UEAA@XZ\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def "?g_maxCUDepth@x265@@3IA\n")
+ if(WINXP_SUPPORT)
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?cond_init@x265@@YAHPEAUConditionVariable@1@@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?cond_wait@x265@@YAHPEAUConditionVariable@1@PEAU_RTL_CRITICAL_SECTION@@K@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?cond_destroy@x265@@YAXPEAUConditionVariable@1@@Z\n")
+ file(APPEND ${PROJECT_BINARY_DIR}/x265.def
"?cond_broadcast@x265@@YAXPEAUConditionVariable@1@@Z\n")
+ endif()
+endif()
+
include(version) # determine X265_VERSION and X265_LATEST_TAG
include_directories(. common encoder "${PROJECT_BINARY_DIR}")
@@ -608,7 +642,11 @@ if(ENABLE_CLI)
if(WIN32 OR NOT ENABLE_SHARED OR INTEL_CXX)
# The CLI cannot link to the shared library on Windows, it
# requires internal APIs not exported from the DLL
- target_link_libraries(cli x265-static ${PLATFORM_LIBS})
+ if(ENABLE_SHARED AND LINKED_10BIT AND LINKED_12BIT)
+ target_link_libraries(cli x265-shared ${PLATFORM_LIBS})
+ else()
+ target_link_libraries(cli x265-static ${PLATFORM_LIBS})
+ endif()
else()
target_link_libraries(cli x265-shared ${PLATFORM_LIBS})
endif()
--
1.7.9.msysgit.0
_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel