File: CMakeLists.txt

package info (click to toggle)
rocthrust 5.7.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,520 kB
  • sloc: cpp: 59,115; ansic: 34,558; python: 1,474; sh: 332; xml: 200; makefile: 114
file content (108 lines) | stat: -rw-r--r-- 3,802 bytes parent folder | download
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
# ########################################################################
# Copyright 2020 Advanced Micro Devices, Inc.
# ########################################################################

if (WIN32)
  set(DLLS_COPIED OFF)
endif()

function(add_thrust_example EXAMPLE)
    set(EXAMPLE_SOURCE "${EXAMPLE}.cu")
    set(EXAMPLE_TARGET "example_thrust_${EXAMPLE}")
    set_source_files_properties(${EXAMPLE_SOURCE}
        PROPERTIES
            LANGUAGE CXX
    )
    add_executable(${EXAMPLE_TARGET} ${EXAMPLE_SOURCE})

    target_link_libraries(${EXAMPLE_TARGET}
        PRIVATE
            rocthrust
            roc::rocprim_hip
    )
    if (NOT WIN32)
      foreach(amdgpu_target ${AMDGPU_TARGETS})
          target_link_libraries(${EXAMPLE_TARGET}
              INTERFACE
                  --cuda-gpu-arch=${amdgpu_target}
          )
      endforeach()
    endif()
    set_target_properties(${EXAMPLE_TARGET}
        PROPERTIES
            RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/examples/"
    )
    if (WIN32 AND NOT DEFINED DLLS_COPIED)
      set(DLLS_COPIED "YES")
      set(DLLS_COPIED ${DLLS_COPIED} PARENT_SCOPE)
      # for now adding in all .dll as dependency chain is not cmake based on win32
      file( GLOB third_party_dlls
      LIST_DIRECTORIES ON
      CONFIGURE_DEPENDS
      ${HIP_DIR}/bin/*.dll
      ${CMAKE_SOURCE_DIR}/rtest.*
      )
      foreach( file_i ${third_party_dlls})
        add_custom_command( TARGET ${EXAMPLE_TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${file_i} ${PROJECT_BINARY_DIR}/examples )
      endforeach( file_i )
    endif()         
endfunction()


add_subdirectory(cpp_integration)

# ****************************************************************************
# Examples
# ****************************************************************************
message (STATUS "Building examples")

add_thrust_example("arbitrary_transformation")
add_thrust_example("basic_vector")
add_thrust_example("bounding_box")
# add_thrust_example("bucket_sort2d")
add_thrust_example("constant_iterator")
add_thrust_example("counting_iterator")
add_thrust_example("device_ptr")
add_thrust_example("discrete_voronoi")
add_thrust_example("dot_products_with_zip")
add_thrust_example("expand")
add_thrust_example("fill_copy_sequence")
add_thrust_example("histogram")
add_thrust_example("lambda")
add_thrust_example("lexicographical_sort")
add_thrust_example("max_abs_diff")
add_thrust_example("minimal_custom_backend")
add_thrust_example("minmax")
add_thrust_example("mode")
add_thrust_example("monte_carlo_disjoint_sequences")
add_thrust_example("monte_carlo")
add_thrust_example("norm")
add_thrust_example("padded_grid_reduction")
add_thrust_example("permutation_iterator")
add_thrust_example("raw_reference_cast")
add_thrust_example("remove_points2d")
add_thrust_example("repeated_range")
add_thrust_example("run_length_decoding")
add_thrust_example("run_length_encoding")
add_thrust_example("saxpy")
add_thrust_example("scan_by_key")
add_thrust_example("set_operations")
add_thrust_example("simple_moving_average")
add_thrust_example("sort")
add_thrust_example("sorting_aos_vs_soa")
add_thrust_example("sparse_vector")
add_thrust_example("stream_compaction")
add_thrust_example("strided_range")
add_thrust_example("sum_rows")
add_thrust_example("sum")
add_thrust_example("summary_statistics")
add_thrust_example("summed_area_table")
add_thrust_example("tiled_range")
add_thrust_example("transform_iterator")
add_thrust_example("transform_input_output_iterator")
add_thrust_example("transform_output_iterator")
add_thrust_example("uninitialized_vector")
add_thrust_example("version")
add_thrust_example("scan_matrix_by_rows")
# add_thrust_example("weld_vertices") // this example does not work yet.
add_thrust_example("word_count")