Menu

Tree [e9e3f6] master /
 History

HTTPS access


File Date Author Commit
 .github 2024-05-28 Kang Lin Kang Lin [7b7397] Modify etc/Calendar_logqt.ini and ci
 3th_libs 2024-09-06 Kang Lin Kang Lin [e9e3f6] Modify etc/Calendar_logqt.ini
 App 2024-05-11 Kang Lin Kang Lin [c39365] Modify translataions
 Install 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20
 Resource 2020-04-10 KangLin KangLin [e0b5a9] Modify README
 Src 2024-06-20 Kang Lin Kang Lin [1f9efe] Rename icons theme name
 Update 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20
 cmake 2023-05-06 Kang Lin Kang Lin [0161f0] Use RabbitCommon v2 and remove qmake files
 debian 2024-06-20 Kang Lin Kang Lin [190284] Fix debian/rules bug in aarch64
 etc 2024-09-06 Kang Lin Kang Lin [e9e3f6] Modify etc/Calendar_logqt.ini
 share 2023-11-28 Kang Lin Kang Lin [6df4f5] Modify org.Rabbit.Calendar.desktop to add MimeType
 test 2020-04-09 KangLin KangLin [cd2682] Rename to calendar
 vcpkg 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20
 .gitignore 2024-01-19 Kang Lin Kang Lin [4d94d7] Modify typo
 .gitmodules 2019-04-09 KangLin KangLin [589679] Add LunarCalendar
 .travis.yml 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20
 Authors.md 2019-06-02 KangLin KangLin [019c73] Add show CFrmTopActivity
 Authors_zh_CN.md 2019-06-02 KangLin KangLin [019c73] Add show CFrmTopActivity
 CMakeLists.txt 2024-06-21 Kang Lin Kang Lin [abfd5d] Modify version
 ChangeLog.md 2024-05-11 Kang Lin Kang Lin [7e1aa8] Modify ChangeLog
 ChangeLog_zh_CN.md 2024-05-11 Kang Lin Kang Lin [7e1aa8] Modify ChangeLog
 License.md 2019-02-12 KangLin KangLin [ede3a6] Modify license
 README.md 2023-12-21 Kang Lin Kang Lin [1a66b5] Modify README to add https://invent.kde.org/kan...
 README_zh_CN.md 2023-12-21 Kang Lin Kang Lin [1a66b5] Modify README to add https://invent.kde.org/kan...
 appveyor.yml 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20
 build_debpackage.sh 2024-01-15 Kang Lin Kang Lin [4d2fbe] debian: modify package
 deploy.sh 2024-06-19 Kang Lin Kang Lin [ec3b9f] Fix deploy.sh bug
 vcpkg.json 2024-04-03 Kang Lin Kang Lin [7bc890] Release v1.0.20

Read Me

CalendarCalendar

Author: Kang Lin kl222@126.com


🇨🇳 中文

build
build
Appveyor build status

GitHub issues

GitHub stars
star

Latest Release
Download Calendar

Github downloads
Sourceforge download


Tables of contents

Project location:

Features

  • [x] calendar
    • Birthady(Year cycle), include lunar and solar
    • Month cycle
    • Week cycle
    • Custom cycle
  • Custom task
  • Eye Nurse: Vision protection
  • Sticky
  • [x] Cross-platform, support multiple operating systems

    • Windows
    • Linux、Unix
    • Android
    • Mac os
    • IOS

    Mac os and IOS, I don't have the corresponding equipment,
    please compile and test the students with the corresponding equipment.

See: Qt5, Qt6

ScreentShot

  • Unix screent shot
  • Calendar
  • Sticky
  • Tasks
  • Android screent shot
  • Android Calendar
  • Android Stricky List
  • Android Stricky
  • Android Tasks

Donation

donation

Download

  • Latest release from github
  • Latest release from sourceforge

Depend

