Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
kdepimlibs4
kdepimlibs_external_libical.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kdepimlibs_external_libical.diff of Package kdepimlibs4
Subject: backport use of external libical From: Will Stephenson <wstephenson@kde.org> Bug: bnc:434982 Patch-Upstream: r837127,r857642,r866457,r866462,r866508,r876183,r876184,r876186,r878170,Xr878171,r878322,r878457,r878525,r878561,r879635,r880138,r882872,r887084,r887085,r887495,r887502 Index: cmake/modules/FindLibical.cmake ================================================================================ --- cmake/modules/FindLibical.cmake +++ cmake/modules/FindLibical.cmake @@ -1,29 +1,86 @@ # Find Libical # -# LIBICAL_FOUND - system has Libical -# LIBICAL_INCLUDE_DIRS - the Libical include directory +# LIBICAL_FOUND - system has Libical with the minimum version needed +# LIBICAL_INCLUDE_DIRS - the Libical include directories # LIBICAL_LIBRARIES - The libraries needed to use Libical +# LIBICAL_VERSION = The value of ICAL_VERSION defined in ical.h # Copyright (c) 2008, Allen Winter <winter@kde.org> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -SET (LIBICAL_FIND_REQUIRED ${Libical_FIND_REQUIRED}) -if (LIBICAL_INCLUDE_DIR AND LIBICAL_LIBRARIES) +if(NOT LIBICAL_MIN_VERSION) + set(LIBICAL_MIN_VERSION "0.33") +endif(NOT LIBICAL_MIN_VERSION) + +if (WIN32) + file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _program_FILES_DIR) + string(REPLACE "\\" "/" _program_FILES_DIR "${_program_FILES_DIR}") +endif(WIN32) + +set(LIBICAL_FIND_REQUIRED ${Libical_FIND_REQUIRED}) +if(LIBICAL_INCLUDE_DIRS AND LIBICAL_LIBRARIES) # Already in cache, be silent set(LIBICAL_FIND_QUIETLY TRUE) -else (LIBICAL_INCLUDE_DIR AND LIBICAL_LIBRARIES) +endif(LIBICAL_INCLUDE_DIRS AND LIBICAL_LIBRARIES) + +#set the root from the LIBICAL_BASE environment +string(REPLACE "\\" "/" libical_root "$ENV{LIBICAL_BASE}") +#override the root from LIBICAL_BASE defined to cmake +if(DEFINED LIBICAL_BASE) + string(REPLACE "\\" "/" libical_root ${LIBICAL_BASE}) +endif(DEFINED LIBICAL_BASE) + +find_path(LIBICAL_INCLUDE_DIRS NAMES ical.h + PATH_SUFFIXES libical + PATHS ${libical_root}/include ${_program_FILES_DIR}/libical/include /usr/local/include /usr/include ${KDE4_INCLUDE_DIR} + NO_CMAKE_SYSTEM_PATH +) + +find_library(LIBICAL_LIBRARY NAMES ical libical + PATHS ${libical_root}/lib ${_program_FILES_DIR}/libical/lib /usr/local/lib /usr/lib ${KDE4_LIB_DIR} + NO_CMAKE_SYSTEM_PATH +) +find_library(LIBICALSS_LIBRARY NAMES icalss libicalss + PATHS ${libical_root}/lib ${_program_FILES_DIR}/libical/lib /usr/local/lib /usr/lib ${KDE4_LIB_DIR} + NO_CMAKE_SYSTEM_PATH +) +set(LIBICAL_LIBRARIES ${LIBICAL_LIBRARY} ${LIBICALSS_LIBRARY}) + +if(LIBICAL_INCLUDE_DIRS AND LIBICAL_LIBRARIES) + set(FIND_LIBICAL_VERSION_SOURCE + "#include <ical.h>\n int main()\n {\n printf(\"%s\",ICAL_VERSION);return 1;\n }\n") + set(FIND_LIBICAL_VERSION_SOURCE_FILE ${CMAKE_BINARY_DIR}/CMakeTmp/FindLIBICAL.cxx) + file(WRITE "${FIND_LIBICAL_VERSION_SOURCE_FILE}" "${FIND_LIBICAL_VERSION_SOURCE}") + + set(FIND_LIBICAL_VERSION_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${LIBICAL_INCLUDE_DIRS}") + + try_run(RUN_RESULT COMPILE_RESULT + ${CMAKE_BINARY_DIR} + ${FIND_LIBICAL_VERSION_SOURCE_FILE} + CMAKE_FLAGS "${FIND_LIBICAL_VERSION_ADD_INCLUDES}" + RUN_OUTPUT_VARIABLE LIBICAL_VERSION) + + if(COMPILE_RESULT AND RUN_RESULT EQUAL 1) + message(STATUS "Found Libical version ${LIBICAL_VERSION}") + macro_ensure_version(${LIBICAL_MIN_VERSION} ${LIBICAL_VERSION} LIBICAL_VERSION_OK) + if(NOT LIBICAL_VERSION_OK) + message(STATUS "Libcal version ${LIBICAL_VERSION} is too old. At least version ${LIBICAL_MIN_VERSION} is needed.") + set(LIBICAL_INCLUDE_DIRS "") + set(LIBICAL_LIBRARIES "") + endif(NOT LIBICAL_VERSION_OK) + else(COMPILE_RESULT AND RUN_RESULT EQ 1) + message(FATAL_ERROR "Unable to compile or run the libical version detection program.") + endif(COMPILE_RESULT AND RUN_RESULT EQUAL 1) - find_path(LIBICAL_INCLUDE_DIR ical.h) - find_library(LIBICAL_LIBRARIES NAMES ical ) +endif(LIBICAL_INCLUDE_DIRS AND LIBICAL_LIBRARIES) - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICAL DEFAULT_MSG - LIBICAL_LIBRARIES LIBICAL_INCLUDE_DIR) +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICAL DEFAULT_MSG LIBICAL_LIBRARIES LIBICAL_INCLUDE_DIRS) - mark_as_advanced(LIBICAL_INCLUDE_DIR LIBICAL_LIBRARIES) +mark_as_advanced(LIBICAL_INCLUDE_DIRS LIBICAL_LIBRARIES) -endif (LIBICAL_INCLUDE_DIR AND LIBICAL_LIBRARIES) --- kcal/CMakeLists.txt +++ kcal/CMakeLists.txt @@ -1,275 +1,96 @@ project(kcal) -# was used by libical, but not anymore -#if (UNIX) -# add_definitions(-DICAL_UNIX_NEWLINE=1) -#endif (UNIX) - -add_definitions(-DPACKAGE_DATA_DIR=\\""${DATA_INSTALL_DIR}/libical"\\" ) # added manually +find_package(Libical) +macro_log_feature(LIBICAL_FOUND "libical" "Reference implementation of the iCalendar data type and serialization format" "http://sourceforge.net/projects/freeassociation" TRUE "0.33" "Required for the critical PIM kcal library.") +if(NOT LIBICAL_FOUND) + macro_display_feature_log() +endif(NOT LIBICAL_FOUND) add_definitions(-DKDE_DEFAULT_DEBUG_AREA=5800) include (ConfigureChecks.cmake) -configure_file (libical/config-libical.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/libical/config-libical.h) if(KDE4_BUILD_TESTS) - add_definitions(-DCOMPILING_TESTS) + add_definitions(-DCOMPILING_TESTS) endif(KDE4_BUILD_TESTS) include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/libical/src/libicalss/ - ${CMAKE_CURRENT_BINARY_DIR}/libical/src/libicalss/ - ${CMAKE_CURRENT_SOURCE_DIR}/versit/ - ${CMAKE_CURRENT_SOURCE_DIR}/libical/src/libical/ - ${CMAKE_CURRENT_BINARY_DIR}/libical/src/libical/ - ${CMAKE_CURRENT_BINARY_DIR}/libical # for config.h - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/kabc - ${CMAKE_BINARY_DIR}/kabc - ${KDE4_INCLUDE_DIR} -) - -set(ICALSCRIPTS ${CMAKE_SOURCE_DIR}/kcal/libical/scripts/ ) - -set(PROPERTYDEPS - ${ICALSCRIPTS}/mkderivedproperties.pl - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/properties.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedproperty.h.in - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedproperty.c.in -) - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.h - COMMAND ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl -i - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedproperty.h.in - -h ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/properties.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.h - DEPENDS ${PROPERTYDEPS} ) - - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.c - COMMAND ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedproperties.pl -i - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedproperty.c.in - -c ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/properties.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.c - DEPENDS ${PROPERTYDEPS} ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.h ) - - -# files generated via add_custom_command are added automatically to the clean files, Alex -#macro_additional_clean_files( -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.c -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.h -#) - - -set(PARAMETERDEPS - ${ICALSCRIPTS}/mkderivedparameters.pl - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/parameters.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedparameter.c.in - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedparameter.h.in -) - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.h - COMMAND ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl -i ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedparameter.h.in - -h ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/parameters.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.h - DEPENDS ${PARAMETERDEPS} ) - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.c - COMMAND ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedparameters.pl -i ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedparameter.c.in - -c ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/parameters.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.c - DEPENDS ${PARAMETERDEPS} ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.h ) - -#files generated via add_custom_command are added automatically to the clean files, Alex -#macro_additional_clean_files( -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.c -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.h -#) - - -set(RESTRICTIONDEPS - ${ICALSCRIPTS}/mkrestrictiontable.pl - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/restrictions.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalrestriction.c.in + ${LIBICAL_INCLUDE_DIRS} + ${LIBICAL_INCLUDE_DIRS}/libical + ${CMAKE_CURRENT_SOURCE_DIR}/versit + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/kabc + ${CMAKE_BINARY_DIR}/kabc + ${KDE4_INCLUDE_DIR} ) -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/icalrestriction.c - COMMAND ${PERL_EXECUTABLE} -I ${ICALSCRIPTS} ${ICALSCRIPTS}/mkrestrictiontable.pl -i ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalrestriction.c.in - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/restrictions.csv > ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/icalrestriction.c - DEPENDS ${RESTRICTIONDEPS} ) - - -#files generated via add_custom_command are added automatically to the clean files, Alex -#macro_additional_clean_files( ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/icalrestriction.c) - -set(VALUEDEPS - ${CMAKE_SOURCE_DIR}/kcal/libical/scripts/mkderivedvalues.pl - ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedvalue.c.in - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedvalue.h.in -) - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.h - COMMAND ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl -i ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedvalue.h.in -h ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.h - DEPENDS ${VALUEDEPS} ) - - -add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.c - COMMAND ${PERL_EXECUTABLE} -I${ICALSCRIPTS} ${ICALSCRIPTS}/mkderivedvalues.pl -i ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalderivedvalue.c.in -c ${CMAKE_SOURCE_DIR}/kcal/libical/design-data/value-types.csv > ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.c - DEPENDS ${VALUEDEPS} ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.h ) - -#files generated via add_custom_command are added automatically to the clean files, Alex -#macro_additional_clean_files( -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.h -# ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.c -#) - - - set(libversit_SRCS ${CMAKE_SOURCE_DIR}/kcal/versit/vcc.c ${CMAKE_SOURCE_DIR}/kcal/versit/vobject.c ) -# Keep absolute paths here, they are used in tests/CMakeLists.txt too. -set(libical_SRCS - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/caldate.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalarray.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalattach.c - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalrecur.c - ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/icalrestriction.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalcomponent.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalenums.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalerror.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalmemory.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalmime.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalparameter.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalparser.c - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalproperty.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icaltime.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalduration.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalperiod.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icaltimezone.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icaltypes.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/icalvalue.c - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/pvl.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/sspm.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libical/vsnprintf.c -) - -set(libicalss_SRCS - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libicalss/icalclassify.c - ${CMAKE_SOURCE_DIR}/kcal/libical/src/libicalss/icalclassify.h -) - - -macro_additional_clean_files(${CMAKE_BINARY_DIR}/kcal/libical/src/libical/ical.h) - -if(WIN32) - set(TOPS "\"${CMAKE_SOURCE_DIR}\"") - set(TOPB "\"${CMAKE_BINARY_DIR}\"") -else(WIN32) - set(TOPS "${CMAKE_SOURCE_DIR}") - set(TOPB "${CMAKE_BINARY_DIR}") -endif(WIN32) - -add_custom_command(OUTPUT - ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/ical.h - COMMAND - ${CMAKE_COMMAND} - -DTOPS:FILEPATH=${TOPS} - -DTOPB:FILEPATH=${TOPB} - -DKDE_FILE_H_FILE:FILEPATH=${CMAKE_BINARY_DIR}/kcal/libical/src/libical/ical.h - -P ${CMAKE_SOURCE_DIR}/kcal/ical_file.cmake - DEPENDS - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedproperty.h - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedparameter.h - ${CMAKE_BINARY_DIR}/kcal/libical/icalderivedvalue.h -) - -macro_additional_clean_files(${CMAKE_BINARY_DIR}/libical/src/libicalss/icalss.h) - -add_custom_command(OUTPUT - ${CMAKE_BINARY_DIR}/kcal/libical/src/libicalss/icalss.h - COMMAND - ${CMAKE_COMMAND} - -DTOP:FILEPATH=${TOPS} - -DKDE_FILE_H_FILE:FILEPATH=${CMAKE_BINARY_DIR}/kcal/libical/src/libicalss/icalss.h - -P ${CMAKE_SOURCE_DIR}/kcal/icalss_file.cmake -) - - ########### next target ############### -set(kcal_LIB_SRCS ${libversit_SRCS} ${libical_SRCS} ${libicalss_SRCS} - incidencebase.cpp - incidence.cpp - journal.cpp - todo.cpp - event.cpp - freebusy.cpp - freebusyperiod.cpp - attendee.cpp - attachment.cpp - recurrencerule.cpp - recurrence.cpp - alarm.cpp - customproperties.cpp - calendar.cpp - calendarlocal.cpp - calformat.cpp - vcalformat.cpp - icalformat.cpp - icalformat_p.cpp - incidenceformatter.cpp - vcaldrag.cpp - icaldrag.cpp - exceptions.cpp - scheduler.cpp - imipscheduler.cpp - dummyscheduler.cpp - calfilter.cpp - person.cpp - period.cpp - duration.cpp - dndfactory.cpp - calstorage.cpp - filestorage.cpp - compat.cpp - resourcecalendar.cpp - resourcelocal.cpp - resourcelocalconfig.cpp - resourcelocaldir.cpp - resourcelocaldirconfig.cpp - resourcecached.cpp - resourcecachedconfig.cpp - calendarresources.cpp - qtopiaformat.cpp - htmlexport.cpp - calendarnull.cpp - freebusyurlstore.cpp - confirmsavedialog.cpp - icaltimezones.cpp - kresult.cpp ) +set(kcal_LIB_SRCS ${libversit_SRCS} + incidencebase.cpp + incidence.cpp + journal.cpp + todo.cpp + event.cpp + freebusy.cpp + freebusyperiod.cpp + attendee.cpp + attachment.cpp + recurrencerule.cpp + recurrence.cpp + alarm.cpp + customproperties.cpp + calendar.cpp + calendarlocal.cpp + calformat.cpp + vcalformat.cpp + icalformat.cpp + icalformat_p.cpp + incidenceformatter.cpp + vcaldrag.cpp + icaldrag.cpp + exceptions.cpp + scheduler.cpp + imipscheduler.cpp + dummyscheduler.cpp + calfilter.cpp + person.cpp + period.cpp + duration.cpp + dndfactory.cpp + calstorage.cpp + filestorage.cpp + compat.cpp + resourcecalendar.cpp + resourcelocal.cpp + resourcelocalconfig.cpp + resourcelocaldir.cpp + resourcelocaldirconfig.cpp + resourcecached.cpp + resourcecachedconfig.cpp + calendarresources.cpp + qtopiaformat.cpp + htmlexport.cpp + calendarnull.cpp + freebusyurlstore.cpp + confirmsavedialog.cpp + icaltimezones.cpp + kresult.cpp ) kde4_add_kcfg_files(kcal_LIB_SRCS htmlexportsettings.kcfgc ) kde4_add_library(kcal SHARED ${kcal_LIB_SRCS}) -target_link_libraries(kcal ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${QT_QTXML_LIBRARY} kresources kabc kpimutils ) +target_link_libraries(kcal ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${QT_QTXML_LIBRARY} kresources kabc kpimutils ${LIBICAL_LIBRARIES}) set_target_properties(kcal PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION}) install(TARGETS kcal ${INSTALL_TARGETS_DEFAULT_ARGS} COMPONENT Devel) -# hack to force ical[ss].h creation -add_custom_target(ical-headers DEPENDS - ${CMAKE_BINARY_DIR}/kcal/libical/src/libical/ical.h - ${CMAKE_BINARY_DIR}/kcal/libical/src/libicalss/icalss.h -) -add_dependencies(kcal ical-headers) - ########### next target ############### set(kcal_local_PART_SRCS resourcelocal_plugin.cpp ) @@ -296,7 +117,6 @@ install(TARGETS kcal_localdir DESTINATION ${PLUGIN_INSTALL_DIR}) -add_subdirectory( libical ) add_subdirectory( tests ) ########### install files ############### --- kcal/icalformat.cpp +++ kcal/icalformat.cpp @@ -24,7 +24,7 @@ defines the ICalFormat class. @brief - iCalendar format implementation. + iCalendar format implementation: a layer of abstraction for libical. @author Cornelius Schumacher \<schumacher@kde.org\> */ @@ -114,7 +114,7 @@ clearException(); QString text = toString( calendar ); - if ( text.isNull() ) { + if ( text.isEmpty() ) { return false; } @@ -237,7 +237,7 @@ // todos Todo::List todoList = cal->rawTodos(); Todo::List::ConstIterator it; - for ( it = todoList.begin(); it != todoList.end(); ++it ) { + for ( it = todoList.constBegin(); it != todoList.constEnd(); ++it ) { component = d->mImpl->writeTodo( *it, tzlist, &tzUsedList ); icalcomponent_add_component( calendar, component ); } @@ -245,7 +245,7 @@ // events Event::List events = cal->rawEvents(); Event::List::ConstIterator it2; - for ( it2 = events.begin(); it2 != events.end(); ++it2 ) { + for ( it2 = events.constBegin(); it2 != events.constEnd(); ++it2 ) { if ( *it2 ) { component = d->mImpl->writeEvent( *it2, tzlist, &tzUsedList ); icalcomponent_add_component( calendar, component ); @@ -255,14 +255,15 @@ // journals Journal::List journals = cal->journals(); Journal::List::ConstIterator it3; - for ( it3 = journals.begin(); it3 != journals.end(); ++it3 ) { + for ( it3 = journals.constBegin(); it3 != journals.constEnd(); ++it3 ) { component = d->mImpl->writeJournal( *it3, tzlist, &tzUsedList ); icalcomponent_add_component( calendar, component ); } // time zones const ICalTimeZones::ZoneMap zones = tzUsedList.zones(); - for ( ICalTimeZones::ZoneMap::ConstIterator it = zones.begin(); it != zones.end(); ++it ) { + for ( ICalTimeZones::ZoneMap::ConstIterator it=zones.constBegin(); + it != zones.constEnd(); ++it ) { icaltimezone *tz = (*it).icalTimezone(); if ( !tz ) { kError() << "bad time zone"; @@ -278,10 +279,9 @@ icalcomponent_free( calendar ); icalmemory_free_ring(); - if ( text.isNull() ) { + if ( text.isEmpty() ) { setException( new ErrorFormat( ErrorFormat::SaveError, i18n( "libical error" ) ) ); - return QString(); } return text; @@ -478,8 +478,6 @@ return 0; } - kDebug() << "getting method..."; - icalproperty_method icalmethod = icalproperty_get_method( m ); iTIPMethod method; @@ -514,8 +512,6 @@ break; } - kDebug() << "restriction..."; - if ( !icalrestriction_check( message ) ) { kWarning() << endl << "kcal library reported a problem while parsing:"; @@ -523,7 +519,7 @@ << d->mImpl->extractErrorProperty( c ); } - Incidence *existingIncidence = cal->incidenceFromSchedulingID( incidence->uid() ); + Incidence *existingIncidence = cal->incidence( incidence->uid() ); icalcomponent *calendarComponent; if ( existingIncidence ) { @@ -542,16 +538,13 @@ d->mImpl->writeEvent( event ) ); } } else { - calendarComponent = 0; + icalcomponent_free( message ); + return new ScheduleMessage( incidence, method, ScheduleMessage::Unknown ); } - kDebug() << "classify..."; - icalproperty_xlicclass result = icalclassify( message, calendarComponent, (char *)"" ); - kDebug() << "returning with result = " << result; - ScheduleMessage::Status status; switch ( result ) { --- kcal/icalformat_p.cpp +++ kcal/icalformat_p.cpp @@ -1289,16 +1289,14 @@ } p = icalproperty_get_first_parameter( attendee, ICAL_X_PARAMETER ); - if ( p ) { - uid = icalparameter_get_xvalue( p ); + while ( p ) { + QString xname = QString( icalparameter_get_xname( p ) ).toUpper(); + QString xvalue = QString::fromUtf8( icalparameter_get_xvalue( p ) ); + if ( xname == "X-UID" ) { + uid = xvalue; + } + p = icalproperty_get_next_parameter( attendee, ICAL_X_PARAMETER ); } - // This should be added, but there seems to be a libical bug here. - // TODO: does this work now in libical-0.24 or greater? - /*while (p) { - // if (icalparameter_get_xname(p) == "X-UID") { - uid = icalparameter_get_xvalue(p); - p = icalproperty_get_next_parameter(attendee, ICAL_X_PARAMETER); - } */ Attendee *a = new Attendee( name, email, rsvp, status, role, uid ); --- kcal/tests/CMakeLists.txt +++ kcal/tests/CMakeLists.txt @@ -2,20 +2,20 @@ include_directories( ${CMAKE_SOURCE_DIR}/kcal - ${CMAKE_BINARY_DIR}/kcal/libical/src + ${LIBICAL_INCLUDE_DIRS} ) MACRO(KCAL_UNIT_TESTS) FOREACH(_testname ${ARGN}) kde4_add_unit_test(${_testname} NOGUI ${_testname}.cpp) - target_link_libraries(${_testname} ${KDE4_KDECORE_LIBS} kcal ${QT_QTTEST_LIBRARY}) + target_link_libraries(${_testname} ${KDE4_KDECORE_LIBS} kcal ${QT_QTTEST_LIBRARY} ${QT_QTGUI_LIBRARY}) ENDFOREACH(_testname) ENDMACRO(KCAL_UNIT_TESTS) MACRO(KCAL_EXECUTABLE_TESTS) FOREACH(_testname ${ARGN}) kde4_add_executable(${_testname} NOGUI TEST ${_testname}.cpp) - target_link_libraries(${_testname} ${KDE4_KDECORE_LIBS} kcal ${QT_QTTEST_LIBRARY}) + target_link_libraries(${_testname} ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBS} kcal ${QT_QTTEST_LIBRARY} kresources) ENDFOREACH(_testname) ENDMACRO(KCAL_EXECUTABLE_TESTS) @@ -82,32 +82,32 @@ FOREACH( file ${testFiles} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( RecurNext-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurrence "next" ${file} ) + ADD_TEST( RecurNext-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurrence.shell "next" ${file} ) ENDFOREACH(file) FOREACH( file ${testFiles} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( RecurPrev-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurprevious "prev" ${file} ) + ADD_TEST( RecurPrev-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurprevious.shell "prev" ${file} ) ENDFOREACH(file) FOREACH( file ${testFiles} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( RecursOn-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurson "recurson" ${file} ) + ADD_TEST( RecursOn-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testrecurson.shell "recurson" ${file} ) ENDFOREACH(file) FOREACH( file ${compatFiles} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( Compat-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/readandwrite "ical" ${file} ) + ADD_TEST( Compat-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/readandwrite.shell "ical" ${file} ) ENDFOREACH(file) FOREACH( file ${vCalFilesAsIcal} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( VCalOut-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testvcalexport "vcal" ${file} ) + ADD_TEST( VCalOut-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/testvcalexport.shell "vcal" ${file} ) ENDFOREACH(file) FOREACH( file ${vCalFiles} ) GET_FILENAME_COMPONENT( fn ${file} NAME) - ADD_TEST( VCalIn-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/readandwrite "ical" ${file} ) + ADD_TEST( VCalIn-${fn} ${CMAKE_CURRENT_SOURCE_DIR}/runsingletestcase.pl ${EXECUTABLE_OUTPUT_PATH}/readandwrite.shell "ical" ${file} ) ENDFOREACH(file) # ADD_TEST( TestRecurrence runtestcase.pl testrecurrence "next" ${CMAKE_CURRENT_SOURCE_DIR} data/RecurrenceRule/ "*.ics" ) --- kcal/tests/data/vCalendar/KOrganizer_vCalTestCase04.ics.vcal.ref +++ kcal/tests/data/vCalendar/KOrganizer_vCalTestCase04.ics.vcal.ref @@ -1,20 +1,20 @@ -BEGIN:VCALENDAR -PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN -VERSION:1.0 -BEGIN:VEVENT -DTSTART:20050520T140000Z -DTEND:20050520T150000Z -DCREATED:20050520T105002Z -UID:KOrganizer-776556232.395 -SEQUENCE:4 -LAST-MODIFIED:20050520T105750Z -X-ORGANIZER:MAILTO:reinhold@kainhofer.com -RRULE:MD3 20 20060630T000000 -SUMMARY:20. Mai 2005, 16-17 Uhr, alle 3 Monate am 20., bis 30. Juni 2006 -CLASS:PUBLIC -PRIORITY:5 -TRANSP:0 -END:VEVENT - -END:VCALENDAR - +BEGIN:VCALENDAR +PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN +VERSION:1.0 +BEGIN:VEVENT +DTSTART:20050520T140000Z +DTEND:20050520T150000Z +DCREATED:20050520T105002Z +UID:KOrganizer-776556232.395 +SEQUENCE:4 +LAST-MODIFIED:20050520T105750Z +X-ORGANIZER:MAILTO:reinhold@kainhofer.com +RRULE:MD3 20 20060630T040000 +SUMMARY:20. Mai 2005, 16-17 Uhr, alle 3 Monate am 20., bis 30. Juni 2006 +CLASS:PUBLIC +PRIORITY:5 +TRANSP:0 +END:VEVENT + +END:VCALENDAR + --- kcal/tests/data/vCalendar/KOrganizer_vCalTestCase05.ics.vcal.ref +++ kcal/tests/data/vCalendar/KOrganizer_vCalTestCase05.ics.vcal.ref @@ -1,20 +1,20 @@ -BEGIN:VCALENDAR -PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN -VERSION:1.0 -BEGIN:VEVENT -DTSTART:20050520T120000Z -DTEND:20050520T130000Z -DCREATED:20050520T104822Z -UID:KOrganizer-428202830.752 -SEQUENCE:2 -LAST-MODIFIED:20050520T105740Z -X-ORGANIZER:MAILTO:reinhold@kainhofer.com -RRULE:W2 MO WE FR 20050630T000000 -SUMMARY:20. Mai 2005, 14-15 Uhr, alle 2 Wochen am Mo/Mi/Fr, bis 30. Juni 2005 -CLASS:PUBLIC -PRIORITY:5 -TRANSP:0 -END:VEVENT - -END:VCALENDAR - +BEGIN:VCALENDAR +PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN +VERSION:1.0 +BEGIN:VEVENT +DTSTART:20050520T120000Z +DTEND:20050520T130000Z +DCREATED:20050520T104822Z +UID:KOrganizer-428202830.752 +SEQUENCE:2 +LAST-MODIFIED:20050520T105740Z +X-ORGANIZER:MAILTO:reinhold@kainhofer.com +RRULE:W2 MO WE FR 20050630T040000 +SUMMARY:20. Mai 2005, 14-15 Uhr, alle 2 Wochen am Mo/Mi/Fr, bis 30. Juni 2005 +CLASS:PUBLIC +PRIORITY:5 +TRANSP:0 +END:VEVENT + +END:VCALENDAR + --- kcal/tests/data/vCalendar/KOrganizer_vCalTestCase12.ics.vcal.ref +++ kcal/tests/data/vCalendar/KOrganizer_vCalTestCase12.ics.vcal.ref @@ -1,20 +1,20 @@ -BEGIN:VCALENDAR -PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN -VERSION:1.0 -BEGIN:VEVENT -DTSTART:20050520T110000Z -DTEND:20050520T120000Z -DCREATED:20050520T104758Z -UID:KOrganizer-1078681338.495 -SEQUENCE:1 -LAST-MODIFIED:20050520T104819Z -X-ORGANIZER:MAILTO:reinhold@kainhofer.com -RRULE:D3 20050630T000000 -SUMMARY:20. Mai 2005, 13-14 Uhr, alle 3 Tage, bis 30. Juni 2005 -CLASS:PUBLIC -PRIORITY:5 -TRANSP:0 -END:VEVENT - -END:VCALENDAR - +BEGIN:VCALENDAR +PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN +VERSION:1.0 +BEGIN:VEVENT +DTSTART:20050520T110000Z +DTEND:20050520T120000Z +DCREATED:20050520T104758Z +UID:KOrganizer-1078681338.495 +SEQUENCE:1 +LAST-MODIFIED:20050520T104819Z +X-ORGANIZER:MAILTO:reinhold@kainhofer.com +RRULE:D3 20050630T040000 +SUMMARY:20. Mai 2005, 13-14 Uhr, alle 3 Tage, bis 30. Juni 2005 +CLASS:PUBLIC +PRIORITY:5 +TRANSP:0 +END:VEVENT + +END:VCALENDAR + --- kcal/tests/data/vCalendar/KOrganizer_vCalTestCase13.ics.vcal.ref +++ kcal/tests/data/vCalendar/KOrganizer_vCalTestCase13.ics.vcal.ref @@ -1,20 +1,20 @@ -BEGIN:VCALENDAR -PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN -VERSION:1.0 -BEGIN:VEVENT -DTSTART:20050520T180000Z -DTEND:20050520T190000Z -DCREATED:20050520T105244Z -UID:KOrganizer-1521406395.909 -SEQUENCE:1 -LAST-MODIFIED:20050520T105327Z -X-ORGANIZER:MAILTO:reinhold@kainhofer.com -RRULE:MP3 1- TH 20061231T000000 -SUMMARY:20. Mai 2005, 20-21 Uhr, alle 3 Monate am letzten Do, bis 31. 12. 2006 -CLASS:PUBLIC -PRIORITY:5 -TRANSP:0 -END:VEVENT - -END:VCALENDAR - +BEGIN:VCALENDAR +PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN +VERSION:1.0 +BEGIN:VEVENT +DTSTART:20050520T180000Z +DTEND:20050520T190000Z +DCREATED:20050520T105244Z +UID:KOrganizer-1521406395.909 +SEQUENCE:1 +LAST-MODIFIED:20050520T105327Z +X-ORGANIZER:MAILTO:reinhold@kainhofer.com +RRULE:MP3 1- TH 20061231T050000 +SUMMARY:20. Mai 2005, 20-21 Uhr, alle 3 Monate am letzten Do, bis 31. 12. 2006 +CLASS:PUBLIC +PRIORITY:5 +TRANSP:0 +END:VEVENT + +END:VCALENDAR + --- kcal/tests/testicaltimezones.cpp +++ kcal/tests/testicaltimezones.cpp @@ -33,7 +33,7 @@ QTEST_KDEMAIN( ICalTimeZonesTest, NoGUI ) extern "C" { - #include "kcal/libical/src/libical/ical.h" + #include <ical.h> } #include "kcal/icaltimezones.h" using namespace KCal; @@ -72,22 +72,22 @@ "TZOFFSETFROM:-0400\r\n" "TZOFFSETTO:-0500\r\n" "TZNAME:WST\r\n" - "END:STANDARD\r\n\r\n" + "END:STANDARD\r\n" "BEGIN:DAYLIGHT\r\n" "DTSTART:19870405T020000\r\n" "RRULE:FREQ=YEARLY;UNTIL=19970406T070000Z;BYDAY=1SU;BYMONTH=4\r\n" "TZOFFSETFROM:-0500\r\n" "TZOFFSETTO:-0400\r\n" "TZNAME:WDT1\r\n" - "END:DAYLIGHT\r\n\r\n" + "END:DAYLIGHT\r\n" "BEGIN:DAYLIGHT\r\n" "DTSTART:19990425T020000\r\n" "RDATE;VALUE=DATE-TIME:20000430T020000\r\n" "TZOFFSETFROM:-0500\r\n" "TZOFFSETTO:-0400\r\n" "TZNAME:WDT2\r\n" - "END:DAYLIGHT\r\n\r\n" - "END:VTIMEZONE\r\n\r\n"; + "END:DAYLIGHT\r\n" + "END:VTIMEZONE\r\n"; // Standard time only static const char *VTZ_other = @@ -101,8 +101,8 @@ "TZOFFSETFROM:+0000\r\n" "TZOFFSETTO:+0300\r\n" "TZNAME:OST\r\n" - "END:STANDARD\r\n\r\n" - "END:VTIMEZONE\r\n\r\n"; + "END:STANDARD\r\n" + "END:VTIMEZONE\r\n"; // CALENDAR component header and footer static const char *calendarHeader =
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor