|
Packit |
8fb591 |
project(libyang-cpp)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++11")
|
|
Packit |
8fb591 |
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
|
Packit |
8fb591 |
set(CMAKE_CXX_FLAGS_PACKAGE "-g -O2 -DNDEBUG")
|
|
Packit |
8fb591 |
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
# temporary bugfix
|
|
Packit |
8fb591 |
add_compile_options(-std=c++11)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
# find SWIG package
|
|
Packit |
8fb591 |
if(GEN_LANGUAGE_BINDINGS)
|
|
Packit |
8fb591 |
find_package(SWIG 3.0.12 REQUIRED)
|
|
Packit |
8fb591 |
if(NOT SWIG_FOUND)
|
|
Packit |
8fb591 |
message(WARNING "SWIG library not found")
|
|
Packit |
8fb591 |
else()
|
|
Packit |
8fb591 |
include(${SWIG_USE_FILE})
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
# find Python package
|
|
Packit |
8fb591 |
if(GEN_PYTHON_BINDINGS AND SWIG_FOUND)
|
|
Packit |
8fb591 |
message(STATUS "Python version ${GEN_PYTHON_VERSION} was selected")
|
|
Packit |
8fb591 |
unset(PYTHON_LIBRARY CACHE)
|
|
Packit |
8fb591 |
unset(PYTHON_EXECUTABLE CACHE)
|
|
Packit |
8fb591 |
unset(PYTHON_INCLUDE_DIR CACHE)
|
|
Packit |
8fb591 |
unset(PYTHON_LIBRARY_DEBUG CACHE)
|
|
Packit |
8fb591 |
if(${GEN_PYTHON_VERSION} STREQUAL "2")
|
|
Packit |
8fb591 |
find_package(PythonLibs 2 REQUIRED)
|
|
Packit |
8fb591 |
find_package(PythonInterp 2 REQUIRED)
|
|
Packit |
8fb591 |
if(NOT PYTHONLIBS_FOUND)
|
|
Packit |
8fb591 |
message(WARNING "Did not found Python version 2.x")
|
|
Packit |
8fb591 |
message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
elseif(${GEN_PYTHON_VERSION} STREQUAL "3")
|
|
Packit |
8fb591 |
find_package(PythonLibs 3 REQUIRED)
|
|
Packit |
8fb591 |
find_package(PythonInterp 3 REQUIRED)
|
|
Packit |
8fb591 |
if(NOT PYTHONLIBS_FOUND)
|
|
Packit |
8fb591 |
message(WARNING "Did not found Python version 3.x")
|
|
Packit |
8fb591 |
message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
else()
|
|
Packit |
8fb591 |
message(WARNING "Sysrepo supports Python 2.x and Python 3.x")
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
set(LIBYANG_CPP_SOURCES
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Xml.cpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Libyang.cpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Tree_Data.cpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Tree_Schema.cpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Internal.cpp)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
set(LIBYANG_HPP_SOURCES
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Xml.hpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Libyang.hpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Tree_Data.hpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Tree_Schema.hpp
|
|
Packit |
8fb591 |
${CMAKE_SOURCE_DIR}/swig/cpp/src/Internal.hpp)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
FUNCTION(PREPEND var prefix)
|
|
Packit |
8fb591 |
SET(listVar "")
|
|
Packit |
8fb591 |
FOREACH(f ${ARGN})
|
|
Packit |
8fb591 |
LIST(APPEND listVar "${prefix}/${f}")
|
|
Packit |
8fb591 |
ENDFOREACH(f)
|
|
Packit |
8fb591 |
SET(${var} "${listVar}" PARENT_SCOPE)
|
|
Packit |
8fb591 |
ENDFUNCTION(PREPEND)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
PREPEND(abs_libsrc ${CMAKE_SOURCE_DIR} ${libsrc})
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if(ENABLE_STATIC)
|
|
Packit |
8fb591 |
add_library(libyang-cpp STATIC ${LIBYANG_CPP_SOURCES})
|
|
Packit |
8fb591 |
else(ENABLE_STATIC)
|
|
Packit |
8fb591 |
add_library(libyang-cpp SHARED ${LIBYANG_CPP_SOURCES})
|
|
Packit |
8fb591 |
endif(ENABLE_STATIC)
|
|
Packit |
8fb591 |
SET_TARGET_PROPERTIES(libyang-cpp PROPERTIES
|
|
Packit |
8fb591 |
VERSION ${LIBYANG_VERSION} SOVERSION ${LIBYANG_SOVERSION} PREFIX "")
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
# include custom Modules
|
|
Packit |
8fb591 |
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
include_directories(${CMAKE_SOURCE_DIR})
|
|
Packit |
8fb591 |
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/cpp/src")
|
|
Packit |
8fb591 |
target_link_libraries(libyang-cpp yang)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if(PKG_CONFIG_FOUND)
|
|
Packit |
8fb591 |
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libyang-cpp.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libyang-cpp.pc" @ONLY)
|
|
Packit |
8fb591 |
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libyang-cpp.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
# install binary
|
|
Packit |
8fb591 |
install(TARGETS libyang-cpp DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
Packit |
8fb591 |
install(FILES ${LIBYANG_HPP_SOURCES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libyang)
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if (GEN_CPP_BINDINGS)
|
|
Packit |
8fb591 |
add_subdirectory(cpp/examples)
|
|
Packit |
8fb591 |
if (ENABLE_BUILD_TESTS)
|
|
Packit |
8fb591 |
add_subdirectory(cpp/tests)
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if(ENABLE_STATIC AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
|
|
Packit |
8fb591 |
message(WARNING "Can't create a static Python module")
|
|
Packit |
8fb591 |
elseif(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
|
|
Packit |
8fb591 |
add_subdirectory(python)
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if(NOT ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
|
|
Packit |
8fb591 |
message(WARNING "Can't create Javascript bindings with a shared library, please use -DENABLE_STATIC")
|
|
Packit |
8fb591 |
elseif(ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
|
|
Packit |
8fb591 |
add_subdirectory(javascript)
|
|
Packit |
8fb591 |
endif()
|
|
Packit |
8fb591 |
|
|
Packit |
8fb591 |
if(ENABLE_STATIC AND GEN_JAVA_BINDINGS)
|
|
Packit |
8fb591 |
message(WARNING "Can't create a static Java module")
|
|
Packit |
8fb591 |
elseif(NOT ENABLE_STATIC AND GEN_JAVA_BINDINGS)
|
|
Packit |
8fb591 |
add_subdirectory(java)
|
|
Packit |
8fb591 |
endif()
|