Compile

  • Create and enter the build directory

    git clone --recursive https://github.com/KangLin/Calendar.git cd Calendar mkdir build

  • Compile

    cd build qmake ../Calendar.pro RabbitCommon_DIR= make install

  • Parameter

    • RabbitCommon_DIR: RabbitCommon source directory
  • Use cmake
  • CMAKE parameter:
    • [MUST] Qt5_DIR: qt install position(default $QT_ROOT/lib/cmake/Qt5).
      See:https://doc.qt.io/qt-5/cmake-get-started.html
      or Qt6_DIR: qt install position(default $QT_ROOT/lib/cmake/Qt6).
    • [MUST] RabbitCommon_DIR: RabbitCommon source directory
    • [Optional] CMAKE_INSTALL_PREFIX: install prefix
  • windows or linux

    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install \
         -DCMAKE_BUILD_TYPE=Release \
         -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \
         -DRabbitCommon_DIR=
    cmake --build . --config Release --target install
    
  • android

    • The host is linux
    • Compile

      cd build
      cmake .. -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \
          -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
          -DANDROID_ABI="armeabi-v7a with NEON" \
          -DANDROID_PLATFORM=android-18 \
          -DQt5_DIR= \
          -DRabbitCommon_DIR= 
      cmake --build . --config Release --target install
      cmake --build . --target APK
      
    • Install

      • Install program and libraries

        cmake --build . --config Release --target install/strip
        
      • Generate APK

        cmake --build . --config Release --target APK
        
    • The host is windows

    • Compile

      cd build
      cmake .. -G"Unix Makefiles" ^
          -DCMAKE_BUILD_TYPE=Release ^
          -DCMAKE_INSTALL_PREFIX=`pwd`/android-build ^
          -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake ^
          -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe ^
          -DANDROID_PLATFORM=android-18 ^
          -DANDROID_ABI=arm64-v8a ^
          -DANDROID_ARM_NEON=ON ^
          -DQt5_DIR= ^
          -DRabbitCommon_DIR= 
      cmake --build . --config Release --target install
      cmake --build . --target APK
      
    • Install

      • Install program and libraries

        cmake --build . --config Release --target install/strip
        
      • Generate APK

        cmake --build . --config Release --target APK
        
    • Parameter Description: https://developer.android.google.cn/ndk/guides/cmake

    • ANDROID_ABI: The following values can be taken:
      Goal ABI. If the target ABI is not specified, CMake uses armeabi-v7a by default.
      Valid ABI are:
      • armeabi:CPU with software floating point arithmetic based on ARMv5TE
      • armeabi-v7a:ARMv7-based device with hardware FPU instructions (VFP v3 D16)
      • armeabi-v7a with NEON:Same as armeabi-v7a, but with NEON floating point instructions enabled. This is equivalent to setting -DANDROID_ABI=armeabi-v7a and -DANDROID_ARM_NEON=ON.
      • arm64-v8a:ARMv8 AArch64 Instruction Set
      • x86:IA-32 Instruction Set
      • x86_64 - x86-64 Instruction Set
    • ANDROID_NDK <path> The path of installed ndk in host</path>
    • ANDROID_PLATFORM: For a full list of platform names and corresponding Android system images, see the [Android NDK Native API] (https://developer.android.google.com/ndk/guides/stable_apis.html)
    • ANDROID_ARM_MODE
    • ANDROID_ARM_NEON
    • ANDROID_STL: Specifies the STL that CMake should use.
      • c++_shared: The shared library variant of libc++.
      • c++_static: The static library variant of libc++.
      • none: No C++ standard library support.
      • system: The system STL
    • Install apk to devices

      adb install android-build-debug.apk

  • Note

    • windows
      If you build app. Qt does not provide openssl dynamic library for copyright reasons, so you must copy the dynamic library of openssl to the installation directory.

      • If it is 32, you can find the dynamic library of openssl (libeay32.dll, ssleay32.dll) in the Qt installer Tools\QtCreator\bin directory.
      • If it is 64-bit, you will need to download the binary installation package for openssl yourself.
    • linux

      sudo apt-get install libssl1.1

Use

  • pro

    • Library mode:
      Add the following code to the project file:

      isEmpty(Calendar_DIR): Calendar_DIR=$ENV{Calendar_DIR} isEmpty(Calendar_DIR){ message("1. Please download Calendar source code from https://github.com/KangLin/Calendar") message(" ag:") message(" git clone https://github.com/KangLin/Calendar.git") message("2. Build the project, get library") error("2. Then set value Calendar_DIR to library root directory") } INCLUDEPATH *= $${Calendar_DIR}/include $${Calendar_DIR}/include/export LIBS *= -L$${Calendar_DIR}/lib -lLunarCalendar -lCalendar

  • cmake

    • Source code

      • Submodule mode

        add_subdirectory(3th_libs/Calendar/Src)

      • Non-submodule mode

        ```

        Need include ${RabbitCommon_DIR}/cmake/Translations.cmake

        if( "${RabbitCommon_DIR}" STREQUAL "" )
        set(RabbitCommon_DIR $ENV{RabbitCommon_DIR})
        if( "${RabbitCommon_DIR}" STREQUAL "" )
        set(RabbitCommon_DIR ${CMAKE_SOURCE_DIR}/../RabbitCommon)
        endif()
        endif()

        if(DEFINED RabbitCommon_DIR AND EXISTS ${RabbitCommon_DIR}/Src)
        add_subdirectory(${RabbitCommon_DIR}/Src ${CMAKE_BINARY_DIR}/RabbitCommon)
        include(${RabbitCommon_DIR}/cmake/Translations.cmake)
        else()
        message("1. Please download RabbitCommon source code from https://github.com/KangLin/RabbitCommon")
        message(" ag:")
        message(" git clone https://github.com/KangLin/RabbitCommon.git")
        message("2. Then set cmake value or environment variable RabbitCommon_DIR to download root directory.")
        message(" ag:")
        message(FATAL_ERROR " cmake -DRabbitCommon_DIR= ")
        endif()

        set(Calendar_DIR $ENV{Calendar_DIR} CACHE PATH "Set Calendar source code root directory.")
        if(EXISTS ${Calendar_DIR}/Src)
        add_subdirectory(${Calendar_DIR}/Src ${CMAKE_BINARY_DIR}/Calendar)
        else()
        message("1. Please download Calendar source code from https://github.com/KangLin/Calendar")
        message(" ag:")
        message(" git clone https://github.com/KangLin/Calendar.git")
        message("2. Then set cmake value or environment variable Calendar_DIR to download root directory.")
        message(" ag:")
        message(FATAL_ERROR " cmake -DCalendar_DIR= ")
        endif()
        ```

    • Library mode:

      • Cmake parameter Calendar_DIR specifies the installation root directory

        FIND_PACKAGE(Calendar)

      • Add libraries and include in CMakeLists.txt

        SET(APP_LIBS ${PROJECT_NAME} ${QT_LIBRARIES}) if(Calendar_FOUND) target_compile_definitions(${PROJECT_NAME} PRIVATE -DCalendar) target_include_directories(${PROJECT_NAME} PRIVATE "${Calendar_INCLUDE_DIRS}/Src" "${Calendar_INCLUDE_DIRS}/Src/export") set(APP_LIBS ${APP_LIBS} ${Calendar_LIBRARIES}) endif() target_link_libraries(${PROJECT_NAME} ${APP_LIBS})

Contribution

License Agreement