forked from pool/SVT-AV1
191 lines
6.6 KiB
Diff
191 lines
6.6 KiB
Diff
|
From 2e581b16cecd767d5596052b10c70acc681a8b45 Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@cryptomilk.org>
|
||
|
Date: Tue, 10 Nov 2020 10:34:30 +0100
|
||
|
Subject: [PATCH 1/3] cmake: Use CheckCSourceCompiles
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
|
||
|
---
|
||
|
CMakeLists.txt | 14 ++++++--------
|
||
|
1 file changed, 6 insertions(+), 8 deletions(-)
|
||
|
|
||
|
Index: SVT-AV1-0.8.5/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/CMakeLists.txt 2020-11-10 11:29:38.547034342 +0100
|
||
|
@@ -29,19 +29,17 @@ if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||
|
message(WARNING "32-bit is not supported")
|
||
|
endif()
|
||
|
|
||
|
-file(WRITE ${CMAKE_BINARY_DIR}/conftest.c "
|
||
|
+include(CheckCSourceCompiles)
|
||
|
+
|
||
|
+check_c_source_compiles("
|
||
|
#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__)
|
||
|
#else
|
||
|
#error \"Non-x86\"
|
||
|
#endif
|
||
|
-int main() {}
|
||
|
-")
|
||
|
-
|
||
|
-try_compile(X86 ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/conftest.c)
|
||
|
-
|
||
|
-message(STATUS "x86 detected: ${X86}")
|
||
|
+int main(void) {}
|
||
|
+" HAVE_X86_PLATFORM)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
find_program(YASM_EXE yasm)
|
||
|
option(ENABLE_NASM "Use nasm if available (Uses yasm by default if found)" OFF)
|
||
|
if(YASM_EXE AND NOT CMAKE_ASM_NASM_COMPILER MATCHES "yasm" AND NOT ENABLE_NASM)
|
||
|
@@ -110,12 +108,13 @@ if(UNIX)
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
+# Always build with -fPIC/-fPIE
|
||
|
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||
|
+
|
||
|
set(flags_to_test
|
||
|
-Wextra
|
||
|
-Wformat
|
||
|
- -Wformat-security
|
||
|
- -fPIE
|
||
|
- -fPIC)
|
||
|
+ -Wformat-security)
|
||
|
if(MSVC)
|
||
|
list(INSERT flags_to_test 0 /W3)
|
||
|
list(APPEND flags_to_test /MP)
|
||
|
@@ -230,6 +229,10 @@ macro(ASM_COMPILE_TO_TARGET target)
|
||
|
endif()
|
||
|
endmacro()
|
||
|
|
||
|
+# Find out if we have threading available
|
||
|
+set(CMAKE_THREAD_PREFER_PTHREADS ON)
|
||
|
+find_package(Threads)
|
||
|
+
|
||
|
# Add Subdirectories
|
||
|
add_subdirectory(Source/Lib/Common)
|
||
|
if(BUILD_ENC)
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Decoder/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Decoder/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Decoder/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
|
||
|
@@ -18,10 +18,11 @@ set(DEC_VERSION ${DEC_VERSION_MAJOR}.${D
|
||
|
|
||
|
if(UNIX)
|
||
|
if(NOT APPLE)
|
||
|
- find_library(M_LIB name m)
|
||
|
+ find_library(M_LIB NAMES m)
|
||
|
if(M_LIB)
|
||
|
list(APPEND PLATFORM_LIBS m)
|
||
|
endif()
|
||
|
+ list(APPEND PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||
|
endif()
|
||
|
set(LIBS_PRIVATE "-lpthread -lm")
|
||
|
endif()
|
||
|
@@ -45,7 +46,7 @@ link_directories(${PROJECT_SOURCE_DIR}/S
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Decoder/Codec/
|
||
|
${PROJECT_SOURCE_DIR}/third_party/fastfeat/)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
# Include Decoder Subdirectories
|
||
|
include_directories(${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSSE3/
|
||
|
@@ -75,7 +76,7 @@ if(common_lib_source)
|
||
|
endif()
|
||
|
|
||
|
# Decoder Lib Source Files
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
add_library(SvtAv1Dec
|
||
|
${all_files}
|
||
|
$<TARGET_OBJECTS:COMMON_CODEC>
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
|
||
|
@@ -19,10 +19,11 @@ set(ENC_VERSION ${ENC_VERSION_MAJOR}.${E
|
||
|
|
||
|
if(UNIX)
|
||
|
if(NOT APPLE)
|
||
|
- find_library(M_LIB name m)
|
||
|
+ find_library(M_LIB NAMES m)
|
||
|
if(M_LIB)
|
||
|
list(APPEND PLATFORM_LIBS m)
|
||
|
endif()
|
||
|
+ list(APPEND PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||
|
endif()
|
||
|
set(LIBS_PRIVATE "-lpthread -lm")
|
||
|
endif()
|
||
|
@@ -49,7 +50,7 @@ link_directories(${PROJECT_SOURCE_DIR}/S
|
||
|
add_subdirectory(C_DEFAULT)
|
||
|
add_subdirectory(Codec)
|
||
|
add_subdirectory(Globals)
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
# Include Encoder Subdirectories
|
||
|
include_directories(${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSSE3/
|
||
|
@@ -96,7 +97,7 @@ if(common_lib_source)
|
||
|
endif()
|
||
|
|
||
|
# Encoder Lib Source Files
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
add_library(SvtAv1Enc
|
||
|
${all_files}
|
||
|
$<TARGET_OBJECTS:COMMON_CODEC>
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Common/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Common/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Common/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
|
||
|
@@ -30,7 +30,7 @@ add_library(common_lib INTERFACE)
|
||
|
add_subdirectory(Codec)
|
||
|
add_subdirectory(C_DEFAULT)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
add_subdirectory(ASM_SSE2)
|
||
|
add_subdirectory(ASM_SSSE3)
|
||
|
add_subdirectory(ASM_SSE4_1)
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Common/Codec/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Common/Codec/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Common/Codec/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
|
||
|
@@ -21,7 +21,7 @@ add_custom_target(EbVersionHeaderGen
|
||
|
COMMENT "Generating version header"
|
||
|
VERBATIM)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
# Include Encoder Subdirectories
|
||
|
include_directories(${PROJECT_SOURCE_DIR}/Source/API/
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Common/Codec/
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/Codec/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/Codec/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/Codec/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
|
||
|
@@ -19,7 +19,7 @@ include_directories(../../../API
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/Globals/
|
||
|
)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
# Include Encoder Subdirectories
|
||
|
include_directories(
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_SSE2/
|
||
|
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/Globals/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/Globals/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
|
||
|
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/Globals/CMakeLists.txt 2020-11-10 11:10:05.322095098 +0100
|
||
|
@@ -19,7 +19,7 @@ include_directories(../../../API
|
||
|
${PROJECT_SOURCE_DIR}/third_party/fastfeat/
|
||
|
)
|
||
|
|
||
|
-if(X86)
|
||
|
+if(HAVE_X86_PLATFORM)
|
||
|
# Include Encoder Subdirectories
|
||
|
include_directories(
|
||
|
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/
|