]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
added precompiled headers for XCode (not tested yet) and GCC makefiles.
authorvp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 22 Jun 2009 23:15:25 +0000 (23:15 +0000)
committervp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 22 Jun 2009 23:15:25 +0000 (23:15 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@1868 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/3rdparty/lapack/CMakeLists.txt
opencv/CMakeLists.txt
opencv/include/opencv/cxtypes.h
opencv/src/cv/CMakeLists.txt
opencv/src/cvaux/CMakeLists.txt
opencv/src/cxcore/CMakeLists.txt
opencv/src/highgui/CMakeLists.txt
opencv/src/ml/CMakeLists.txt
opencv/tests/cv/CMakeLists.txt
opencv/tests/cxcore/CMakeLists.txt

index bf2eb4397726c5b7f4819ecce980ea7558f29199..311fd1aa2dc1ad70795595b330780ee57e17fd17 100644 (file)
@@ -9,6 +9,7 @@ project(opencv_lapack)
 include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}
        "${CMAKE_CURRENT_SOURCE_DIR}/../include"
+    ${CMAKE_CURRENT_BINARY_DIR}
        )
 
 # The .cpp files:
@@ -16,28 +17,6 @@ file(GLOB lib_srcs *.c)
 file(GLOB lib_hdrs *.h)
 set(lib_ext_hdrs "../include/f2c.h" "../include/cblas.h" "../include/clapack.h")
 
-if(WIN32 AND MSVC)
-    set(pch_header "clapack.h")
-    set(pch_src "precomp.c")
-    list(REMOVE_ITEM lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src})
-    set(lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src} ${lib_srcs})
-    foreach(src_file ${lib_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
-
 # ----------------------------------------------------------------------------------
 #                              Define the library target:
 # ----------------------------------------------------------------------------------
@@ -46,6 +25,18 @@ set(the_target "opencv_lapack")
 
 add_library(${the_target} STATIC ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
 
+if(PCHSupport_FOUND)
+    set(pch_header ${CMAKE_SOURCE_DIR}/3rdparty/include/clapack.h)
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")
+            set(${the_target}_pch "precomp.c")
+        endif()            
+        add_native_precompiled_header(${the_target} ${pch_header})
+    #elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
+    #    add_precompiled_header(${the_target} ${pch_header})
+    endif()
+endif()
+
 if(MSVC)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
 endif()
index 376cce84b4b4e7bf6a2cd48b2ef5609c46ec03f4..f01a220ac356395d663a5f397102a104ccd4e7d2 100644 (file)
@@ -151,6 +151,8 @@ else()
        set(OPENCV_BUILD_3RDPARTY_LIBS FALSE CACHE BOOL "Build 3rd party libraries")
 endif()
 
+include(OpenCVPCHSupport.cmake REQUIRED)
+
 if(UNIX)
     include(OpenCVFindPkgConfig.cmake OPTIONAL)
     include(CheckFunctionExists)
index 67f6a3657f9e6eff97450c400571212da17530c8..6212c49450651d6ce527ba254c5bb92c1ccc0a9a 100644 (file)
@@ -63,7 +63,7 @@
     #define CV_ICC   __ECC\r
   #endif\r
 \r
-  #if (defined WIN32 && defined _WIN64 && \\r
+  #if ((defined WIN32 || defined _WIN64) && \\r
       (_MSC_VER >= 1400 || defined CV_ICC)) \\r
       || (defined __SSE2__ && defined __GNUC__ && __GNUC__ >= 4)\r
     #include <emmintrin.h>\r
index 534fc195937a26eacf486b4d51a9e49e5cee2daa..427779593dba6e83b0912982f74a476bf3819855 100644 (file)
@@ -6,6 +6,12 @@ project(cv)
 file(GLOB lib_srcs "*.cpp")\r
 source_group("Src" FILES ${lib_srcs})\r
 \r
+add_definitions(-D CVAPI_EXPORTS)\r
+\r
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"\r
+                    "${CMAKE_CURRENT_SOURCE_DIR}"\r
+                    "${CMAKE_CURRENT_BINARY_DIR}")\r
+\r
 set(lib_hdr_names cv.h cv.hpp cvcompat.h cvtypes.h)\r
 set(lib_hdrs)\r
 foreach(h ${lib_hdr_names})\r
@@ -16,32 +22,22 @@ source_group("Include\\External" FILES ${lib_hdrs})
 file(GLOB lib_int_hdrs "*.h*")\r
 source_group("Include\\Internal" FILES ${lib_int_hdrs})\r
 \r
-if(WIN32 AND MSVC)\r
-    set(pch_header "_cv.h")\r
-    set(pch_src "cvprecomp.cpp")\r
-    list(REMOVE_ITEM lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src})\r
-    set(lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src} ${lib_srcs})\r
-    foreach(src_file ${lib_srcs})\r
-        if(${src_file} MATCHES ${pch_src})\r
-            set_source_files_properties(\r
-                ${src_file}\r
-                PROPERTIES\r
-                COMPILE_FLAGS "/Yc${pch_header}"\r
-                )\r
-        else()\r
-            set_source_files_properties(\r
-                ${src_file}\r
-                PROPERTIES\r
-                COMPILE_FLAGS "/Yu${pch_header}"\r
-                )\r
-        endif()\r
-    endforeach()\r
-endif()\r
-\r
 set(the_target "cv")\r
 \r
 add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})\r
 \r
