File: CMakeLists.txt

package info (click to toggle)
libdnf 0.75.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,468 kB
  • sloc: cpp: 48,297; xml: 1,638; python: 1,537; ansic: 1,223; sql: 227; sh: 54; makefile: 39
file content (51 lines) | stat: -rw-r--r-- 1,978 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
find_package(PythonInstDir)
find_package(SWIG REQUIRED)
include(UseSWIG)

message(STATUS "Building for python${PYTHON_VERSION_MAJOR}")

find_package(PythonInstDir)

include_directories(${CMAKE_SOURCE_DIR})
include_directories(${PYTHON_INCLUDE_PATH})

if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    # using 64bit architecture
    set(CMAKE_SWIG_FLAGS "-DSWIGWORDSIZE64")
endif()

# The libdnf API is under development now. This enables it for internal usage.
set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} "-DLIBDNF_UNSTABLE_API")

function(libdnf_swig_module name)
    set(source ../swig/${name}.i)
    set_source_files_properties(${source} PROPERTIES CPLUSPLUS ON)
    swig_add_module(${name} python ${source})

    foreach(lib ${ARGN})
        swig_link_libraries(${name} ${lib})
    endforeach()

    install(TARGETS _${name} LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
    install(FILES ${CMAKE_BINARY_DIR}/bindings/python/${name}.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
endfunction()

libdnf_swig_module(error libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(common_types libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(conf libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(module libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(repo libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(smartcols libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(transaction libdnf ${PYTHON_LIBRARY})
libdnf_swig_module(utils libdnf ${PYTHON_LIBRARY} ${SQLite3_LIBRARIES})

configure_file(__init__.py ${CMAKE_CURRENT_BINARY_DIR}/__init__.py COPYONLY)
install(FILES __init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

set(DISTINFO_PATH "${CMAKE_CURRENT_BINARY_DIR}/libdnf-${LIBDNF_VERSION}.dist-info")
set(METADATA_FILE "${DISTINFO_PATH}/METADATA")
file(MAKE_DIRECTORY ${DISTINFO_PATH})
file(WRITE ${METADATA_FILE} "Metadata-Version: 2.1\n")
file(APPEND ${METADATA_FILE} "Name: libdnf\n")
file(APPEND ${METADATA_FILE} "Version: ${LIBDNF_VERSION}\n")
install(DIRECTORY ${DISTINFO_PATH} DESTINATION ${PYTHON_INSTALL_DIR})