| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- project(libsync)
- include(DefinePlatformDefaults)
- set(CMAKE_AUTOMOC TRUE)
- if ( APPLE )
- list(APPEND OS_SPECIFIC_LINK_LIBRARIES
- /System/Library/Frameworks/CoreServices.framework
- /System/Library/Frameworks/Foundation.framework
- /System/Library/Frameworks/AppKit.framework
- )
- endif()
- IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|OpenBSD")
- list(APPEND OS_SPECIFIC_LINK_LIBRARIES
- inotify
- )
- ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|OpenBSD")
- set(libsync_SRCS
- account.cpp
- pushnotifications.cpp
- wordlist.cpp
- bandwidthmanager.cpp
- capabilities.cpp
- clientproxy.cpp
- cookiejar.cpp
- discovery.cpp
- discoveryphase.cpp
- encryptfolderjob.cpp
- filesystem.cpp
- httplogger.cpp
- logger.cpp
- accessmanager.cpp
- configfile.cpp
- abstractnetworkjob.cpp
- networkjobs.cpp
- owncloudpropagator.cpp
- nextcloudtheme.cpp
- abstractpropagateremotedeleteencrypted.cpp
- deletejob.cpp
- progressdispatcher.cpp
- propagatorjobs.cpp
- propagatedownload.cpp
- propagateupload.cpp
- propagateuploadv1.cpp
- propagateuploadng.cpp
- propagateremotedelete.cpp
- propagateremotedeleteencrypted.cpp
- propagateremotedeleteencryptedrootfolder.cpp
- propagateremotemove.cpp
- propagateremotemkdir.cpp
- propagateuploadencrypted.cpp
- propagatedownloadencrypted.cpp
- syncengine.cpp
- syncfileitem.cpp
- syncfilestatustracker.cpp
- localdiscoverytracker.cpp
- syncresult.cpp
- theme.cpp
- clientsideencryption.cpp
- clientsideencryptionjobs.cpp
- creds/dummycredentials.cpp
- creds/abstractcredentials.cpp
- creds/credentialscommon.cpp
- creds/keychainchunk.cpp
- vfs/suffix/vfs_suffix.cpp
- )
- if (WIN32)
- set(libsync_SRCS ${libsync_SRCS}
- vfs/cfapi/cfapiwrapper.cpp
- vfs/cfapi/hydrationjob.cpp
- vfs/cfapi/vfs_cfapi.cpp
- )
- add_definitions(-D_WIN32_WINNT=_WIN32_WINNT_WIN10)
- list(APPEND OS_SPECIFIC_LINK_LIBRARIES cldapi)
- elseif(LINUX) # elseif(LINUX OR APPLE)
- set(libsync_SRCS ${libsync_SRCS} vfs/xattr/vfs_xattr.cpp)
- if (APPLE)
- set(libsync_SRCS ${libsync_SRCS} vfs/xattr/xattrwrapper_mac.cpp)
- else()
- set(libsync_SRCS ${libsync_SRCS} vfs/xattr/xattrwrapper_linux.cpp)
- endif()
- endif()
- if(TOKEN_AUTH_ONLY)
- set (libsync_SRCS ${libsync_SRCS} creds/tokencredentials.cpp)
- else()
- set (libsync_SRCS ${libsync_SRCS} creds/httpcredentials.cpp)
- endif()
- # These headers are installed for libowncloudsync to be used by 3rd party apps
- set(owncloudsync_HEADERS
- account.h
- syncengine.h
- configfile.h
- networkjobs.h
- progressdispatcher.h
- syncfileitem.h
- syncresult.h
- )
- set(creds_HEADERS
- creds/abstractcredentials.h
- creds/httpcredentials.h
- )
- IF (NOT APPLE)
- INSTALL(
- FILES ${owncloudsync_HEADERS}
- DESTINATION ${INCLUDE_INSTALL_DIR}/${synclib_NAME}/mirall
- )
- INSTALL(
- FILES ${creds_HEADERS}
- DESTINATION ${INCLUDE_INSTALL_DIR}/${synclib_NAME}/creds
- )
- ENDIF(NOT APPLE)
- find_package(Qt5 REQUIRED COMPONENTS WebSockets)
- add_library(${synclib_NAME} SHARED ${libsync_SRCS})
- target_link_libraries(${synclib_NAME}
- "${csync_NAME}"
- OpenSSL::Crypto
- OpenSSL::SSL
- ${OS_SPECIFIC_LINK_LIBRARIES}
- Qt5::Core Qt5::Network
- Qt5::WebSockets
- )
- if (NOT TOKEN_AUTH_ONLY)
- find_package(Qt5 REQUIRED COMPONENTS Widgets Svg)
- target_link_libraries(${synclib_NAME} Qt5::Widgets Qt5::Svg qt5keychain)
- endif()
- if(INOTIFY_FOUND)
- target_include_directories(${synclib_NAME} PRIVATE ${INOTIFY_INCLUDE_DIR})
- link_directories(${INOTIFY_LIBRARY_DIR})
- target_link_libraries(${synclib_NAME} ${INOTIFY_LIBRARY} )
- endif()
- GENERATE_EXPORT_HEADER( ${synclib_NAME}
- BASE_NAME ${synclib_NAME}
- EXPORT_MACRO_NAME OWNCLOUDSYNC_EXPORT
- EXPORT_FILE_NAME owncloudlib.h
- STATIC_DEFINE OWNCLOUD_BUILT_AS_STATIC
- )
- target_include_directories(${synclib_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
- set_target_properties( ${synclib_NAME} PROPERTIES
- VERSION ${MIRALL_VERSION}
- SOVERSION ${MIRALL_SOVERSION}
- RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY}
- )
- if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
- install(TARGETS ${synclib_NAME}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
- else()
- install(TARGETS ${synclib_NAME} DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/MacOS)
- endif()
|