171 lines
4.1 KiB
CMake
171 lines
4.1 KiB
CMake
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()
|
|
|
|
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
|
|
iconjob.cpp
|
|
owncloudpropagator.cpp
|
|
nextcloudtheme.cpp
|
|
abstractpropagateremotedeleteencrypted.cpp
|
|
deletejob.cpp
|
|
progressdispatcher.cpp
|
|
propagatorjobs.cpp
|
|
propagatedownload.cpp
|
|
propagateupload.cpp
|
|
propagateuploadv1.cpp
|
|
propagateuploadng.cpp
|
|
bulkpropagatorjob.cpp
|
|
putmultifilejob.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
|
|
syncoptions.cpp
|
|
theme.cpp
|
|
clientsideencryption.cpp
|
|
clientsideencryptionjobs.cpp
|
|
datetimeprovider.cpp
|
|
ocsuserstatusconnector.cpp
|
|
userstatusconnector.cpp
|
|
ocsprofileconnector.cpp
|
|
creds/dummycredentials.cpp
|
|
creds/abstractcredentials.cpp
|
|
creds/credentialscommon.cpp
|
|
creds/keychainchunk.cpp
|
|
)
|
|
|
|
if (WIN32)
|
|
# to fix warnings from ntstatus.h
|
|
add_definitions(-DUMDF_USING_NTSTATUS)
|
|
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}/nextcloudsync/mirall
|
|
)
|
|
INSTALL(
|
|
FILES ${creds_HEADERS}
|
|
DESTINATION ${INCLUDE_INSTALL_DIR}/nextcloudsync/creds
|
|
)
|
|
ENDIF(NOT APPLE)
|
|
|
|
find_package(Qt5 REQUIRED COMPONENTS WebSockets)
|
|
|
|
add_library(nextcloudsync SHARED ${libsync_SRCS})
|
|
add_library(Nextcloud::sync ALIAS nextcloudsync)
|
|
|
|
target_link_libraries(nextcloudsync
|
|
PUBLIC
|
|
Nextcloud::csync
|
|
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(nextcloudsync PUBLIC Qt5::Widgets Qt5::Svg qt5keychain)
|
|
endif()
|
|
|
|
if(Inotify_FOUND)
|
|
target_include_directories(nextcloudsync PRIVATE ${Inotify_INCLUDE_DIRS})
|
|
target_link_libraries(nextcloudsync PUBLIC ${Inotify_LIBRARIES})
|
|
endif()
|
|
|
|
GENERATE_EXPORT_HEADER( nextcloudsync
|
|
BASE_NAME nextcloudsync
|
|
EXPORT_MACRO_NAME OWNCLOUDSYNC_EXPORT
|
|
EXPORT_FILE_NAME owncloudlib.h
|
|
STATIC_DEFINE OWNCLOUD_BUILT_AS_STATIC
|
|
)
|
|
|
|
target_include_directories(nextcloudsync PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
set_target_properties(
|
|
nextcloudsync
|
|
PROPERTIES
|
|
VERSION
|
|
${MIRALL_VERSION}
|
|
SOVERSION
|
|
${MIRALL_SOVERSION}
|
|
RUNTIME_OUTPUT_DIRECTORY
|
|
${BIN_OUTPUT_DIRECTORY}
|
|
LIBRARY_OUTPUT_NAME
|
|
${APPLICATION_EXECUTABLE}sync
|
|
RUNTIME_OUTPUT_NAME
|
|
${APPLICATION_EXECUTABLE}sync
|
|
)
|
|
|
|
if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
|
install(TARGETS nextcloudsync
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
else()
|
|
install(TARGETS nextcloudsync DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/MacOS)
|
|
endif()
|
|
|
|
|
|
add_subdirectory(vfs)
|