Blame view

3rdparty/opencv-4.5.4/modules/world/CMakeLists.txt 2.42 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  set(the_description "All OpenCV modules")
  set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
  set(BUILD_opencv_world_INIT OFF)
  
  if(NOT BUILD_SHARED_LIBS)
    set(OPENCV_MODULE_TYPE STATIC)
    set(OPENCV_WORLD_FLAGS_PROPERTY STATIC_LIBRARY_FLAGS)
  else()
    set(OPENCV_WORLD_FLAGS_PROPERTY LINK_FLAGS)
  endif()
  
  function(include_one_module m)
    include("${OPENCV_MODULE_${m}_LOCATION}/CMakeLists.txt")
    foreach(var
        CMAKE_CXX_FLAGS CMAKE_C_FLAGS # Propagate warnings settings
    )
      set(${var} "${${var}}" PARENT_SCOPE)
    endforeach()
  endfunction()
  
  if(NOT OPENCV_INITIAL_PASS)
    set(ENABLE_PRECOMPILED_HEADERS OFF CACHE INTERNAL "" FORCE)
    project(opencv_world)
  
    message(STATUS "Processing WORLD modules...")
    foreach(m ${OPENCV_MODULES_BUILD})
      set(the_module ${m})
      if(OPENCV_MODULE_${m}_IS_PART_OF_WORLD)
        message(STATUS "    module ${m}...")
        set(CMAKE_CURRENT_SOURCE_DIR "${OPENCV_MODULE_${m}_LOCATION}")
        #add_subdirectory("${OPENCV_MODULE_${m}_LOCATION}" ${CMAKE_CURRENT_BINARY_DIR}/${m})
        include_one_module(${m})
      endif()
    endforeach()
    message(STATUS "Processing WORLD modules... DONE")
    set(CMAKE_CURRENT_SOURCE_DIR "${OPENCV_MODULE_opencv_world_LOCATION}")
  endif()
  
  ocv_add_module(world opencv_core)
  
  set(headers_list)
  set(sources_list)
  set(link_deps "")
  foreach(m ${OPENCV_MODULE_${the_module}_DEPS} opencv_world)
    if(OPENCV_MODULE_${m}_IS_PART_OF_WORLD)
      list(APPEND headers_list ${OPENCV_MODULE_${m}_HEADERS})
      list(APPEND sources_list ${OPENCV_MODULE_${m}_SOURCES})
    endif()
    if(NOT " ${OPENCV_MODULE_${m}_LINK_DEPS}" STREQUAL " ")
      list(APPEND link_deps ${OPENCV_MODULE_${m}_LINK_DEPS})
    endif()
  endforeach()
  
  ocv_glob_module_sources(HEADERS ${headers_list} SOURCES ${sources_list})
  
  ocv_module_include_directories()
  
  #message(STATUS "${OPENCV_MODULE_${the_module}_HEADERS}")
  #message(STATUS "${OPENCV_MODULE_${the_module}_SOURCES}")
  ocv_create_module(${link_deps})
  
  if(";${OPENCV_MODULES_BUILD};" MATCHES ";opencv_viz;" AND OPENCV_MODULE_opencv_viz_IS_PART_OF_WORLD AND VTK_VERSION VERSION_GREATER_EQUAL "8.90.0")
    vtk_module_autoinit(TARGETS opencv_world MODULES ${VTK_LIBRARIES})
  endif()
  
  ocv_target_compile_definitions(${the_module} PRIVATE OPENCV_MODULE_IS_PART_OF_WORLD=1)
  
  if(BUILD_opencv_imgcodecs AND OPENCV_MODULE_opencv_imgcodecs_IS_PART_OF_WORLD)
    ocv_imgcodecs_configure_target()
  endif()
  if(BUILD_opencv_highgui AND OPENCV_MODULE_opencv_highgui_IS_PART_OF_WORLD)
    ocv_highgui_configure_target()
  endif()