CMakeLists.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. cmake_minimum_required(VERSION 3.10)
  2. set(this_exe DesignerPattern)
  3. #包含源文件
  4. file(GLOB LOCAL_SRC
  5. # ${CMAKE_SOURCE_DIR}/External/module/Logs/*.cpp
  6. ${CMAKE_CURRENT_SOURCE_DIR}/*.qrc
  7. ${CMAKE_CURRENT_SOURCE_DIR}/*.rc
  8. ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
  9. ${CMAKE_CURRENT_SOURCE_DIR}/*.ui
  10. ${CMAKE_CURRENT_SOURCE_DIR}/AbstractFactory/*.cpp
  11. ${CMAKE_CURRENT_SOURCE_DIR}/Builder/*.cpp
  12. ${CMAKE_CURRENT_SOURCE_DIR}/Iterator/*.cpp
  13. ${CMAKE_CURRENT_SOURCE_DIR}/FlyWeight/*.cpp
  14. ${CMAKE_CURRENT_SOURCE_DIR}/Combination/*.cpp
  15. ${CMAKE_CURRENT_SOURCE_DIR}/CommandModel/*.cpp
  16. )
  17. # 生成可执行程序
  18. add_executable(${this_exe}
  19. # WIN32
  20. ${GLOBAL_SRC}
  21. ${LOCAL_SRC}
  22. )
  23. #添加头文件
  24. target_include_directories(${this_exe} PRIVATE
  25. ${CMAKE_CURRENT_SOURCE_DIR}
  26. ${CMAKE_SOURCE_DIR}/External/common
  27. ${CMAKE_SOURCE_DIR}/External/module
  28. # ${CMAKE_SOURCE_DIR}/External/module/Logs
  29. ${CMAKE_CURRENT_SOURCE_DIR}/AbstractFactory
  30. ${CMAKE_CURRENT_SOURCE_DIR}/Builder
  31. ${CMAKE_CURRENT_SOURCE_DIR}/Iterator
  32. ${CMAKE_CURRENT_SOURCE_DIR}/Iterator/RingQueue
  33. ${CMAKE_CURRENT_SOURCE_DIR}/Combination
  34. ${CMAKE_CURRENT_SOURCE_DIR}/CommandModel
  35. )
  36. target_link_libraries(${this_exe} PRIVATE
  37. Qt${QT_VERSION_MAJOR}::Widgets
  38. Qt${QT_VERSION_MAJOR}::Core
  39. Qt${QT_VERSION_MAJOR}::Network
  40. # Qt5::Multimedia
  41. # Qt5::Xml
  42. # Qt5::Sql
  43. )
  44. target_link_libraries(${this_exe} PRIVATE
  45. # ${CURL_LIBRARY}
  46. # ${OpenSSL-1.1.1_LIB_LIBRARY}
  47. # CURL::libcurl
  48. External::spdlog
  49. )
  50. if(CMAKE_CXX_COMPILER_VERSION LESS 9.0)
  51. target_link_libraries(${this_exe} PRIVATE
  52. stdc++fs
  53. )
  54. endif()
  55. # target_link_libraries(${this_exe} PRIVATE
  56. # ${CURL_LIBRARY}
  57. # )
  58. # message(STATUS "CURL_LIBRARY: ${CURL_LIBRARY}")
  59. # if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
  60. # target_link_libraries(${this_exe} PRIVATE
  61. # # debug spdlogd.lib
  62. # # optimized spdlog.lib
  63. # )
  64. # elseif(CMAKE_CXX_COMPILER_ID MATCHES GNU)
  65. # target_link_libraries(${this_exe} PRIVATE
  66. # # debug
  67. # # optimized ${SM_DLL}
  68. # )
  69. # endif()