diff --git a/CMakeLists.txt b/CMakeLists.txt index ab1e40498..f5e57803c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,6 +230,12 @@ endif() include(OpenCVPCHSupport.cmake REQUIRED) include(OpenCVModule.cmake REQUIRED) +if(PCHSupport_FOUND) + SET(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Use precompiled headers") +else() + SET(USE_PRECOMPILED_HEADERS OFF CACHE BOOL "Use precompiled headers" FORCE) +endif() + if(UNIX) include(OpenCVFindPkgConfig.cmake OPTIONAL) include(CheckFunctionExists) diff --git a/OpenCVModule.cmake b/OpenCVModule.cmake index 5f32c10aa..9c21465b0 100644 --- a/OpenCVModule.cmake +++ b/OpenCVModule.cmake @@ -46,7 +46,7 @@ macro(define_opencv_module name) INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" ) - if(PCHSupport_FOUND) + if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS) set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/src/precomp.hpp) if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*") if(${CMAKE_GENERATOR} MATCHES "Visual*") @@ -110,7 +110,7 @@ macro(define_opencv_module name) add_executable(${the_target} ${test_srcs} ${test_hdrs}) - if(PCHSupport_FOUND) + if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS) set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/test/test_precomp.hpp) if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*") if(${CMAKE_GENERATOR} MATCHES "Visual*") diff --git a/OpenCVPCHSupport.cmake b/OpenCVPCHSupport.cmake index 2fdfba557..a631a642a 100644 --- a/OpenCVPCHSupport.cmake +++ b/OpenCVPCHSupport.cmake @@ -34,11 +34,6 @@ ELSE() ENDIF() ENDIF(CMAKE_COMPILER_IS_GNUCXX) -#if (ANDROID) - #SET(PCHSupport_FOUND FALSE) -#endif() - - MACRO(_PCH_GET_COMPILE_FLAGS _out_compile_flags) @@ -213,6 +208,12 @@ MACRO(ADD_PRECOMPILED_HEADER _targetName _input) ELSE(${_targetType} STREQUAL SHARED_LIBRARY) ADD_LIBRARY(${_targetName}_pch_dephelp STATIC ${_pch_dephelp_cxx}) ENDIF(${_targetType} STREQUAL SHARED_LIBRARY) + + set_target_properties(${_targetName}_pch_dephelp PROPERTIES + DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/" + ) + FILE(MAKE_DIRECTORY ${_outdir}) diff --git a/modules/haartraining/CMakeLists.txt b/modules/haartraining/CMakeLists.txt index 74d021d16..047c3776a 100644 --- a/modules/haartraining/CMakeLists.txt +++ b/modules/haartraining/CMakeLists.txt @@ -38,6 +38,12 @@ set(cvhaartraining_lib_src ) add_library(opencv_haartraining_engine STATIC ${cvhaartraining_lib_src}) +set_target_properties(opencv_haartraining_engine PROPERTIES + DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/" + INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" + ) if(NOT ANDROID) # ----------------------------------------------------------- diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 618b39648..2e601866c 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -252,7 +252,7 @@ endif() add_library(${the_target} ${lib_srcs} ${highgui_hdrs} ${grfmt_hdrs} ${highgui_ext_hdrs}) -if(PCHSupport_FOUND) +if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS) set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/src/precomp.hpp) if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*") if(${CMAKE_GENERATOR} MATCHES "Visual*") diff --git a/modules/traincascade/CMakeLists.txt b/modules/traincascade/CMakeLists.txt index eb39a0cea..382ff1fcf 100644 --- a/modules/traincascade/CMakeLists.txt +++ b/modules/traincascade/CMakeLists.txt @@ -30,6 +30,9 @@ add_executable(${the_target} ${traincascade_files}) add_dependencies(${the_target} ${traincascade_libs}) set_target_properties(${the_target} PROPERTIES DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/" + INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" OUTPUT_NAME "opencv_traincascade") target_link_libraries(${the_target} ${traincascade_libs})