diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2e3e764 --- /dev/null +++ b/CMakeLists.txt @@ -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) diff --git a/QWebdavConfig.cmake.in b/QWebdavConfig.cmake.in new file mode 100644 index 0000000..a3f8c67 --- /dev/null +++ b/QWebdavConfig.cmake.in @@ -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") + diff --git a/qwebdavlib/CMakeLists.txt b/qwebdavlib/CMakeLists.txt new file mode 100644 index 0000000..7ad1f1b --- /dev/null +++ b/qwebdavlib/CMakeLists.txt @@ -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 "$") + +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 +) diff --git a/qwebdavlibExample/CMakeLists.txt b/qwebdavlibExample/CMakeLists.txt new file mode 100644 index 0000000..0d1e9a8 --- /dev/null +++ b/qwebdavlibExample/CMakeLists.txt @@ -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)