CMakeLists.txt 1.5 KB
Newer Older
1 2
# phi auto cmake utils
include(phi)
3

4 5 6
# paddle experimental common components
add_subdirectory(common)

7 8
# phi (low level) api headers: include
# phi (high level) api
9
add_subdirectory(api)
10
# phi core components
11
add_subdirectory(core)
12
# phi components of specific backends
C
Chen Weihang 已提交
13
add_subdirectory(backends)
14
# phi kernels for diff device
15
add_subdirectory(kernels)
16
# phi infermeta
C
Chen Weihang 已提交
17
add_subdirectory(infermeta)
18
# phi operator definitions
C
Chen Weihang 已提交
19
add_subdirectory(ops)
20
# phi tools
21
add_subdirectory(tools)
22
# phi tests
23
add_subdirectory(tests)
24 25 26 27
# phi capi
if(WITH_CUSTOM_DEVICE)
  add_subdirectory(capi)
endif()
28 29

# make an unity target for compile deps
30 31 32
set(PHI_DEPS
    convert_utils
    dense_tensor
33
    phi_backends
34 35 36 37 38 39 40 41 42 43 44
    kernel_factory
    kernel_context
    arg_map_context
    infermeta
    lod_utils
    op_compat_infos
    sparse_csr_tensor
    sparse_coo_tensor
    string_tensor
    api_scalar
    api_int_array)
45

46 47
get_property(phi_kernels GLOBAL PROPERTY PHI_KERNELS)
set(PHI_DEPS ${PHI_DEPS} ${phi_kernels})
48

49
create_dummy_static_lib(phi LIBS ${PHI_DEPS} LIMIT 100)
50

51 52 53 54 55 56 57
set(phi_extension_header_file
    ${CMAKE_CURRENT_SOURCE_DIR}/extension.h
    CACHE INTERNAL "phi/extension.h file")
file(
  WRITE ${phi_extension_header_file}
  "// Header file generated by paddle/phi/CMakeLists.txt for external users,\n// DO NOT edit or include it within paddle.\n\n#pragma once\n\n"
)
58 59 60 61 62 63

# generate inner headers include dir for users
generate_unify_header(backends)
generate_unify_header(core)
generate_unify_header(infermeta)
generate_unify_header(kernels SKIP_SUFFIX grad_kernel)