mirror of
https://github.com/opencv/opencv.git
synced 2025-07-25 22:57:53 +08:00
Merge pull request #15835 from alalek:cmake_cpu_optimizations_fix_15802
This commit is contained in:
commit
d32d31577c
@ -714,7 +714,10 @@ macro(ocv_compiler_optimization_process_sources SOURCES_VAR_NAME LIBS_VAR_NAME T
|
|||||||
foreach(OPT ${CPU_DISPATCH_FINAL})
|
foreach(OPT ${CPU_DISPATCH_FINAL})
|
||||||
if(__result_${OPT})
|
if(__result_${OPT})
|
||||||
#message("${OPT}: ${__result_${OPT}}")
|
#message("${OPT}: ${__result_${OPT}}")
|
||||||
if(CMAKE_GENERATOR MATCHES "^Visual")
|
if(CMAKE_GENERATOR MATCHES "^Visual"
|
||||||
|
OR OPENCV_CMAKE_CPU_OPTIMIZATIONS_FORCE_TARGETS
|
||||||
|
)
|
||||||
|
# MSVS generator is not able to properly order compilation flags:
|
||||||
# extra flags are added before common flags, so switching between optimizations doesn't work correctly
|
# extra flags are added before common flags, so switching between optimizations doesn't work correctly
|
||||||
# Also CMAKE_CXX_FLAGS doesn't work (it is directory-based, so add_subdirectory is required)
|
# Also CMAKE_CXX_FLAGS doesn't work (it is directory-based, so add_subdirectory is required)
|
||||||
add_library(${TARGET_BASE_NAME}_${OPT} OBJECT ${__result_${OPT}})
|
add_library(${TARGET_BASE_NAME}_${OPT} OBJECT ${__result_${OPT}})
|
||||||
|
@ -63,7 +63,6 @@ foreach(mod ${OPENCV_MODULES_BUILD} ${OPENCV_MODULES_DISABLED_USER} ${OPENCV_MOD
|
|||||||
unset(OPENCV_MODULE_${mod}_PRIVATE_OPT_DEPS CACHE)
|
unset(OPENCV_MODULE_${mod}_PRIVATE_OPT_DEPS CACHE)
|
||||||
unset(OPENCV_MODULE_${mod}_LINK_DEPS CACHE)
|
unset(OPENCV_MODULE_${mod}_LINK_DEPS CACHE)
|
||||||
unset(OPENCV_MODULE_${mod}_WRAPPERS CACHE)
|
unset(OPENCV_MODULE_${mod}_WRAPPERS CACHE)
|
||||||
unset(OPENCV_DEPENDANT_TARGETS_${mod} CACHE)
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# clean modules info which needs to be recalculated
|
# clean modules info which needs to be recalculated
|
||||||
|
@ -288,9 +288,22 @@ function(ocv_append_target_property target prop)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
if(DEFINED OPENCV_DEPENDANT_TARGETS_LIST)
|
||||||
|
foreach(v ${OPENCV_DEPENDANT_TARGETS_LIST})
|
||||||
|
unset(${v} CACHE)
|
||||||
|
endforeach()
|
||||||
|
unset(OPENCV_DEPENDANT_TARGETS_LIST CACHE)
|
||||||
|
endif()
|
||||||
|
|
||||||
function(ocv_append_dependant_targets target)
|
function(ocv_append_dependant_targets target)
|
||||||
#ocv_debug_message("ocv_append_dependant_targets(${target} ${ARGN})")
|
#ocv_debug_message("ocv_append_dependant_targets(${target} ${ARGN})")
|
||||||
_ocv_fix_target(target)
|
_ocv_fix_target(target)
|
||||||
|
list(FIND OPENCV_DEPENDANT_TARGETS_LIST "OPENCV_DEPENDANT_TARGETS_${target}" __id)
|
||||||
|
if(__id EQUAL -1)
|
||||||
|
list(APPEND OPENCV_DEPENDANT_TARGETS_LIST "OPENCV_DEPENDANT_TARGETS_${target}")
|
||||||
|
list(SORT OPENCV_DEPENDANT_TARGETS_LIST)
|
||||||
|
set(OPENCV_DEPENDANT_TARGETS_LIST "${OPENCV_DEPENDANT_TARGETS_LIST}" CACHE INTERNAL "")
|
||||||
|
endif()
|
||||||
set(OPENCV_DEPENDANT_TARGETS_${target} "${OPENCV_DEPENDANT_TARGETS_${target}};${ARGN}" CACHE INTERNAL "" FORCE)
|
set(OPENCV_DEPENDANT_TARGETS_${target} "${OPENCV_DEPENDANT_TARGETS_${target}};${ARGN}" CACHE INTERNAL "" FORCE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user