Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
cmake_minimum_required(VERSION 2.8.12)

project(QWebdav)

set(VERSION 1.0)

include(FeatureSummary)
find_package(ECM 5.28.0 NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules")
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)

set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(KDEInstallDirs)
include(KDECMakeSettings)

include(GenerateExportHeader)

set(REQUIRED_QT_VERSION 5.5.0)
find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core Network Xml)

include(ECMSetupVersion)
include(ECMGenerateHeaders)

ecm_setup_version(${VERSION}
VARIABLE_PREFIX QWEBDAV
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/qwebdav_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/QWebdavConfigVersion.cmake"
SOVERSION 1)

add_subdirectory(qwebdavlib)

# create a Config.cmake and a ConfigVersion.cmake file and install them
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/QWebdav")

include(ECMPackageConfigHelpers)

ecm_configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/QWebdavConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/QWebdavConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qwebdav_version.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT Devel)

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/QWebdavConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/QWebdavConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel)

install(EXPORT QWebdavTargets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE QWebdavTargets.cmake)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
8 changes: 8 additions & 0 deletions QWebdavConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@PACKAGE_INIT@

find_dependency(Qt5Core @REQUIRED_QT_VERSION@)
find_dependency(Qt5Xml @REQUIRED_QT_VERSION@)
find_dependency(Qt5Network @REQUIRED_QT_VERSION@)

include("${CMAKE_CURRENT_LIST_DIR}/QWebdavTargets.cmake")

49 changes: 49 additions & 0 deletions qwebdavlib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

set(qwebdav_SRCS
qnaturalsort.cpp
qwebdav.cpp
qwebdavdirparser.cpp
qwebdavitem.cpp
)

add_library(QWebdav ${qwebdav_SRCS})
generate_export_header(QWebdav)

target_compile_definitions(QWebdav PRIVATE QWEBDAV_LIBRARY=1)
target_include_directories(QWebdav
INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/QWebdav>")

target_link_libraries(QWebdav
PUBLIC
Qt5::Core
Qt5::Network
Qt5::Xml
)

set_target_properties(QWebdav PROPERTIES
VERSION ${QWEBDAV_VERSION_STRING}
SOVERSION ${QWEBDAV_SOVERSION}
EXPORT_NAME "QWebdav"
)

ecm_generate_headers(QWebdav_HEADERS
HEADER_NAMES
QWebdav
QWebdavItem
QWebdavDirParser
QNaturalSort
QWebdav_global

REQUIRED_HEADERS QWebdav_HEADERS
)

install(TARGETS QWebdav
EXPORT QWebdavTargets
${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/qwebdav_export.h
${QWebdav_HEADERS}
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/QWebdav
COMPONENT Devel
)
40 changes: 40 additions & 0 deletions qwebdavlibExample/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
cmake_minimum_required(VERSION 2.8.12)

project(QWebDavExample)

set(VERSION 1.0)

cmake_minimum_required(VERSION 2.8.12)

project(QWebDav)

set(VERSION 1.0)

include(FeatureSummary)
find_package(ECM 5.28.0 NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules")

set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(KDEInstallDirs)
include(KDECMakeSettings)

set(REQUIRED_QT_VERSION 5.5.0)

find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core Xml)
find_package(QWebDav REQUIRED)

add_executable(QWebDavExample
main.cpp
qexample.cpp
)

target_link_libraries(QWebDavExample
QWebDav
)

install(TARGETS QWebDavExample
${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)