Blame view

3rdparty/opencv-4.5.4/platforms/linux/gnu.toolchain.cmake 3.47 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
  cmake_minimum_required(VERSION 3.5)
  
  # load settings in case of "try compile"
  set(TOOLCHAIN_CONFIG_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/toolchain.config.cmake")
  get_property(__IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
  if(__IN_TRY_COMPILE)
    include("${CMAKE_CURRENT_SOURCE_DIR}/../toolchain.config.cmake" OPTIONAL) # CMAKE_BINARY_DIR is different
    macro(toolchain_save_config)
      # nothing
    endmacro()
  else()
    macro(toolchain_save_config)
      set(__config "#message(\"Load TOOLCHAIN config...\")\n")
      get_cmake_property(__variableNames VARIABLES)
      set(__vars_list ${ARGN})
      list(APPEND __vars_list
          ${TOOLCHAIN_CONFIG_VARS}
          CMAKE_SYSTEM_NAME
          CMAKE_SYSTEM_VERSION
          CMAKE_SYSTEM_PROCESSOR
          CMAKE_C_COMPILER
          CMAKE_CXX_COMPILER
          CMAKE_C_FLAGS
          CMAKE_CXX_FLAGS
          CMAKE_SHARED_LINKER_FLAGS
          CMAKE_MODULE_LINKER_FLAGS
          CMAKE_EXE_LINKER_FLAGS
          CMAKE_SKIP_RPATH
          CMAKE_FIND_ROOT_PATH
          GCC_COMPILER_VERSION
      )
      foreach(__var ${__variableNames})
        foreach(_v ${__vars_list})
          if("x${__var}" STREQUAL "x${_v}")
            if(${__var} MATCHES " ")
              set(__config "${__config}set(${__var} \"${${__var}}\")\n")
            else()
              set(__config "${__config}set(${__var} ${${__var}})\n")
            endif()
          endif()
        endforeach()
      endforeach()
      if(EXISTS "${TOOLCHAIN_CONFIG_FILE}")
        file(READ "${TOOLCHAIN_CONFIG_FILE}" __config_old)
      endif()
      if("${__config_old}" STREQUAL "${__config}")
        # nothing
      else()
        #message("Update TOOLCHAIN config: ${__config}")
        file(WRITE "${TOOLCHAIN_CONFIG_FILE}" "${__config}")
      endif()
      unset(__config)
      unset(__config_old)
      unset(__vars_list)
      unset(__variableNames)
    endmacro()
  endif() # IN_TRY_COMPILE
  
  if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  endif()
  
  if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  endif()
  
  if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
  endif()
  
  if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  endif()
  
  macro(__cmake_find_root_save_and_reset)
    foreach(v
        CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
        CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
        CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
        CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
    )
      set(__save_${v} ${${v}})
      set(${v} NEVER)
    endforeach()
  endmacro()
  
  macro(__cmake_find_root_restore)
    foreach(v
        CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
        CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
        CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
        CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
    )
      set(${v} ${__save_${v}})
      unset(__save_${v})
    endforeach()
  endmacro()
  
  
  # macro to find programs on the host OS
  macro(find_host_program)
   __cmake_find_root_save_and_reset()
   if(CMAKE_HOST_WIN32)
    SET(WIN32 1)
    SET(UNIX)
   elseif(CMAKE_HOST_APPLE)
    SET(APPLE 1)
    SET(UNIX)
   endif()
   find_program(${ARGN})
   SET(WIN32)
   SET(APPLE)
   SET(UNIX 1)
   __cmake_find_root_restore()
  endmacro()
  
  # macro to find packages on the host OS
  macro(find_host_package)
   __cmake_find_root_save_and_reset()
   if(CMAKE_HOST_WIN32)
    SET(WIN32 1)
    SET(UNIX)
   elseif(CMAKE_HOST_APPLE)
    SET(APPLE 1)
    SET(UNIX)
   endif()
   find_package(${ARGN})
   SET(WIN32)
   SET(APPLE)
   SET(UNIX 1)
   __cmake_find_root_restore()
  endmacro()
  
  set(CMAKE_SKIP_RPATH TRUE CACHE BOOL "If set, runtime paths are not added when using shared libraries.")