File: CMakeLists.txt

package info (click to toggle)
halide 21.0.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 55,752 kB
  • sloc: cpp: 289,334; ansic: 22,751; python: 7,486; makefile: 4,299; sh: 2,508; java: 1,549; javascript: 282; pascal: 207; xml: 127; asm: 9
file content (81 lines) | stat: -rw-r--r-- 2,791 bytes parent folder | download | duplicates (3)
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
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

set(Halide_INSTALL_PYTHONDIR "${CMAKE_INSTALL_LIBDIR}/python3/site-packages/halide"
    CACHE STRING "Path to the Python site-packages folder")

if (WITH_PYTHON_BINDINGS)
    install(DIRECTORY "${Halide_Python_SOURCE_DIR}/src/halide/"
            DESTINATION "${Halide_INSTALL_PYTHONDIR}"
            COMPONENT Halide_Python
            FILES_MATCHING
            PATTERN "*.py"
            PATTERN "halide_" EXCLUDE)

    install(TARGETS Halide_Python
            EXPORT Halide_Python-targets
            LIBRARY DESTINATION "${Halide_INSTALL_PYTHONDIR}"
            COMPONENT Halide_Python)

    get_property(halide_is_imported TARGET Halide::Halide PROPERTY IMPORTED)
    get_property(halide_type TARGET Halide::Halide PROPERTY TYPE)

    if (
        NOT CMAKE_INSTALL_RPATH  # Honor user overrides
        AND NOT halide_is_imported  # Imported Halide means user is responsible for RPATH
        AND halide_type STREQUAL "SHARED_LIBRARY"  # No need to set RPATH if statically linked
    )
        if (APPLE)
            set(rbase @loader_path)
        else ()
            set(rbase $ORIGIN)
        endif ()

        file(RELATIVE_PATH lib_dir
             "${CMAKE_CURRENT_BINARY_DIR}/${Halide_INSTALL_PYTHONDIR}"
             "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")

        set_target_properties(Halide_Python PROPERTIES INSTALL_RPATH "${rbase}/${lib_dir}")
    endif ()
endif ()

if (WITH_PYTHON_STUBS)
    install(TARGETS Halide_PyStubs
            EXPORT Halide_Python-targets
            COMPONENT Halide_Python)
endif ()

if (WITH_TUTORIALS)
    install(DIRECTORY ${Halide_Python_SOURCE_DIR}/tutorial/
            DESTINATION ${CMAKE_INSTALL_DOCDIR}/tutorial-python
            COMPONENT Halide_Documentation
            FILES_MATCHING PATTERN "*.py")
endif ()

if (WITH_PYTHON_BINDINGS OR WITH_PYTHON_STUBS)
    set(Halide_Python_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Halide_Python"
        CACHE STRING "Path to Halide_Python CMake files")

    install(EXPORT Halide_Python-targets
            DESTINATION ${Halide_Python_INSTALL_CMAKEDIR}
            NAMESPACE Halide::
            COMPONENT Halide_Python)

    configure_package_config_file(
        Halide_PythonConfig.cmake.in Halide_PythonConfig.cmake
        INSTALL_DESTINATION "${Halide_Python_INSTALL_CMAKEDIR}"
        NO_SET_AND_CHECK_MACRO
    )

    write_basic_package_version_file(
        Halide_PythonConfigVersion.cmake COMPATIBILITY SameMajorVersion
    )

    install(
        FILES
        "${CMAKE_CURRENT_BINARY_DIR}/Halide_PythonConfig.cmake"
        "${CMAKE_CURRENT_BINARY_DIR}/Halide_PythonConfigVersion.cmake"
        DESTINATION "${Halide_Python_INSTALL_CMAKEDIR}"
        COMPONENT Halide_Python
    )
endif ()