File: CMakeLists.txt

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 (56 lines) | stat: -rw-r--r-- 2,038 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

set(PYVBZ_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/pyvbz_cffi.touch")
set(PYVBZ_BUILD_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/build_pyvbz.cmake")

if (NOT PYTHON_EXECUTABLE)
    find_package(PythonInterp 3)
endif()

add_custom_command(
    OUTPUT "${PYVBZ_OUTPUT_PATH}"
    COMMAND ${CMAKE_COMMAND}
        ARGS -E env
            PYTHON_EXE="${PYTHON_EXECUTABLE}"
            PYVBZ_DIR="${CMAKE_CURRENT_SOURCE_DIR}"
            VBZ_BUILD_DIR="${CMAKE_BINARY_DIR}"
            VBZ_INCLUDE_PATHS="${CMAKE_SOURCE_DIR}/vbz\;${CMAKE_BINARY_DIR}/vbz/"
            VBZ_LINK_LIBS="$<TARGET_FILE:vbz>\;${STREAMVBYTE_STATIC_LIB}\;${ZSTD_LIBRARY}"
            OUTPUT_FILE="${PYVBZ_OUTPUT_PATH}"
            ${CMAKE_COMMAND}
                -P "${PYVBZ_BUILD_SCRIPT}"
    DEPENDS vbz "${PYVBZ_BUILD_SCRIPT}"
)

set(PYVBZ_ALL)
if (NOT WIN32)
    set(PYVBZ_ALL "ALL")
endif()

add_custom_target(pyvbz "${PYVBZ_ALL}"
    DEPENDS "${PYVBZ_OUTPUT_PATH}")

if (BUILD_TESTING AND NOT WIN32)
    set(PYVBZ_VENV_PATH "${CMAKE_CURRENT_BINARY_DIR}/venv")
    set(PYVBZ_VENV_PYTHON "${PYVBZ_VENV_PATH}/bin/python")
    add_custom_command(
        OUTPUT "${PYVBZ_VENV_PYTHON}"
        COMMAND ${PYTHON_EXECUTABLE} -m venv
            --system-site-packages "${CMAKE_CURRENT_BINARY_DIR}/venv"
        COMMAND "${PYVBZ_VENV_PYTHON}" -m pip install -r
            "${CMAKE_CURRENT_SOURCE_DIR}/requirements.txt"
        COMMAND ${CMAKE_COMMAND} -E env
            VBZ_BUILD_DIR="${CMAKE_BINARY_DIR}"
            VBZ_INCLUDE_PATHS="${CMAKE_SOURCE_DIR}/vbz\;${CMAKE_BINARY_DIR}/vbz/"
            VBZ_LINK_LIBS="$<TARGET_FILE:vbz>\;${STREAMVBYTE_STATIC_LIB}\;${ZSTD_LIBRARY}"
            "${PYVBZ_VENV_PYTHON}" setup.py develop
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/setup.py"
    )
    add_custom_target(pyvbz_venv ALL DEPENDS "${PYVBZ_VENV_PYTHON}")

    add_test(
        NAME pyvbz_test
        COMMAND "${PYVBZ_VENV_PYTHON}" ./tests/unit
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    )
endif()