|
22 | 22 | # GFLAGS_STATIC_LIB, path to libgflags static library |
23 | 23 | # GFLAGS_FOUND, whether gflags has been found |
24 | 24 |
|
25 | | -if( NOT "${GFLAGS_HOME}" STREQUAL "") |
26 | | - file( TO_CMAKE_PATH "${GFLAGS_HOME}" _native_path ) |
27 | | - list( APPEND _gflags_roots ${_native_path} ) |
28 | | -elseif ( GFlags_HOME ) |
29 | | - list( APPEND _gflags_roots ${GFlags_HOME} ) |
| 25 | +find_package(gflags CONFIG) |
| 26 | +set(GFLAGS_FOUND ${gflags_FOUND}) |
| 27 | +if(GFLAGS_FOUND) |
| 28 | + message(STATUS "GFlags include dir: ${GFLAGS_INCLUDE_DIR}") |
| 29 | + string(TOUPPER "${CMAKE_BUILD_TYPE}" _CONFIG) |
| 30 | + get_target_property(_GFLAGS_CONFIGURATIONS gflags IMPORTED_CONFIGURATIONS) |
| 31 | + foreach(_GFLAGS_CONFIG IN LISTS _GFLAGS_CONFIGURATIONS) |
| 32 | + if("${_GFLAGS_CONFIG}" STREQUAL "${_CONFIG}") |
| 33 | + set(_GFLAGS_TARGET_CONFIG "${_GFLAGS_CONFIG}") |
| 34 | + endif() |
| 35 | + endforeach() |
| 36 | + if(NOT _GFLAGS_TARGET_CONFIG) |
| 37 | + list(GET _GFLAGS_CONFIGURATIONS 0 _GFLAGS_TARGET_CONFIG) |
| 38 | + endif() |
| 39 | + if(GFLAGS_SHARED) |
| 40 | + get_target_property(GFLAGS_SHARED_LIB gflags_shared |
| 41 | + IMPORTED_LOCATION_${_GFLAGS_TARGET_CONFIG}) |
| 42 | + message(STATUS "GFlags shared library: ${GFLAGS_SHARED_LIB}") |
| 43 | + endif() |
| 44 | + if(TARGET gflags_static) |
| 45 | + set(GFLAGS_STATIC TRUE) |
| 46 | + get_target_property(GFLAGS_STATIC_LIB gflags_static |
| 47 | + IMPORTED_LOCATION_${_GFLAGS_TARGET_CONFIG}) |
| 48 | + message(STATUS "GFlags static library: ${GFLAGS_STATIC_LIB}") |
| 49 | + endif() |
| 50 | + unset(_CONFIG) |
| 51 | + unset(_GFLAGS_CONFIGURATIONS) |
| 52 | + unset(_GFLAGS_CONFIG) |
| 53 | + unset(_GFLAGS_TARGET_CONFIG) |
| 54 | + return() |
30 | 55 | endif() |
31 | 56 |
|
32 | | -if (MSVC AND NOT DEFINED GFLAGS_MSVC_STATIC_LIB_SUFFIX) |
| 57 | +pkg_check_modules(GFLAGS gflags) |
| 58 | +if(GFLAGS_FOUND) |
| 59 | + set(GFLAGS_INCLUDE_DIR "${GFLAGS_INCLUDEDIR}") |
| 60 | + message(STATUS "GFlags include dir: ${GFLAGS_INCLUDE_DIR}") |
| 61 | + find_library(GFLAGS_SHARED_LIB |
| 62 | + NAMES "${GFLAGS_LIBRARIES}" |
| 63 | + PATHS "${GFLAGS_LIBDIR}" |
| 64 | + NO_DEFAULT_PATH) |
| 65 | + if(GFLAGS_SHARED_LIB) |
| 66 | + message(STATUS "GFlags shared library: ${GFLAGS_SHARED_LIB}") |
| 67 | + add_thirdparty_lib(gflags |
| 68 | + SHARED_LIB |
| 69 | + "${GFLAGS_SHARED_LIB}" |
| 70 | + INCLUDE_DIRECTORIES |
| 71 | + "${GFLAGS_INCLUDE_DIR}") |
| 72 | + target_compile_definitions(gflags_shared INTERFACE "GFLAGS_IS_A_DLL=1") |
| 73 | + set(GFLAGS_STATIC_LIB FLASE) |
| 74 | + return() |
| 75 | + else() |
| 76 | + set(GFLAGS_FOUND FALSE) |
| 77 | + endif() |
| 78 | +endif() |
| 79 | + |
| 80 | +if(GFLAGS_HOME) |
| 81 | + set(GFlags_ROOT "${GFLAGS_HOME}") |
| 82 | +endif() |
| 83 | +if(CMAKE_VERSION VERSION_LESS 3.12) |
| 84 | + list(INSERT CMAKE_PREFIX_PATH 0 "${GFlags_ROOT}") |
| 85 | +endif() |
| 86 | + |
| 87 | +if(MSVC AND NOT DEFINED GFLAGS_MSVC_STATIC_LIB_SUFFIX) |
33 | 88 | set(GFLAGS_MSVC_STATIC_LIB_SUFFIX "_static") |
34 | 89 | endif() |
35 | 90 |
|
36 | 91 | set(GFLAGS_STATIC_LIB_SUFFIX |
37 | | - "${GFLAGS_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") |
| 92 | + "${GFLAGS_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") |
38 | 93 |
|
39 | 94 | set(GFLAGS_STATIC_LIB_NAME |
40 | | - ${CMAKE_STATIC_LIBRARY_PREFIX}gflags${GFLAGS_STATIC_LIB_SUFFIX}) |
| 95 | + "${CMAKE_STATIC_LIBRARY_PREFIX}gflags${GFLAGS_STATIC_LIB_SUFFIX}") |
41 | 96 |
|
42 | | -message(STATUS "GFLAGS_HOME: ${GFLAGS_HOME}") |
| 97 | +find_path(GFLAGS_INCLUDE_DIR NAMES gflags/gflags.h) |
| 98 | +find_library(GFLAGS_SHARED_LIB NAMES gflags) |
| 99 | +find_library(GFLAGS_STATIC_LIB NAMES ${GFLAGS_STATIC_LIB_NAME}) |
43 | 100 |
|
44 | | -if ( _gflags_roots ) |
45 | | - find_path(GFLAGS_INCLUDE_DIR NAMES gflags/gflags.h |
46 | | - PATHS ${_gflags_roots} |
47 | | - NO_DEFAULT_PATH |
48 | | - PATH_SUFFIXES "include" ) |
49 | | - find_library(GFLAGS_STATIC_LIB NAMES ${GFLAGS_STATIC_LIB_NAME} |
50 | | - PATHS ${_gflags_roots} |
51 | | - NO_DEFAULT_PATH |
52 | | - PATH_SUFFIXES "lib" ) |
53 | | - find_library(GFLAGS_SHARED_LIB NAMES gflags |
54 | | - PATHS ${_gflags_roots} |
55 | | - NO_DEFAULT_PATH |
56 | | - PATH_SUFFIXES "lib" ) |
| 101 | +if(GFLAGS_INCLUDE_DIR) |
| 102 | + message(STATUS "GFlags include dir: ${GFLAGS_INCLUDE_DIR}") |
| 103 | + if(GFLAGS_SHARED_LIB) |
| 104 | + message(STATUS "GFlags shared library: ${GFLAGS_SHARED_LIB}") |
| 105 | + set(GFLAGS_SHARED TRUE) |
| 106 | + else() |
| 107 | + set(GFLAGS_SHARED FALSE) |
| 108 | + endif() |
| 109 | + if(GFLAGS_STATIC_LIB) |
| 110 | + message(STATUS "GFlags static library: ${GFLAGS_STATIC_LIB}") |
| 111 | + set(GFLAGS_STATIC TRUE) |
| 112 | + else() |
| 113 | + set(GFLAGS_STATIC FALSE) |
| 114 | + endif() |
| 115 | + if(GFLAGS_SHARED OR GFLAGS_STATIC) |
| 116 | + set(GFLAGS_FOUND TRUE) |
| 117 | + if(MSVC) |
| 118 | + set(GFLAGS_MSVC_DEPS "shlwapi.lib") |
| 119 | + endif() |
| 120 | + add_thirdparty_lib(gflags |
| 121 | + SHARED_LIB |
| 122 | + "${GFLAGS_SHARED_LIB}" |
| 123 | + STATIC_LIB |
| 124 | + "${GFLAGS_STATIC_LIB}" |
| 125 | + INCLUDE_DIRECTORIES |
| 126 | + "${GFLAGS_INCLUDE_DIR}" |
| 127 | + DEPS |
| 128 | + "${GFLAGS_MSVC_DEPS}") |
| 129 | + if(GFLAGS_SHARED) |
| 130 | + target_compile_definitions(gflags_shared INTERFACE "GFLAGS_IS_A_DLL=1") |
| 131 | + endif() |
| 132 | + if(GFLAGS_STATIC) |
| 133 | + target_compile_definitions(gflags_static INTERFACE "GFLAGS_IS_A_DLL=0") |
| 134 | + endif() |
| 135 | + else() |
| 136 | + set(GFLAGS_FOUND FALSE) |
| 137 | + endif() |
57 | 138 | else() |
58 | | - find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h |
59 | | - # make sure we don't accidentally pick up a different version |
60 | | - NO_CMAKE_SYSTEM_PATH |
61 | | - NO_SYSTEM_ENVIRONMENT_PATH) |
62 | | - find_library(GFLAGS_STATIC_LIB ${GFLAGS_STATIC_LIB_NAME} |
63 | | - NO_CMAKE_SYSTEM_PATH |
64 | | - NO_SYSTEM_ENVIRONMENT_PATH) |
65 | | - find_library(GFLAGS_SHARED_LIB gflags |
66 | | - NO_CMAKE_SYSTEM_PATH |
67 | | - NO_SYSTEM_ENVIRONMENT_PATH) |
68 | | -endif() |
69 | | - |
70 | | -if (GFLAGS_INCLUDE_DIR AND GFLAGS_STATIC_LIB) |
71 | | - set(GFLAGS_FOUND TRUE) |
72 | | -else () |
73 | 139 | set(GFLAGS_FOUND FALSE) |
74 | | -endif () |
| 140 | +endif() |
75 | 141 |
|
76 | | -mark_as_advanced( |
77 | | - GFLAGS_INCLUDE_DIR |
78 | | - GFLAGS_STATIC_LIB |
79 | | -) |
| 142 | +mark_as_advanced(GFLAGS_INCLUDE_DIR GFLAGS_SHARED_LIB GFLAGS_STATIC_LIB) |
0 commit comments