+if(PCHSupport_FOUND)\r
+    set(pch_header ${CMAKE_SOURCE_DIR}/src/cv/_cv.h)\r
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")\r
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")\r
+            set(${the_target}_pch "cvprecomp.cpp")\r
+        endif()            \r
+        add_native_precompiled_header(${the_target} ${pch_header})\r
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")\r
+        add_precompiled_header(${the_target} ${pch_header})\r
+    endif()\r
+endif()\r
+\r
 # For dynamic link numbering convenions\r
 set_target_properties(${the_target} PROPERTIES\r
     VERSION ${OPENCV_VERSION}\r
@@ -54,7 +50,6 @@ set_target_properties(${the_target} PROPERTIES
        DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"\r
        ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"\r
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"\r
-       DEFINE_SYMBOL "CVAPI_EXPORTS"\r
        )\r
 \r
 # Add the required libraries for linking:\r
@@ -66,7 +61,6 @@ if(MSVC AND CMAKE_CROSSCOMPILING)
                )\r
 endif()\r
 \r
-\r
 # Dependencies of this target:\r
 add_dependencies(${the_target} cxcore)\r
 \r
index bc296980a9ae6b9f7319de11f7779982e8d87aa3..5121332a29fda76bc2192455126cd413cfb83c40 100644 (file)
@@ -22,29 +22,12 @@ set(lib_hdrs ${lib_hdrs} ${aux_hdrs_ext} ${aux_hdrs_int})
 source_group("Include\\External" FILES ${aux_hdrs_ext})
 source_group("Include\\Internal" FILES ${aux_hdrs_int})
 
-include_directories("${CMAKE_SOURCE_DIR}/src/cv" ".")
-
-if(WIN32 AND MSVC)
-    set(pch_header "_cvaux.h")
-    set(pch_src "cvauxprecomp.cpp")
-    list(REMOVE_ITEM lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src})
-    set(lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src} ${lib_srcs})
-    foreach(src_file ${lib_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
+add_definitions(-D CVAPI_EXPORTS)
+
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"
+                    "${CMAKE_CURRENT_SOURCE_DIR}"
+                    "${CMAKE_CURRENT_BINARY_DIR}"
+                                       "${CMAKE_SOURCE_DIR}/src/cv" ".")
 
 # ----------------------------------------------------------------------------------
 #                              Define the library target:
@@ -53,6 +36,18 @@ set(the_target "cvaux")
 
 add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs})
 
+if(PCHSupport_FOUND)
+    set(pch_header ${CMAKE_SOURCE_DIR}/src/cvaux/_cvaux.h)
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")
+            set(${the_target}_pch "cvauxprecomp.cpp")
+        endif()            
+        add_native_precompiled_header(${the_target} ${pch_header})
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
+        add_precompiled_header(${the_target} ${pch_header})
+    endif()
+endif()
+
 # For dynamic link numbering convenions
 set_target_properties(${the_target} PROPERTIES
        VERSION ${OPENCV_VERSION}
@@ -65,7 +60,6 @@ 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/"
-       DEFINE_SYMBOL "CVAPI_EXPORTS"
        )
 
 # Add the required libraries for linking:
