diff --git a/src/private/CMakeLists.txt b/src/private/CMakeLists.txt index 13ae4303a..66f0c3438 100644 --- a/src/private/CMakeLists.txt +++ b/src/private/CMakeLists.txt @@ -1,107 +1,110 @@ add_subdirectory(protocolgen) if(NOT XMLLINT_EXECUTABLE) message(STATUS "xmllint not found, skipping protocol.xml validation") else() add_test(AkonadiPrivate-protocol-xmllint ${XMLLINT_EXECUTABLE} --noout ${CMAKE_CURRENT_SOURCE_DIR}/protocol.xml) endif() add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/protocol_gen.cpp ${CMAKE_CURRENT_BINARY_DIR}/protocol_gen.h COMMAND protocolgen ${CMAKE_CURRENT_SOURCE_DIR}/protocol.xml DEPENDS protocolgen ${CMAKE_CURRENT_SOURCE_DIR}/protocol.xml COMMENT "Generating Protocol implementation" ) add_custom_target(generate_protocol DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/protocol_gen.cpp) set(akonadiprivate_SRCS imapparser.cpp imapset.cpp instance.cpp datastream_p.cpp externalpartstorage.cpp protocol.cpp scope.cpp tristate.cpp standarddirs.cpp dbus.cpp ) set(akonadiprivate_LIBS PUBLIC Qt5::Core Qt5::DBus ) if (WIN32) set(akonadiprivate_LIBS ${akonadiprivate_LIBS} PRIVATE Qt5::Network ) endif() ecm_qt_declare_logging_category(akonadiprivate_SRCS HEADER akonadiprivate_debug.h IDENTIFIER AKONADIPRIVATE_LOG CATEGORY_NAME org.kde.pim.akonadiprivate) if (WIN32) # MSVC does not like when the same object files are reused for shared and # static linking, so in this case we build all sources twice to make it happy set(akonadiprivate_buildsources ${akonadiprivate_SRCS}) else() add_library(akonadiprivate_obj OBJECT ${akonadiprivate_SRCS}) target_include_directories(akonadiprivate_obj PUBLIC "$") target_include_directories(akonadiprivate_obj PRIVATE "$") target_include_directories(akonadiprivate_obj PUBLIC "$") set_target_properties(akonadiprivate_obj PROPERTIES POSITION_INDEPENDENT_CODE 1) add_dependencies(akonadiprivate_obj generate_protocol) set(akonadiprivate_buildsources $) endif() add_library(KF5AkonadiPrivate SHARED ${akonadiprivate_buildsources}) add_library(KF5::AkonadiPrivate ALIAS KF5AkonadiPrivate) if (WIN32) + target_include_directories(KF5AkonadiPrivate PUBLIC "$") + target_include_directories(KF5AkonadiPrivate PRIVATE "$") + target_include_directories(KF5AkonadiPrivate PUBLIC "$") add_dependencies(KF5AkonadiPrivate generate_protocol) endif() target_link_libraries(KF5AkonadiPrivate ${akonadiprivate_LIBS}) generate_export_header(KF5AkonadiPrivate BASE_NAME akonadiprivate) set_target_properties(KF5AkonadiPrivate PROPERTIES VERSION ${AKONADI_VERSION_STRING} SOVERSION ${AKONADI_SOVERSION} EXPORT_NAME AkonadiPrivate ) install(TARGETS KF5AkonadiPrivate EXPORT KF5AkonadiTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/akonadiprivate_export.h standarddirs_p.h dbus_p.h imapparser_p.h imapset_p.h instance_p.h externalpartstorage_p.h protocol_p.h ${CMAKE_CURRENT_BINARY_DIR}/protocol_gen.h protocol_exception_p.h capabilities_p.h scope_p.h tristate_p.h DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/akonadi/private ) ### Private static library used by unit-tests #### add_library(akonadiprivate_static STATIC ${akonadiprivate_buildsources}) if (WIN32) add_dependencies(akonadiprivate_static generate_protocol) endif() set_target_properties(akonadiprivate_static PROPERTIES COMPILE_FLAGS -DAKONADIPRIVATE_STATIC_DEFINE ) target_link_libraries(akonadiprivate_static ${akonadiprivate_LIBS})