File: FindGoogleBenchmark.cmake

package info (click to toggle)
libvbz-hdf-plugin 1.0.2-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,384 kB
  • sloc: cpp: 28,289; python: 392; ansic: 40; sh: 21; makefile: 19; xml: 16
file content (75 lines) | stat: -rw-r--r-- 2,492 bytes parent folder | download | duplicates (2)
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

find_path(GOOGLE_BENCHMARK_INCLUDE_DIR
    NAMES benchmark/benchmark.h
    PATHS ${CONAN_INCLUDE_DIRS_RELEASE}
)

set(GOOGLE_BENCHMARK benchmark)
set(GOOGLE_BENCHMARK_DEBUG benchmarkd)

find_library(GOOGLE_BENCHMARK_LIBRARY_RELEASE
    NAMES ${GOOGLE_BENCHMARK}
    PATHS ${CONAN_LIB_DIRS_RELEASE}
)
find_library(GOOGLE_BENCHMARK_LIBRARY_DEBUG
    NAMES ${GOOGLE_BENCHMARK_DEBUG}
    PATHS ${CONAN_LIB_DIRS_DEBUG}
)

include(SelectLibraryConfigurations)
select_library_configurations(GOOGLE_BENCHMARK)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(google-benchmark REQUIRED_VARS GOOGLE_BENCHMARK_LIBRARY GOOGLE_BENCHMARK_INCLUDE_DIR)


if (GOOGLE_BENCHMARK_FOUND)
    set(GOOGLE_BENCHMARK_INCLUDE_DIRS ${GOOGLE_BENCHMARK_INCLUDE_DIR})


    if (NOT GOOGLE_BENCHMARK_LIBRARIES)
        set(GOOGLE_BENCHMARK_LIBRARIES ${GOOGLE_BENCHMARK_LIBRARY})
    endif()

    if (NOT TARGET google::benchmark)
        add_library(google::benchmark UNKNOWN IMPORTED)
        set_target_properties(google::benchmark PROPERTIES
            INTERFACE_INCLUDE_DIRECTORIES "${GOOGLE_BENCHMARK_INCLUDE_DIRS}")

        set(EXTRA_LIBRARIES)
        if (WIN32)
            set(EXTRA_LIBRARIES shlwapi.lib)
        endif()

        find_package (Threads)
        if (CMAKE_THREAD_LIBS_INIT)
            set(EXTRA_LIBRARIES ${EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
        endif()

        if (EXTRA_LIBRARIES)
            set_target_properties(google::benchmark 
                PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES
                    ${EXTRA_LIBRARIES}
            )
        endif()

        if(GOOGLE_BENCHMARK_LIBRARY_RELEASE)
            set_property(TARGET google::benchmark APPEND PROPERTY
                IMPORTED_CONFIGURATIONS RELEASE)
            set_target_properties(google::benchmark PROPERTIES
                IMPORTED_LOCATION_RELEASE "${GOOGLE_BENCHMARK_LIBRARY_RELEASE}")
        endif()

        if(GOOGLE_BENCHMARK_LIBRARY_DEBUG)
            set_property(TARGET google::benchmark APPEND PROPERTY
                IMPORTED_CONFIGURATIONS DEBUG)
            set_target_properties(google::benchmark PROPERTIES
                IMPORTED_LOCATION_DEBUG "${GOOGLE_BENCHMARK_LIBRARY_DEBUG}")
        endif()

        if(NOT GOOGLE_BENCHMARK_LIBRARY_RELEASE AND NOT GOOGLE_BENCHMARK_LIBRARY_DEBUG)
            set_property(TARGET google::benchmark APPEND PROPERTY
                IMPORTED_LOCATION "${GOOGLE_BENCHMARK_LIBRARY}")
        endif()
    endif()
endif()