@@ -88,5 +82,3 @@ install(TARGETS ${the_target}
 install(FILES ${aux_hdrs_ext}
         DESTINATION include/opencv
         COMPONENT dev)
-
-
index b02e2c58bd111e1c68a87e35cda0f0065a9ae200..54e9ae315757d66d8b7840a4117aed0baba03aeb 100644 (file)
@@ -1,82 +1,75 @@
-# ----------------------------------------------------------------------------
-#  CMake file for cxcore. See root CMakeLists.txt
-# ----------------------------------------------------------------------------
-project(cxcore)
-
-file(GLOB lib_srcs "*.cpp")
-source_group("Src" FILES ${lib_srcs})
-
-include_directories("${CMAKE_SOURCE_DIR}/3rdparty/include")
-
-set(lib_hdr_names cxcore.h cxcore.hpp cxerror.h cxmat.hpp cxmisc.h cxoperations.hpp cxtypes.h cvver.h cvwimage.h)
-set(lib_hdrs)
-foreach(h ${lib_hdr_names})
-    list(APPEND lib_hdrs "${CMAKE_SOURCE_DIR}/include/opencv/${h}")
-endforeach()
-source_group("Include\\External" FILES ${lib_hdrs})
-
-file(GLOB lib_int_hdrs "*.h*")
-source_group("Include\\Internal" FILES ${lib_int_hdrs})
-
-if(WIN32 AND MSVC)
-    set(pch_header "_cxcore.h")
-    set(pch_src "cxprecomp.cpp")
-    list(REMOVE_ITEM lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src})
-    set(lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src} ${lib_srcs})
-    foreach(src_file ${lib_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
-
-set(the_target "cxcore")
-
-add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})
-
-# For dynamic link numbering convenions
-set_target_properties(${the_target} PROPERTIES
-    VERSION ${OPENCV_VERSION}
-    SOVERSION ${OPENCV_SOVERSION}
-    OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"
-    )
-
-# Additional target properties
-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/"
-       DEFINE_SYMBOL "CVAPI_EXPORTS"
-       )
-
-# Add the required libraries for linking:
-target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} opencv_lapack)
-
-# Linker flag needed for Windows Mobile 5 and 6 SDKs
+# ----------------------------------------------------------------------------\r
+#  CMake file for cxcore. See root CMakeLists.txt\r
+# ----------------------------------------------------------------------------\r
+project(cxcore)\r
+\r
+file(GLOB lib_srcs "*.cpp")\r
+source_group("Src" FILES ${lib_srcs})\r
+\r
+add_definitions(-D CVAPI_EXPORTS)\r
+\r
+include_directories("${CMAKE_SOURCE_DIR}/3rdparty/include"\r
+                    "${CMAKE_SOURCE_DIR}/include/opencv"\r
+                                       "${CMAKE_CURRENT_BINARY_DIR}")\r
+\r
+set(lib_hdr_names cxcore.h cxcore.hpp cxerror.h cxmat.hpp cxmisc.h cxoperations.hpp cxtypes.h cvver.h cvwimage.h)\r
+set(lib_hdrs)\r
+foreach(h ${lib_hdr_names})\r
+    list(APPEND lib_hdrs "${CMAKE_SOURCE_DIR}/include/opencv/${h}")\r
+endforeach()\r
+source_group("Include\\External" FILES ${lib_hdrs})\r
+\r
+file(GLOB lib_int_hdrs "*.h*")\r
+source_group("Include\\Internal" FILES ${lib_int_hdrs})\r
+\r
+set(the_target "cxcore")\r
+\r
+add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})\r
+\r
+if(PCHSupport_FOUND)\r
+    set(pch_header ${CMAKE_SOURCE_DIR}/src/cxcore/_cxcore.h)\r
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")\r
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")\r
+            set(${the_target}_pch "cxprecomp.cpp")\r
+        endif()            \r
+        add_native_precompiled_header(${the_target} ${pch_header})\r
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")\r
+        add_precompiled_header(${the_target} ${pch_header})\r
+    endif()\r
+endif()\r
+\r
+# For dynamic link numbering convenions\r
+set_target_properties(${the_target} PROPERTIES\r
+    VERSION ${OPENCV_VERSION}\r
+    SOVERSION ${OPENCV_SOVERSION}\r
+    OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"\r
+    )\r
+\r
+# Additional target properties\r
+set_target_properties(${the_target} PROPERTIES\r
+    DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"\r
+       ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"\r
+       RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"\r
+       )\r
+\r
+# Add the required libraries for linking:\r
+target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} opencv_lapack)\r
+\r
+# Linker flag needed for Windows Mobile 5 and 6 SDKs\r
 if(MSVC AND CMAKE_CROSSCOMPILING)\r
        set_target_properties(${the_target} PROPERTIES\r
                LINK_FLAGS "/NODEFAULTLIB:secchk"\r
                )\r
-endif()
-
-add_dependencies(${the_target} opencv_lapack)
-
-install(TARGETS ${the_target}
-       RUNTIME DESTINATION bin COMPONENT dev
-       LIBRARY DESTINATION lib COMPONENT dev
-       ARCHIVE DESTINATION lib COMPONENT dev)
-
-# install each module headers separately
-install(FILES ${lib_hdrs}
-        DESTINATION include/opencv
-        COMPONENT dev)
+endif()\r
+\r
+add_dependencies(${the_target} opencv_lapack)\r
+\r
+install(TARGETS ${the_target}\r
+    RUNTIME DESTINATION bin COMPONENT dev\r
+       LIBRARY DESTINATION lib COMPONENT dev\r
+       ARCHIVE DESTINATION lib COMPONENT dev)\r
+\r
+# install each module headers separately\r
+install(FILES ${lib_hdrs}\r
+        DESTINATION include/opencv\r
+        COMPONENT dev)\r
index 34b872df61d908535171c38069a42226683eb73f..850742906b1520021683425fc0a5d82932166273 100644 (file)
@@ -131,38 +131,31 @@ endif()
 
 set(lib_srcs ${highgui_srcs} ${grfmt_srcs})
 
-if(WIN32 AND MSVC)
-    set(pch_header "_highgui.h")
-    set(pch_src "precomp.cpp")
-    list(REMOVE_ITEM lib_srcs ${pch_src})
-    set(lib_srcs ${pch_src} ${lib_srcs})
-    foreach(src_file ${lib_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-    #set(lib_srcs ${lib_srcs} precomp.cpp)  # Already added above...
-endif()
-
 # ----------------------------------------------------------------------------------
 #                              Define the library target:
 # ----------------------------------------------------------------------------------
 set(the_target "highgui")
 
-add_definitions(-DHIGHGUI_EXPORTS)
+add_definitions(-DHIGHGUI_EXPORTS -DCVAPI_EXPORTS)
+
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"
+                    "${CMAKE_CURRENT_SOURCE_DIR}"
+                    "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_library(${the_target} SHARED ${lib_srcs} ${highgui_hdrs} ${grfmt_hdrs} ${highgui_ext_hdrs})
 
+if(PCHSupport_FOUND)
+    set(pch_header ${CMAKE_SOURCE_DIR}/src/highgui/_highgui.h)
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")
+            set(${the_target}_pch "precomp.cpp")
+        endif()            
+        add_native_precompiled_header(${the_target} ${pch_header})
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND (${CMAKE_GENERATOR} MATCHES ".*Makefiles"))
+        add_precompiled_header(${the_target} ${pch_header})
+    endif()
+endif()
+
 # For dynamic link numbering convenions
 set_target_properties(${the_target} PROPERTIES
     VERSION ${OPENCV_VERSION}
@@ -175,7 +168,6 @@ 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/"
-       DEFINE_SYMBOL "CVAPI_EXPORTS"
        LINK_INTERFACE_LIBRARIES ""
        )
 
@@ -217,4 +209,3 @@ install(TARGETS ${the_target}
 install(FILES ${highgui_ext_hdrs}
         DESTINATION include/opencv
         COMPONENT dev)
-
index af0ef92d33f4dcddcfc147887a567043e434b88a..d70e453c41f2d332bca84849aecaf6fceb7933af 100644 (file)
@@ -1,75 +1,69 @@
-# ----------------------------------------------------------------------------
-#  CMake file for ml. See root CMakeLists.txt
-# ----------------------------------------------------------------------------
-project(ml)
-
-file(GLOB lib_srcs "*.cpp")
-source_group("Src" FILES ${lib_srcs})
-set(lib_hdrs ${CMAKE_SOURCE_DIR}/include/opencv/ml.h)
-source_group("Include\\External" FILES ${lib_hdrs})
-file(GLOB lib_int_hdrs "*.h*")
-source_group("Include\\Internal" FILES ${lib_int_hdrs})
-
-if(WIN32 AND MSVC)
-    set(pch_header "_ml.h")
-    set(pch_src "ml.cpp")
-    list(REMOVE_ITEM lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src})
-    set(lib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/${pch_src} ${lib_srcs})
-    foreach(src_file ${lib_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
-
-set(the_target "ml")
-
-add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})
-
-# For dynamic link numbering convenions
-set_target_properties(${the_target} PROPERTIES
-    VERSION ${OPENCV_VERSION}
-    SOVERSION ${OPENCV_SOVERSION}
-    OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"
-    )
-
-# Additional target properties
-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/"
-       DEFINE_SYMBOL "CVAPI_EXPORTS"
-       )
-       
-# Linker flag needed for Windows Mobile 5 and 6 SDKs
+# ----------------------------------------------------------------------------\r
+#  CMake file for ml. See root CMakeLists.txt\r
+# ----------------------------------------------------------------------------\r
+project(ml)\r
+\r
+file(GLOB lib_srcs "*.cpp")\r
+source_group("Src" FILES ${lib_srcs})\r
+set(lib_hdrs ${CMAKE_SOURCE_DIR}/include/opencv/ml.h)\r
+source_group("Include\\External" FILES ${lib_hdrs})\r
+file(GLOB lib_int_hdrs "*.h*")\r
+source_group("Include\\Internal" FILES ${lib_int_hdrs})\r
+\r
+add_definitions(-D CVAPI_EXPORTS)\r
+\r
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"\r
+                    "${CMAKE_CURRENT_SOURCE_DIR}"\r
+                    "${CMAKE_CURRENT_BINARY_DIR}")\r
+\r
+set(the_target "ml")\r
+\r
+add_library(${the_target} SHARED ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})\r
+\r
+if(PCHSupport_FOUND)\r
+    set(pch_header ${CMAKE_SOURCE_DIR}/src/ml/_ml.h)\r
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")\r
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")\r
+            set(${the_target}_pch "ml.cpp")\r
+        endif()            \r
+        add_native_precompiled_header(${the_target} ${pch_header})\r
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")\r
+        add_precompiled_header(${the_target} ${pch_header})\r
+    endif()\r
+endif()\r
+\r
+# For dynamic link numbering convenions\r
+set_target_properties(${the_target} PROPERTIES\r
+    VERSION ${OPENCV_VERSION}\r
+    SOVERSION ${OPENCV_SOVERSION}\r
+    OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}"\r
+    )\r
+\r
+# Additional target properties\r
+set_target_properties(${the_target} PROPERTIES\r
+       DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"\r
+       ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"\r
+       RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"\r
+       )\r
+\r
+# Linker flag needed for Windows Mobile 5 and 6 SDKs\r
 if(MSVC AND CMAKE_CROSSCOMPILING)\r
        set_target_properties(${the_target} PROPERTIES\r
                LINK_FLAGS "/NODEFAULTLIB:secchk"\r
                )\r
