Commit 6ea29a76 authored by Alexander Alekhin's avatar Alexander Alekhin

cmake: prefer using CMAKE_SYSTEM_PROCESSOR / CMAKE_SIZEOF_VOID_P

Drop:
- discouraged CMAKE_CL_64
- MSVC64
- MINGW64
parent e47f3e5b
...@@ -288,7 +288,7 @@ if(X86 OR X86_64) ...@@ -288,7 +288,7 @@ if(X86 OR X86_64)
ocv_update(CPU_AVX2_FLAGS_ON "/arch:AVX2") ocv_update(CPU_AVX2_FLAGS_ON "/arch:AVX2")
ocv_update(CPU_AVX_FLAGS_ON "/arch:AVX") ocv_update(CPU_AVX_FLAGS_ON "/arch:AVX")
ocv_update(CPU_FP16_FLAGS_ON "/arch:AVX") ocv_update(CPU_FP16_FLAGS_ON "/arch:AVX")
if(NOT MSVC64) if(NOT X86_64)
# 64-bit MSVC compiler uses SSE/SSE2 by default # 64-bit MSVC compiler uses SSE/SSE2 by default
ocv_update(CPU_SSE_FLAGS_ON "/arch:SSE") ocv_update(CPU_SSE_FLAGS_ON "/arch:SSE")
ocv_update(CPU_SSE_SUPPORTED ON) ocv_update(CPU_SSE_SUPPORTED ON)
......
...@@ -3,15 +3,14 @@ ...@@ -3,15 +3,14 @@
# - CV_CLANG - Clang-compatible compiler (CMAKE_CXX_COMPILER_ID MATCHES "Clang" - Clang or AppleClang, see CMP0025) # - CV_CLANG - Clang-compatible compiler (CMAKE_CXX_COMPILER_ID MATCHES "Clang" - Clang or AppleClang, see CMP0025)
# - CV_ICC - Intel compiler # - CV_ICC - Intel compiler
# - MSVC - Microsoft Visual Compiler (CMake variable) # - MSVC - Microsoft Visual Compiler (CMake variable)
# - MSVC64 - additional flag, 64-bit
# - MINGW / CYGWIN / CMAKE_COMPILER_IS_MINGW / CMAKE_COMPILER_IS_CYGWIN (CMake original variables) # - MINGW / CYGWIN / CMAKE_COMPILER_IS_MINGW / CMAKE_COMPILER_IS_CYGWIN (CMake original variables)
# - MINGW64 - 64-bit
# #
# CPU Platforms: # CPU Platforms:
# - X86 / X86_64 # - X86 / X86_64
# - ARM - ARM CPU, not defined for AArch64 # - ARM - ARM CPU, not defined for AArch64
# - AARCH64 - ARMv8+ (64-bit) # - AARCH64 - ARMv8+ (64-bit)
# - PPC64 / PPC64LE - PowerPC # - PPC64 / PPC64LE - PowerPC
# - MIPS
# #
# OS: # OS:
# - WIN32 - Windows | MINGW # - WIN32 - Windows | MINGW
...@@ -21,9 +20,8 @@ ...@@ -21,9 +20,8 @@
# - APPLE - MacOSX | iOS # - APPLE - MacOSX | iOS
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
if(CMAKE_CL_64) ocv_declare_removed_variables(MINGW64 MSVC64)
set(MSVC64 1) # do not use (CMake variables): CMAKE_CL_64
endif()
if(NOT DEFINED CV_GCC AND CMAKE_CXX_COMPILER_ID MATCHES "GNU") if(NOT DEFINED CV_GCC AND CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(CV_GCC 1) set(CV_GCC 1)
...@@ -51,7 +49,7 @@ variable_watch(CMAKE_COMPILER_IS_CLANGCC access_CMAKE_COMPILER_IS_CLANGCXX) ...@@ -51,7 +49,7 @@ variable_watch(CMAKE_COMPILER_IS_CLANGCC access_CMAKE_COMPILER_IS_CLANGCXX)
# Detect Intel ICC compiler # Detect Intel ICC compiler
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
if(UNIX) if(UNIX)
if (__ICL) if(__ICL)
set(CV_ICC __ICL) set(CV_ICC __ICL)
elseif(__ICC) elseif(__ICC)
set(CV_ICC __ICC) set(CV_ICC __ICC)
...@@ -70,53 +68,65 @@ if(MSVC AND CMAKE_C_COMPILER MATCHES "icc|icl") ...@@ -70,53 +68,65 @@ if(MSVC AND CMAKE_C_COMPILER MATCHES "icc|icl")
set(CV_ICC __INTEL_COMPILER_FOR_WINDOWS) set(CV_ICC __INTEL_COMPILER_FOR_WINDOWS)
endif() endif()
if(NOT DEFINED CMAKE_CXX_COMPILER_VERSION) if(NOT DEFINED CMAKE_CXX_COMPILER_VERSION
message(WARNING "Compiler version is not available: CMAKE_CXX_COMPILER_VERSION is not set") AND NOT OPENCV_SUPPRESS_MESSAGE_MISSING_COMPILER_VERSION)
message(WARNING "OpenCV: Compiler version is not available: CMAKE_CXX_COMPILER_VERSION is not set")
endif() endif()
if((NOT DEFINED CMAKE_SYSTEM_PROCESSOR OR CMAKE_SYSTEM_PROCESSOR STREQUAL "")
if(WIN32 AND CV_GCC) AND NOT OPENCV_SUPPRESS_MESSAGE_MISSING_CMAKE_SYSTEM_PROCESSOR)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine message(WARNING "OpenCV: CMAKE_SYSTEM_PROCESSOR is not defined. Perhaps CMake toolchain is broken")
OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE endif()
OUTPUT_STRIP_TRAILING_WHITESPACE) if(NOT DEFINED CMAKE_SIZEOF_VOID_P
if(OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64") AND NOT OPENCV_SUPPRESS_MESSAGE_MISSING_CMAKE_SIZEOF_VOID_P)
set(MINGW64 1) message(WARNING "OpenCV: CMAKE_SIZEOF_VOID_P is not defined. Perhaps CMake toolchain is broken")
endif()
endif() endif()
message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR}") message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR}")
if(MSVC64 OR MINGW64) if(OPENCV_SKIP_SYSTEM_PROCESSOR_DETECTION)
set(X86_64 1) # custom setup: required variables are passed through cache / CMake's command-line
elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
set(X86 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
set(X86_64 1) set(X86_64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*")
set(X86 1) set(X86 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*)")
set(AARCH64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
set(ARM 1) set(ARM 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
set(AARCH64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le")
set(PPC64LE 1) set(PPC64LE 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
set(PPC64 1) set(PPC64 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(mips.*|MIPS.*)") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(mips.*|MIPS.*)")
set(MIPS 1) set(MIPS 1)
else()
if(NOT OPENCV_SUPPRESS_MESSAGE_UNRECOGNIZED_SYSTEM_PROCESSOR)
message(WARNING "OpenCV: unrecognized target processor configuration")
endif()
endif() endif()
# Workaround for 32-bit operating systems on x86_64/aarch64 processor # Workaround for 32-bit operating systems on x86_64
if(CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64) if(CMAKE_SIZEOF_VOID_P EQUAL 4 AND X86_64
AND NOT FORCE_X86_64 # deprecated (2019-12)
AND NOT OPENCV_FORCE_X86_64
)
message(STATUS "sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode") message(STATUS "sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode")
if (X86_64) if(X86_64)
unset(X86_64) unset(X86_64)
set(X86 1) set(X86 1)
endif() endif()
if (AARCH64) endif()
# Workaround for 32-bit operating systems on aarch64 processor
if(CMAKE_SIZEOF_VOID_P EQUAL 4 AND AARCH64
AND NOT OPENCV_FORCE_AARCH64
)
message(STATUS "sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode")
if(AARCH64)
unset(AARCH64) unset(AARCH64)
set(ARM 1) set(ARM 1)
endif() endif()
endif() endif()
# Similar code exists in OpenCVConfig.cmake # Similar code exists in OpenCVConfig.cmake
if(NOT DEFINED OpenCV_STATIC) if(NOT DEFINED OpenCV_STATIC)
# look for global setting # look for global setting
...@@ -130,14 +140,19 @@ endif() ...@@ -130,14 +140,19 @@ endif()
if(DEFINED OpenCV_ARCH AND DEFINED OpenCV_RUNTIME) if(DEFINED OpenCV_ARCH AND DEFINED OpenCV_RUNTIME)
# custom overridden values # custom overridden values
elseif(MSVC) elseif(MSVC)
if(CMAKE_CL_64) # see Modules/CMakeGenericSystem.cmake
set(OpenCV_ARCH x64) if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
elseif((CMAKE_GENERATOR MATCHES "ARM") OR ("${arch_hint}" STREQUAL "ARM") OR (CMAKE_VS_EFFECTIVE_PLATFORMS MATCHES "ARM|arm")) set(arch_hint "x64")
# see Modules/CmakeGenericSystem.cmake elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
set(OpenCV_ARCH ARM) set(arch_hint "ARM64")
elseif("${CMAKE_GENERATOR}" MATCHES "ARM")
set(arch_hint "ARM")
elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(arch_hint "x64")
else() else()
set(OpenCV_ARCH x86) set(OpenCV_ARCH x86)
endif() endif()
if(MSVC_VERSION EQUAL 1400) if(MSVC_VERSION EQUAL 1400)
set(OpenCV_RUNTIME vc8) set(OpenCV_RUNTIME vc8)
elseif(MSVC_VERSION EQUAL 1500) elseif(MSVC_VERSION EQUAL 1500)
...@@ -160,7 +175,7 @@ elseif(MSVC) ...@@ -160,7 +175,7 @@ elseif(MSVC)
elseif(MINGW) elseif(MINGW)
set(OpenCV_RUNTIME mingw) set(OpenCV_RUNTIME mingw)
if(MINGW64) if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
set(OpenCV_ARCH x64) set(OpenCV_ARCH x64)
else() else()
set(OpenCV_ARCH x86) set(OpenCV_ARCH x86)
......
...@@ -40,10 +40,7 @@ if (X86 AND UNIX AND NOT APPLE AND NOT ANDROID AND BUILD_SHARED_LIBS) ...@@ -40,10 +40,7 @@ if (X86 AND UNIX AND NOT APPLE AND NOT ANDROID AND BUILD_SHARED_LIBS)
endif() endif()
set(IPP_X64 0) set(IPP_X64 0)
if(CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8) if(X86_64)
set(IPP_X64 1)
endif()
if(CMAKE_CL_64)
set(IPP_X64 1) set(IPP_X64 1)
endif() endif()
......
...@@ -289,7 +289,7 @@ if(WIN32) ...@@ -289,7 +289,7 @@ if(WIN32)
if(HAVE_VFW) if(HAVE_VFW)
list(APPEND VIDEOIO_LIBRARIES vfw32) list(APPEND VIDEOIO_LIBRARIES vfw32)
endif() endif()
if(MINGW64) if(MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND VIDEOIO_LIBRARIES avifil32 avicap32 winmm msvfw32) list(APPEND VIDEOIO_LIBRARIES avifil32 avicap32 winmm msvfw32)
list(REMOVE_ITEM VIDEOIO_LIBRARIES vfw32) list(REMOVE_ITEM VIDEOIO_LIBRARIES vfw32)
elseif(MINGW) elseif(MINGW)
......
...@@ -15,7 +15,7 @@ file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH) ...@@ -15,7 +15,7 @@ file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH)
if(WIN32) if(WIN32)
SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder") SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder")
if(CMAKE_CL_64) if(X86_64)
SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug) SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug)
elseif(MSVC) elseif(MSVC)
SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug) SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug)
......
...@@ -18,7 +18,7 @@ if(NOT "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}" STREQUAL "${OPENNI_PRIME_SENSOR_M ...@@ -18,7 +18,7 @@ if(NOT "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}" STREQUAL "${OPENNI_PRIME_SENSOR_M
endif() endif()
if(WIN32) if(WIN32)
if(NOT (MSVC64 OR MINGW64)) if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
find_file(OPENNI_INCLUDES "XnCppWrapper.h" PATHS "$ENV{OPEN_NI_INSTALL_PATH}Include" DOC "OpenNI c++ interface header") find_file(OPENNI_INCLUDES "XnCppWrapper.h" PATHS "$ENV{OPEN_NI_INSTALL_PATH}Include" DOC "OpenNI c++ interface header")
find_library(OPENNI_LIBRARY "OpenNI" PATHS $ENV{OPEN_NI_LIB} DOC "OpenNI library") find_library(OPENNI_LIBRARY "OpenNI" PATHS $ENV{OPEN_NI_LIB} DOC "OpenNI library")
else() else()
...@@ -34,7 +34,7 @@ if(OPENNI_LIBRARY AND OPENNI_INCLUDES) ...@@ -34,7 +34,7 @@ if(OPENNI_LIBRARY AND OPENNI_INCLUDES)
set(HAVE_OPENNI TRUE) set(HAVE_OPENNI TRUE)
# the check: are PrimeSensor Modules for OpenNI installed # the check: are PrimeSensor Modules for OpenNI installed
if(WIN32) if(WIN32)
if(NOT (MSVC64 OR MINGW64)) if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore.dll" PATHS "$ENV{OPEN_NI_INSTALL_PATH}../PrimeSense/Sensor/Bin" "$ENV{OPEN_NI_INSTALL_PATH}../PrimeSense/SensorKinect/Bin" DOC "Core library of PrimeSensor Modules for OpenNI") find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore.dll" PATHS "$ENV{OPEN_NI_INSTALL_PATH}../PrimeSense/Sensor/Bin" "$ENV{OPEN_NI_INSTALL_PATH}../PrimeSense/SensorKinect/Bin" DOC "Core library of PrimeSensor Modules for OpenNI")
else() else()
find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore64.dll" PATHS "$ENV{OPEN_NI_INSTALL_PATH64}../PrimeSense/Sensor/Bin64" "$ENV{OPEN_NI_INSTALL_PATH64}../PrimeSense/SensorKinect/Bin64" DOC "Core library of PrimeSensor Modules for OpenNI") find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore64.dll" PATHS "$ENV{OPEN_NI_INSTALL_PATH64}../PrimeSense/Sensor/Bin64" "$ENV{OPEN_NI_INSTALL_PATH64}../PrimeSense/SensorKinect/Bin64" DOC "Core library of PrimeSensor Modules for OpenNI")
......
...@@ -13,7 +13,7 @@ if(NOT "${OPENNI2_INCLUDE_DIR}" STREQUAL "${OPENNI2_INCLUDE_DIR_INTERNAL}") ...@@ -13,7 +13,7 @@ if(NOT "${OPENNI2_INCLUDE_DIR}" STREQUAL "${OPENNI2_INCLUDE_DIR_INTERNAL}")
endif() endif()
if(WIN32) if(WIN32)
if(NOT (MSVC64 OR MINGW64)) if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
find_file(OPENNI2_INCLUDES "OpenNI.h" PATHS $ENV{OPENNI2_INCLUDE} "$ENV{OPEN_NI_INSTALL_PATH}Include" DOC "OpenNI2 c++ interface header") find_file(OPENNI2_INCLUDES "OpenNI.h" PATHS $ENV{OPENNI2_INCLUDE} "$ENV{OPEN_NI_INSTALL_PATH}Include" DOC "OpenNI2 c++ interface header")
find_library(OPENNI2_LIBRARY "OpenNI2" PATHS $ENV{OPENNI2_LIB} DOC "OpenNI2 library") find_library(OPENNI2_LIBRARY "OpenNI2" PATHS $ENV{OPENNI2_LIB} DOC "OpenNI2 library")
else() else()
......
...@@ -100,6 +100,30 @@ macro(ocv_update VAR) ...@@ -100,6 +100,30 @@ macro(ocv_update VAR)
endif() endif()
endmacro() endmacro()
function(_ocv_access_removed_variable VAR ACCESS)
if(ACCESS STREQUAL "MODIFIED_ACCESS")
set(OPENCV_SUPPRESS_MESSAGE_REMOVED_VARIABLE_${VAR} 1 PARENT_SCOPE)
return()
endif()
if(ACCESS MATCHES "UNKNOWN_.*"
AND NOT OPENCV_SUPPRESS_MESSAGE_REMOVED_VARIABLE
AND NOT OPENCV_SUPPRESS_MESSAGE_REMOVED_VARIABLE_${VAR}
)
message(WARNING "OpenCV: Variable has been removed from CMake scripts: ${VAR}")
set(OPENCV_SUPPRESS_MESSAGE_REMOVED_VARIABLE_${VAR} 1 PARENT_SCOPE) # suppress similar messages
endif()
endfunction()
macro(ocv_declare_removed_variable VAR)
if(NOT DEFINED ${VAR}) # don't hit external variables
variable_watch(${VAR} _ocv_access_removed_variable)
endif()
endmacro()
macro(ocv_declare_removed_variables)
foreach(_var ${ARGN})
ocv_declare_removed_variable(${_var})
endforeach()
endmacro()
# Search packages for the host system instead of packages for the target system # Search packages for the host system instead of packages for the target system
# in case of cross compilation these macros should be defined by the toolchain file # in case of cross compilation these macros should be defined by the toolchain file
if(NOT COMMAND find_host_package) if(NOT COMMAND find_host_package)
......
...@@ -84,17 +84,31 @@ endfunction() ...@@ -84,17 +84,31 @@ endfunction()
get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
if((NOT DEFINED CMAKE_SYSTEM_PROCESSOR OR CMAKE_SYSTEM_PROCESSOR STREQUAL "")
AND NOT OPENCV_SUPPRESS_MESSAGE_MISSING_CMAKE_SYSTEM_PROCESSOR)
message(WARNING "OpenCV: CMAKE_SYSTEM_PROCESSOR is not defined. Perhaps CMake toolchain is broken")
endif()
if(NOT DEFINED CMAKE_SIZEOF_VOID_P
AND NOT OPENCV_SUPPRESS_MESSAGE_MISSING_CMAKE_SIZEOF_VOID_P)
message(WARNING "OpenCV: CMAKE_SIZEOF_VOID_P is not defined. Perhaps CMake toolchain is broken")
endif()
if(DEFINED OpenCV_ARCH AND DEFINED OpenCV_RUNTIME) if(DEFINED OpenCV_ARCH AND DEFINED OpenCV_RUNTIME)
# custom overridden values # custom overridden values
elseif(MSVC) elseif(MSVC)
if(CMAKE_CL_64) # see Modules/CMakeGenericSystem.cmake
set(OpenCV_ARCH x64) if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
elseif((CMAKE_GENERATOR MATCHES "ARM") OR ("${arch_hint}" STREQUAL "ARM") OR (CMAKE_VS_EFFECTIVE_PLATFORMS MATCHES "ARM|arm")) set(arch_hint "x64")
# see Modules/CmakeGenericSystem.cmake elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
set(OpenCV_ARCH ARM) set(arch_hint "ARM64")
elseif("${CMAKE_GENERATOR}" MATCHES "ARM")
set(arch_hint "ARM")
elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(arch_hint "x64")
else() else()
set(OpenCV_ARCH x86) set(OpenCV_ARCH x86)
endif() endif()
if(MSVC_VERSION EQUAL 1400) if(MSVC_VERSION EQUAL 1400)
set(OpenCV_RUNTIME vc8) set(OpenCV_RUNTIME vc8)
elseif(MSVC_VERSION EQUAL 1500) elseif(MSVC_VERSION EQUAL 1500)
...@@ -127,11 +141,7 @@ elseif(MSVC) ...@@ -127,11 +141,7 @@ elseif(MSVC)
elseif(MINGW) elseif(MINGW)
set(OpenCV_RUNTIME mingw) set(OpenCV_RUNTIME mingw)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64")
set(MINGW64 1)
set(OpenCV_ARCH x64) set(OpenCV_ARCH x64)
else() else()
set(OpenCV_ARCH x86) set(OpenCV_ARCH x86)
......
...@@ -80,7 +80,7 @@ endif() ...@@ -80,7 +80,7 @@ endif()
if (WIN32 AND HAVE_DSHOW) if (WIN32 AND HAVE_DSHOW)
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.cpp) list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.cpp)
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.hpp) list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.hpp)
if (MINGW64) if(MINGW AND X86_64)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTRSAFE_NO_DEPRECATE") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTRSAFE_NO_DEPRECATE")
endif() endif()
endif() endif()
...@@ -267,7 +267,7 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations) ...@@ -267,7 +267,7 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
if(WIN32 AND HAVE_FFMPEG_WRAPPER) if(WIN32 AND HAVE_FFMPEG_WRAPPER)
#copy ffmpeg dll to the output folder #copy ffmpeg dll to the output folder
if(MSVC64 OR MINGW64) if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(FFMPEG_SUFFIX _64) set(FFMPEG_SUFFIX _64)
endif() endif()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment