File: CMakeLists.txt

package info (click to toggle)
wsclean 3.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,296 kB
  • sloc: cpp: 129,246; python: 22,066; sh: 360; ansic: 230; makefile: 185
file content (52 lines) | stat: -rw-r--r-- 1,878 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
# SPDX-License-Identifier: LGPL-3.0-only
project(pyradler)

# Create the binding library pyradler is a temporary alias for the radler target
pybind11_add_module(pyradler pyradler.cc pysettings.cc pywork_table.cc
                    pycomponent_list.cc pywrappers.cc)

target_include_directories(${PROJECT_NAME}
                           PRIVATE "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/cpp>")

# Required to hide symols in target, see
# https://pybind11.readthedocs.io/en/stable/faq.html#someclass-declared-with-greater-visibility-than-the-type-of-its-field-someclass-member-wattributes
target_compile_options(
  ${PROJECT_NAME} PRIVATE -O3 -Wall -Wzero-as-null-pointer-constant
                          -fvisibility=hidden)
target_link_libraries(${PROJECT_NAME} PRIVATE radler)
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME radler)

# If the PYTHON_LIBRARY_DIR is not specified, install it in proper lib dir
if(NOT DEFINED ${PYTHON_LIBRARY_DIR})
  execute_process(
    COMMAND ${PYTHON_EXECUTABLE} -c
            "import site; print(site.getsitepackages()[0])"
    OUTPUT_VARIABLE PYTHON_DIST_PATH
    OUTPUT_STRIP_TRAILING_WHITESPACE)

  if(PYTHON_DIST_PATH
     MATCHES
     "(\\/lib.*\\/)(python${PYTHON_VERSION_MAJOR}\\.${PYTHON_VERSION_MINOR}\\/.*)"
  )

    set(PYTHON_SITE_PACKAGES_DIR ${CMAKE_MATCH_2})

    if(NOT COMPILE_AS_EXTERNAL_PROJECT)
      include(GNUInstallDirs)
      set(PYTHON_LIBRARY_DIR
          "${CMAKE_INSTALL_FULL_LIBDIR}/${PYTHON_SITE_PACKAGES_DIR}")
    else()
      set(PYTHON_LIBRARY_DIR
          "${CMAKE_INSTALL_PREFIX}/lib/${PYTHON_SITE_PACKAGES_DIR}")
    endif()
  else()
    message(
      FATAL_ERROR "Failed to parse PYTHON_DIST_PATH='${PYTHON_DIST_PATH}'")
  endif()
endif()

# Install pyradler in PYTHON_LIBRARY_DIR directory
install(
  TARGETS pyradler
  COMPONENT python
  LIBRARY DESTINATION ${PYTHON_LIBRARY_DIR})