-endif()
-
-# Add the required libraries for linking:
-target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} cxcore)
-
-# Dependencies of this target:
-add_dependencies(${the_target} cxcore)
-
-install(TARGETS ${the_target}
-       RUNTIME DESTINATION bin COMPONENT dev
-       LIBRARY DESTINATION lib COMPONENT dev
-       ARCHIVE DESTINATION lib COMPONENT dev)
-
-install(FILES ${lib_hdrs}
-        DESTINATION include/opencv
-        COMPONENT dev)
-
+endif()\r
+\r
+# Add the required libraries for linking:\r
+target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} cxcore)\r
+\r
+# Dependencies of this target:\r
+add_dependencies(${the_target} cxcore)\r
+\r
+install(TARGETS ${the_target}\r
+       RUNTIME DESTINATION bin COMPONENT dev\r
+       LIBRARY DESTINATION lib COMPONENT dev\r
+       ARCHIVE DESTINATION lib COMPONENT dev)\r
+\r
+install(FILES ${lib_hdrs}\r
+        DESTINATION include/opencv\r
+        COMPONENT dev)\r
index ac83c5d86985ea87a1345be64676221c69c79bb0..40ae9b8a0cc41f5f8c145f9a64aca4ab30dfa767 100644 (file)
@@ -9,27 +9,9 @@ source_group("Src" FILES ${test_srcs})
 file(GLOB test_hdrs "src/*.h*")
 source_group("Include" FILES ${test_hdrs})
 
