cmake_minimum_required(VERSION 3.16) project(Cabinet VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTORCC ON) find_package(Qt6 6.7 COMPONENTS Quick Network SerialPort Multimedia Pdf REQUIRED) find_package(Qt6 REQUIRED COMPONENTS Core) find_package(Qt6 REQUIRED COMPONENTS Core) find_package(Qt6 REQUIRED COMPONENTS Core) find_package(Qt6 REQUIRED COMPONENTS Core) # 查找静态库 find_library(ZKFP_LIB NAMES zkfp libzkfp PATHS libs/x64lib NO_DEFAULT_PATH ) # 查找虹软SDK find_library(ARCSOFT_FACE_LIB NAMES libarcsoft_face_engine PATHS sdk/hrsdk/lib/X64 NO_DEFAULT_PATH ) set(APP_ICON_WINDOWS "${CMAKE_CURRENT_SOURCE_DIR}/logo.rc") qt_add_executable(appCabinet main.cpp resource.qrc ${RESOURCES} ${APP_ICON_WINDOWS} ) qt_add_qml_module(appCabinet URI Cabinet VERSION 1.0 QML_FILES main.qml RESOURCES resource.qrc QML_FILES content/Login.qml content/MainScreen.qml SOURCES user/config.cpp SOURCES user/config.h user/define.h SOURCES SOURCES user/lock.h user/lock.cpp SOURCES user/httpclient.cpp user/httpclient.h SOURCES user/rfid.h user/rfid.cpp SOURCES user/ModuleReader.h SOURCES user/pro.cpp user/pro.h QML_FILES content/MaterialSelModel.qml QML_FILES content/MaterialTakeBack.qml QML_FILES content/MaterialStatistics.qml QML_FILES content/MaterialInstructions.qml QML_FILES content/MaterialCheckPlan.qml QML_FILES content/MaterialCheckForm.qml SOURCES SOURCES user/finger.h user/finger.cpp SOURCES user/logoutput.cpp user/logoutput.h QML_FILES content/SetView.qml SOURCES libs/include/libzkfp.h libs/include/libzkfperrdef.h libs/include/libzkfptype.h libs/include/zkinterface.h RESOURCES logo.rc QML_FILES content/MaterialCheckSign.qml QML_FILES QML_FILES content/PromptInfo.qml QML_FILES content/MaterialReplace.qml QML_FILES content/ReuseTextField.qml QML_FILES content/ReuseComboBox.qml QML_FILES content/ReuseDateField.qml SOURCES sdk/hrsdk/inc/amcomdef.h sdk/hrsdk/inc/arcsoft_face_sdk.h sdk/hrsdk/inc/asvloffscreen.h sdk/hrsdk/inc/merror.h SOURCES Interactive/template_singleton.h SOURCES Interactive/InteractiveCore.cpp Interactive/InteractiveCore.h SOURCES Interactive/InteractiveData.cpp Interactive/InteractiveData.h SOURCES Interactive/InteractiveTask.cpp Interactive/InteractiveTask.h SOURCES Interactive/InteractiveWork.cpp Interactive/InteractiveWork.h SOURCES Interactive/InteractiveListModel.cpp Interactive/InteractiveListModel.h SOURCES Interactive/RunAbstract.cpp Interactive/RunAbstract.h SOURCES Interactive/RunDataCacheRefresh.h Interactive/RunDataCacheRefresh.cpp SOURCES Interactive/RunHttpGetMaterialInfoList.cpp Interactive/RunHttpGetMaterialInfoList.h SOURCES Interactive/RunMaterialReplaceRefreshListModel.h Interactive/RunMaterialReplaceRefreshListModel.cpp SOURCES Interactive/RunMaterialManualReplaceRefreshListModel.h Interactive/RunMaterialManualReplaceRefreshListModel.cpp SOURCES Interactive/RunMaterialManualReplaceSubmit.h Interactive/RunMaterialManualReplaceSubmit.cpp QML_FILES content/MaterialReplaceHand.qml QML_FILES content/MaterialReplaceAuto.qml QML_FILES content/MaterialException.qml QML_FILES content/ReuseMaterialInfo.qml QML_FILES content/MaterialExceptionReport.qml QML_FILES content/MaterialExceptionUpdate.qml SOURCES Interactive/RunHttpGetIsMaterialsPropertyValuePage.h Interactive/RunHttpGetIsMaterialsPropertyValuePage.cpp SOURCES Interactive/RunMaterialExceptionReport.h Interactive/RunMaterialExceptionReport.cpp SOURCES Interactive/RunMaterialExceptionRefreshListModel.h Interactive/RunMaterialExceptionRefreshListModel.cpp QML_FILES content/MaterialExceptionFinish.qml SOURCES user/timeout.h user/timeout.cpp QML_FILES content/MaterialDialog.qml SOURCES Interactive/RunHttpGet_getIsMaterialsLoanExceptionPage.h Interactive/RunHttpGet_getIsMaterialsLoanExceptionPage.cpp QML_FILES content/MaterialDialogMisplace.qml QML_FILES content/MaterialDialogTake.qml QML_FILES content/MaterialDialogBack.qml SOURCES SOURCES SOURCES Interactive/InteractiveFace.h Interactive/InteractiveFace.cpp QML_FILES QML_FILES content/FacialRecognition.qml SOURCES Interactive/InteractiveHttp.h Interactive/InteractiveHttp.cpp SOURCES Interactive/RunHttpGet_getSysUserCharacteristicPage.h Interactive/RunHttpGet_getSysUserCharacteristicPage.cpp ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. set_target_properties(appCabinet PROPERTIES # MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appCabinet MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) # add_subdirectory(MediaPlayer) # add_subdirectory(MediaControls) # 链接静态库 target_link_libraries(appCabinet PRIVATE ${ZKFP_LIB} ${ARCSOFT_FACE_LIB}) target_link_libraries(appCabinet PRIVATE Qt6::Quick Qt6::Network Qt6::SerialPort Qt6::Multimedia Qt6::Pdf ) target_link_libraries(appCabinet PRIVATE Qt6::Core) target_link_libraries(appCabinet PRIVATE Qt6::Core) target_link_libraries(appCabinet PRIVATE Qt6::Core) target_link_libraries(appCabinet PRIVATE Qt6::Core) include(GNUInstallDirs) install(TARGETS appCabinet BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )