mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 13:47:32 +08:00
cmake: ccache
This commit is contained in:
parent
af8e6b06f7
commit
a3bfa6f566
@ -217,6 +217,7 @@ OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binar
|
|||||||
|
|
||||||
# OpenCV build options
|
# OpenCV build options
|
||||||
# ===================================================
|
# ===================================================
|
||||||
|
OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
|
||||||
OCV_OPTION(ENABLE_DYNAMIC_CUDA "Enabled dynamic CUDA linkage" ON IF ANDROID )
|
OCV_OPTION(ENABLE_DYNAMIC_CUDA "Enabled dynamic CUDA linkage" ON IF ANDROID )
|
||||||
OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS) )
|
OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS) )
|
||||||
OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) IF (CMAKE_VERSION VERSION_GREATER "2.8.0") )
|
OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) IF (CMAKE_VERSION VERSION_GREATER "2.8.0") )
|
||||||
@ -731,6 +732,7 @@ else()
|
|||||||
status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
|
status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
|
||||||
status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
|
status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
|
||||||
endif()
|
endif()
|
||||||
|
status(" ccache:" CMAKE_COMPILER_IS_CCACHE THEN YES ELSE NO)
|
||||||
status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
|
status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
|
||||||
|
|
||||||
# ========================== OpenCV modules ==========================
|
# ========================== OpenCV modules ==========================
|
||||||
|
@ -1,3 +1,33 @@
|
|||||||
|
if(ENABLE_CCACHE AND NOT CMAKE_COMPILER_IS_CCACHE)
|
||||||
|
# This works fine with Unix Makefiles and Ninja generators
|
||||||
|
find_host_program(CCACHE_PROGRAM ccache)
|
||||||
|
if(CCACHE_PROGRAM)
|
||||||
|
message(STATUS "Looking for ccache - found (${CCACHE_PROGRAM})")
|
||||||
|
get_property(__OLD_RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
|
||||||
|
if(__OLD_RULE_LAUNCH_COMPILE)
|
||||||
|
message(STATUS "Can't replace CMake compiler launcher")
|
||||||
|
else()
|
||||||
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||||
|
# NOTE: Actually this check doesn't work as expected.
|
||||||
|
# "RULE_LAUNCH_COMPILE" is ignored by CMake during try_compile() step.
|
||||||
|
# ocv_check_compiler_flag(CXX "" IS_CCACHE_WORKS)
|
||||||
|
set(IS_CCACHE_WORKS 1)
|
||||||
|
if(IS_CCACHE_WORKS)
|
||||||
|
set(CMAKE_COMPILER_IS_CCACHE 1)
|
||||||
|
else()
|
||||||
|
message(STATUS "Unable to compile program with enabled ccache, reverting...")
|
||||||
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${__OLD_RULE_LAUNCH_COMPILE}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "Looking for ccache - not found")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if((CMAKE_COMPILER_IS_CLANGCXX OR CMAKE_COMPILER_IS_CLANGCC OR CMAKE_COMPILER_IS_CCACHE) AND NOT CMAKE_GENERATOR MATCHES "Xcode")
|
||||||
|
set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MINGW OR (X86 AND UNIX AND NOT APPLE))
|
if(MINGW OR (X86 AND UNIX AND NOT APPLE))
|
||||||
# mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O2 instead
|
# mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O2 instead
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
@ -111,6 +141,10 @@ if(CMAKE_COMPILER_IS_GNUCXX)
|
|||||||
add_extra_compiler_option(-pthread)
|
add_extra_compiler_option(-pthread)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_CLANGCXX)
|
||||||
|
add_extra_compiler_option(-Qunused-arguments)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(OPENCV_WARNINGS_ARE_ERRORS)
|
if(OPENCV_WARNINGS_ARE_ERRORS)
|
||||||
add_extra_compiler_option(-Werror)
|
add_extra_compiler_option(-Werror)
|
||||||
endif()
|
endif()
|
||||||
|
@ -14,10 +14,6 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|||||||
set(CMAKE_COMPILER_IS_CLANGCC 1)
|
set(CMAKE_COMPILER_IS_CLANGCC 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((CMAKE_COMPILER_IS_CLANGCXX OR CMAKE_COMPILER_IS_CLANGCC) AND NOT CMAKE_GENERATOR MATCHES "Xcode")
|
|
||||||
set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Detect Intel ICC compiler -- for -fPIC in 3rdparty ( UNIX ONLY ):
|
# Detect Intel ICC compiler -- for -fPIC in 3rdparty ( UNIX ONLY ):
|
||||||
# see include/opencv/cxtypes.h file for related ICC & CV_ICC defines.
|
# see include/opencv/cxtypes.h file for related ICC & CV_ICC defines.
|
||||||
|
Loading…
Reference in New Issue
Block a user