-if(WIN32 AND MSVC)
-    set(pch_header "cvtest.h")
-    set(pch_src "cvtest.cpp")
-    list(REMOVE_ITEM test_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/${pch_src})
-    set(test_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/${pch_src} ${test_srcs})
-    foreach(src_file ${test_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"
+                    "${CMAKE_CURRENT_SOURCE_DIR}/src"
+                    "${CMAKE_CURRENT_BINARY_DIR}")
 
 include_directories(../cxts)
 
@@ -37,6 +19,18 @@ set(the_target "cvtest")
 
 add_executable(${the_target} ${test_srcs} ${test_hdrs})
 
+if(PCHSupport_FOUND)
+    set(pch_header ${CMAKE_SOURCE_DIR}/tests/cv/src/cvtest.h)
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")
+            set(${the_target}_pch "src/cvtest.cpp")
+        endif()            
+        add_native_precompiled_header(${the_target} ${pch_header})
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
+        add_precompiled_header(${the_target} ${pch_header})
+    endif()
+endif()
+
 # Additional target properties
 set_target_properties(${the_target} PROPERTIES
        DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
index 2032fe8b8792eacc52ac4833d12fa28d1a4a21d2..441414fdfbb3a18422433c6f50df2034d6fe1912 100644 (file)
@@ -9,27 +9,9 @@ source_group("Src" FILES ${test_srcs})
 file(GLOB test_hdrs "src/*.h*")
 source_group("Include" FILES ${test_hdrs})
 
-if(WIN32 AND MSVC)
-    set(pch_header "cxcoretest.h")
-    set(pch_src "precomp.cpp")
-    list(REMOVE_ITEM test_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/${pch_src})
-    set(test_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/${pch_src} ${test_srcs})
-    foreach(src_file ${test_srcs})
-        if(${src_file} MATCHES ${pch_src})
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yc${pch_header}"
-                )
-        else()
-            set_source_files_properties(
-                ${src_file}
-                PROPERTIES
-                COMPILE_FLAGS "/Yu${pch_header}"
-                )
-        endif()
-    endforeach()
-endif()
+include_directories("${CMAKE_SOURCE_DIR}/include/opencv"
+                    "${CMAKE_CURRENT_SOURCE_DIR}/src"
+                    "${CMAKE_CURRENT_BINARY_DIR}")
 
 include_directories(../cxts)
 
@@ -37,6 +19,18 @@ set(the_target "cxcoretest")
 
 add_executable(${the_target} ${test_srcs} ${test_hdrs})
 
+if(PCHSupport_FOUND)
+    set(pch_header ${CMAKE_SOURCE_DIR}/tests/cxcore/src/cxcoretest.h)
+    if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
+        if(${CMAKE_GENERATOR} MATCHES "Visual*")
+            set(${the_target}_pch "src/precomp.cpp")
+        endif()            
+        add_native_precompiled_header(${the_target} ${pch_header})
+    elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
+        add_precompiled_header(${the_target} ${pch_header})
+    endif()
+endif()
+
 # Additional target properties
 set_target_properties(${the_target} PROPERTIES
        DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"