CMakeLists.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. cmake_minimum_required(VERSION 3.22)
  2. project(Notepad-- VERSION 1.22.0)
  3. include(cmake/SparkEnvConfig.cmake)
  4. include(cmake/SparkMacrosConfig.cmake)
  5. include(cmake/SparkFindQt5Config.cmake)
  6. # include(cmake/SparkFindQt6Config.cmake)
  7. include(cmake/SparkMacrosExtendConfig.cmake)
  8. # ----------------- 构建之前 全局定义 ----------------- #
  9. # 在 Windows 中开启 UNICODE 以支持 TCHAR 功能
  10. if(WIN32)
  11. add_compile_definitions(_UNICODE= UNICODE=)
  12. endif()
  13. # ----------------- 构建 QSci 静态库 ----------------- #
  14. if(TRUE)
  15. include(cmake/modules/QScint.cmake)
  16. endif(TRUE)
  17. # ----------------- 构建 Notepad-- 程序 ----------------- #
  18. if(TRUE)
  19. include(cmake/modules/Notepad--.cmake)
  20. endif(TRUE)
  21. # ----------------- Notepad-- 其它主线构建相关 ----------------- #
  22. option(USE_MACOS_UNIVERSAL "通用 MacOS 平台构建" OFF)
  23. #
  24. option(USE_LINUX_UNIVERSAL "通用 Linux 平台构建" OFF)
  25. option(USE_LINUX_DEBIAN "通用 Debian Linux 平台构建" OFF)
  26. option(USE_LINUX_APPIMAGE "通用 Appimage Linux 平台构建" OFF)
  27. #
  28. option(USE_LINUX_UOS "独立 Linux 平台的 Uos 构建" OFF)
  29. #
  30. option(USE_WINDOWS_UNIVERSAL "通用 Windows 平台构建" OFF)
  31. option(USE_WINDOWS_MINGW "通用 Windows 平台 MinGW 构建" OFF)
  32. option(USE_WINDOWS_MSVC "通用 Windows 平台 MSVC 构建" OFF)
  33. #
  34. option(WINDOWS_DEPLOY_QT "通用 Windows 平台 Qt 部署" OFF)
  35. option(WINDOWS_DEPLOY_QT5 "通用 Windows 平台指定 Qt5 部署 windeployqt" OFF)
  36. option(WINDOWS_DEPLOY_QT6 "通用 Windows 平台指定 Qt6 部署 windeployqt" OFF)
  37. # 使用 macos.cmake / linux.cmake / windows.cmake 维护构建.
  38. if(APPLE)
  39. # 通用 MacOS 平台的构建(一个无具体实现的空构建)
  40. # include(cmake/platforms/macos.cmake)
  41. # 在 Linux 中此处将由通用构建、Debian 打包构建、Appimage 打包构建、Uos 打包构建组成
  42. elseif(UNIX AND NOT APPLE AND NOT WIN32 AND NOT ANDROID)
  43. # 通用 Linux 平台构建,一切的起始
  44. if(USE_LINUX_UNIVERSAL)
  45. include(cmake/platforms/linux-universal.cmake)
  46. # 通用 Linux 平台的 Debian deb 构建
  47. if(USE_LINUX_DEBIAN)
  48. include(cmake/platforms/linux-debian.cmake)
  49. endif()
  50. # 通用 Linux 平台的 Appimage 构建
  51. if(USE_LINUX_APPIMAGE)
  52. include(cmake/platforms/linux-appimage.cmake)
  53. endif()
  54. # 独立 Linux 平台的 Uos 构建
  55. elseif(USE_LINUX_UOS)
  56. include(cmake/platforms/linux-uos.cmake)
  57. # 其它 Linux 平台的构建
  58. else()
  59. # include(cmake/platforms/linux.cmake)
  60. endif(USE_LINUX_UNIVERSAL)
  61. # 在 Windows 中此处将由通用构建、MinGW 构建、MSVC 构建组成
  62. elseif(WIN32)
  63. # 通用 Windows 平台构建,一切的起始
  64. if(USE_WINDOWS_UNIVERSAL)
  65. include(cmake/platforms/windows-universal.cmake)
  66. # 为 Windows 中构建的应用进行 windeployqt 的配方
  67. include(cmake/platforms/windows-deployqt.cmake)
  68. # 通用平台的 Windows MinGW 构建
  69. if(USE_WINDOWS_MINGW)
  70. # include(cmake/platforms/windows-mingw.cmake)
  71. endif()
  72. # 通用平台的 Windows MSVC 构建
  73. if(USE_WINDOWS_MSVC)
  74. # include(cmake/platforms/windows-msvc.cmake)
  75. endif()
  76. # 其它 Windows 平台的构建
  77. else()
  78. # include(cmake/platforms/windows-other.cmake)
  79. endif(USE_WINDOWS_UNIVERSAL)
  80. endif()
  81. # ----------------- Notepad-- 其它主线构建相关 ----------------- #