CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. cmake_minimum_required(VERSION 3.16)
  2. project(NotePad-- VERSION 1.22.0)
  3. set(CMAKE_AUTOMOC ON)
  4. set(CMAKE_AUTOUIC ON)
  5. set(CMAKE_AUTORCC ON)
  6. find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Concurrent Network PrintSupport XmlPatterns)
  7. # qscint 关键依赖库
  8. add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint)
  9. # 插件库包含
  10. # helloworld 动态插件库
  11. add_subdirectory(${PROJECT_SOURCE_DIR}/src/plugin/helloworld)
  12. # win下需要开启UNICODE进行支持TCHAR
  13. if(CMAKE_HOST_WIN32)
  14. add_definitions(-D_UNICODE -DUNICODE)
  15. endif()
  16. if(${PLUGIN_EN})
  17. if(${PLUGIN_EN} STREQUAL on)
  18. add_definitions(-DNO_PLUGIN=1)
  19. endif(${PLUGIN_EN})
  20. endif()
  21. file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui)
  22. set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui)
  23. aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
  24. aux_source_directory(${PROJECT_SOURCE_DIR}/src/cceditor SRC)
  25. if(CMAKE_HOST_WIN32)
  26. # 添加 WIN32 保证主程序启动没有命令行
  27. list(APPEND WIN_RCS ${PROJECT_SOURCE_DIR}/src/RealCompareToMinGw.rc)
  28. add_executable(${PROJECT_NAME} WIN32 ${WIN_RCS} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
  29. else()
  30. add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
  31. endif()
  32. target_include_directories(${PROJECT_NAME} PRIVATE
  33. ${PROJECT_SOURCE_DIR}/src
  34. ${PROJECT_SOURCE_DIR}/src/cceditor
  35. ${PROJECT_SOURCE_DIR}/src/qscint/src
  36. ${PROJECT_SOURCE_DIR}/src/qscint/src/Qsci
  37. ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/src
  38. ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/include
  39. ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib
  40. ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex
  41. )
  42. target_link_libraries(${PROJECT_NAME} qscint Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
  43. # set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/bin")
  44. # set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
  45. if(CMAKE_HOST_UNIX)
  46. install(
  47. TARGETS ${PROJECT_NAME}
  48. DESTINATION "bin"
  49. )
  50. install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
  51. DESTINATION "/")
  52. include(${PROJECT_SOURCE_DIR}/cmake/deb_package_config.cmake)
  53. include(CPack)
  54. elseif(CMAKE_HOST_WIN32)
  55. install(TARGETS ${PROJECT_NAME}
  56. DESTINATION "/")
  57. install(DIRECTORY ${PROJECT_SOURCE_DIR}/build/bin/
  58. DESTINATION "/")
  59. # 设置软件版本
  60. set(CPACK_PACKAGE_NAME "NotePad--")
  61. set(CPACK_PACKAGE_DESCRIPTION "NotePad--")
  62. set(CPACK_PACKAGE_COPYRIGHT "Copyright (c) 2023")
  63. set(CPACK_PACKAGE_VERSION "1.22.0")
  64. set(CPACK_PACKAGE_VERSION_MAJOR "1")
  65. set(CPACK_PACKAGE_VERSION_MINOR "22")
  66. set(CPACK_PACKAGE_VERSION_PATCH "0")
  67. include(${PROJECT_SOURCE_DIR}/cmake/nsis_package_config.cmake)
  68. include(CPack)
  69. endif()