summaryrefslogtreecommitdiffstats
path: root/third_party/jpeg-xl/lib/jxl_benchmark.cmake
blob: 67f8e7fe6409cb0b8078200ff41c354f2cf37dd3 (plain)
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
# Copyright (c) the JPEG XL Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

include(jxl_lists.cmake)

# This is the Google benchmark project (https://github.com/google/benchmark).
find_package(benchmark QUIET)

if(benchmark_FOUND)
  if(JPEGXL_STATIC AND NOT MINGW)
    # benchmark::benchmark hardcodes the librt.so which obviously doesn't
    # compile in static mode.
    set_target_properties(benchmark::benchmark PROPERTIES
      INTERFACE_LINK_LIBRARIES "Threads::Threads;-lrt")
  endif()

  list(APPEND JPEGXL_INTERNAL_TESTS
    # TODO(eustas): Move this to tools/
    ../tools/gauss_blur_gbench.cc
  )

  # Compiles all the benchmark files into a single binary. Individual benchmarks
  # can be run with --benchmark_filter.
  add_executable(jxl_gbench "${JPEGXL_INTERNAL_GBENCH_SOURCES}" gbench_main.cc)

  target_compile_definitions(jxl_gbench PRIVATE
    -DTEST_DATA_PATH="${JPEGXL_TEST_DATA_PATH}")
  target_link_libraries(jxl_gbench
    jxl_extras-internal
    jxl-internal
    benchmark::benchmark
  )
endif() # benchmark_FOUND