Task, calendar, Vision protection
GPL-3.0 License
Author: Kang Lin [email protected]
calendar
Custom task
Sticky
Cross-platform, support multiple operating systems
Mac os and IOS, I don't have the corresponding equipment, please compile and test the students with the corresponding equipment.
git clone https://github.com/KangLin/RabbitCommon.git
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
CMAKE parameter
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
Install apk to devices
adb install android-build-debug.apk
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.
linux
sudo apt-get install libssl1.1
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})