Updating opencv module definition in cmake (continued)
authorAndrey Kamaev <no@email>
Wed, 25 Jan 2012 13:12:11 +0000 (13:12 +0000)
committerAndrey Kamaev <no@email>
Wed, 25 Jan 2012 13:12:11 +0000 (13:12 +0000)
cmake/OpenCVModule.cmake
modules/core/CMakeLists.txt

index 27ef9e8..e4126c2 100644 (file)
@@ -213,9 +213,48 @@ macro(define_opencv_moduleEx _name _visibility)
 
         list(APPEND lib_hdrs ${lib_hdrs_detail})
 
-        add_library(${the_target} ${OPENCV_${mname}_MODULE_TYPE} ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs})
+        if(HAVE_CUDA AND EXISTS "src/cuda/")
+            file(GLOB lib_cuda "src/cuda/*.cu")
+            source_group("Cuda" FILES "${lib_cuda}")
+            include_directories(${CUDA_INCLUDE_DIRS})
+            include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/src")
+            include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/src/cuda")
+            set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_10,code=sm_10
+                                                   -gencode arch=compute_11,code=sm_11
+                                                   -gencode arch=compute_12,code=sm_12
+                                                   -gencode arch=compute_13,code=sm_13
+                                                   -gencode arch=compute_20,code=sm_20
+                                                   -gencode arch=compute_20,code=sm_21)
+
+            if(UNIX OR APPLE)
+                set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler -fPIC)
+            endif()
+            if(APPLE)
+                set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler -fno-finite-math-only)
+            endif()
+
+            #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep")
+            #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;")
+    
+            CUDA_COMPILE(cuda_objs ${lib_cuda})
+        else()
+            set(lib_cuda "")
+            set(cuda_objs "")
+        endif()
+
+        add_library(${the_target} ${OPENCV_${mname}_MODULE_TYPE} ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs} ${lib_cuda} ${cuda_objs})
         target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
 
+        if(HAVE_CUDA AND EXISTS "src/cuda/")
+            target_link_libraries(${the_target} ${CUDA_LIBRARIES})
+
+            unset(CUDA_npp_LIBRARY CACHE)
+            find_cuda_helper_libs(npp)
+            target_link_libraries(${the_target} ${CUDA_npp_LIBRARY})
+        endif()
+
         if(visibility STREQUAL "public")
             opencv_module_register(${the_target})
         endif()
index edd7a17..99d477c 100644 (file)
@@ -4,131 +4,4 @@ else()
     include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/zlib")
 endif()
 
-#define_opencv_module(core ${ZLIB_LIBRARY})
-
-set(name "core")
-
-project(opencv_${name})
-
-include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include"
-                    "${CMAKE_CURRENT_SOURCE_DIR}/src"
-                    "${CMAKE_CURRENT_BINARY_DIR}")
-
-file(GLOB lib_srcs "src/*.cpp")
-file(GLOB lib_int_hdrs "src/*.h*")
-file(GLOB lib_hdrs "include/opencv2/${name}/*.h*")
-file(GLOB lib_hdrs_detail "include/opencv2/${name}/detail/*.h*")
-
-if(COMMAND get_module_external_sources)
-   get_module_external_sources(${name})
-endif()
-
-source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs})
-source_group("Include" FILES ${lib_hdrs})
-source_group("Include\\detail" FILES ${lib_hdrs_detail})
-list(APPEND lib_hdrs ${lib_hdrs_detail})
-
-if (HAVE_CUDA)
-    file(GLOB lib_cuda "src/cuda/*.cu")
-    source_group("Cuda" FILES "${lib_cuda}")
-    include_directories(${CUDA_INCLUDE_DIRS})
-    include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/src")
-    include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/src/cuda")
-    set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_10,code=sm_10
-                                            -gencode arch=compute_11,code=sm_11
-                                            -gencode arch=compute_12,code=sm_12
-                                            -gencode arch=compute_13,code=sm_13
-                                            -gencode arch=compute_20,code=sm_20
-                                            -gencode arch=compute_20,code=sm_21)
-
-    if (UNIX OR APPLE)
-        set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}  "-Xcompiler;-fPIC;")
-        #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "-fPIC")
-    endif()
-
-    #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep")
-    #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;")
-    
-    if (APPLE)
-        set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;-fno-finite-math-only;")
-    endif()
-
-    CUDA_COMPILE(cuda_objs ${lib_cuda})
-    #CUDA_BUILD_CLEAN_TARGET()
-endif()
-
-set(the_target "opencv_${name}")
-add_library(${the_target} ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs} ${lib_cuda} ${cuda_objs})
-
-# For dynamic link numbering convenions
-if(NOT ANDROID)
-    # Android SDK build scripts can include only .so files into final .apk
-    # As result we should not set version properties for Android
-    set_target_properties(${the_target} PROPERTIES
-        VERSION ${OPENCV_VERSION}
-        SOVERSION ${OPENCV_SOVERSION}
-        )
-endif()
-
-set_target_properties(${the_target} PROPERTIES OUTPUT_NAME "${the_target}${OPENCV_DLLVERSION}" )    
-
-if(ENABLE_SOLUTION_FOLDERS)
-    set_target_properties(${the_target} PROPERTIES FOLDER "modules")
-endif() 
-        
-if (BUILD_SHARED_LIBS)
-    if(MSVC)
-        set_target_properties(${the_target} PROPERTIES DEFINE_SYMBOL CVAPI_EXPORTS)
-    else()
-        add_definitions(-DCVAPI_EXPORTS)        
-    endif()
-endif()
-
-# Additional target properties
-set_target_properties(${the_target} PROPERTIES
-    DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
-    ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
-    RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
-    INSTALL_NAME_DIR lib
-    )
-
-# Add the required libraries for linking:
-target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ZLIB_LIBRARY})
-
-if (HAVE_CUDA)
-    target_link_libraries(${the_target} ${CUDA_LIBRARIES})
-
-    unset(CUDA_npp_LIBRARY CACHE)
-    find_cuda_helper_libs(npp)
-    target_link_libraries(${the_target} ${CUDA_npp_LIBRARY})
-endif()
-
-if(MSVC)
-    if(CMAKE_CROSSCOMPILING)
-        set_target_properties(${the_target} PROPERTIES
-            LINK_FLAGS "/NODEFAULTLIB:secchk"
-            )
-    endif()
-    set_target_properties(${the_target} PROPERTIES
-        LINK_FLAGS "/NODEFAULTLIB:libc /DEBUG"
-        )
-endif()
-
-# Dependencies of this target:
-add_dependencies(${the_target} ${ZLIB_LIBRARY})
-
-install(TARGETS ${the_target}
-    RUNTIME DESTINATION bin COMPONENT main
-    LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
-    ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
-
-install(FILES ${lib_hdrs}
-    DESTINATION ${OPENCV_INCLUDE_PREFIX}/opencv2/${name}
-    COMPONENT main)
-    
-add_opencv_precompiled_headers(${the_target})
-
-define_opencv_test(${name})
-define_opencv_perf_test(${name})
+define_opencv_module(core ${ZLIB_LIBRARY})