CMakeLists.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. )
  16. # 生成可执行程序
  17. add_executable(${this_exe}
  18. # WIN32
  19. ${GLOBAL_SRC}
  20. ${LOCAL_SRC}
  21. )
  22. #添加头文件
  23. target_include_directories(${this_exe} PRIVATE
  24. ${CMAKE_CURRENT_SOURCE_DIR}
  25. ${CMAKE_SOURCE_DIR}/External/common
  26. ${CMAKE_SOURCE_DIR}/External/module
  27. # ${CMAKE_SOURCE_DIR}/External/module/Logs
  28. ${CMAKE_CURRENT_SOURCE_DIR}/AbstractFactory
  29. ${CMAKE_CURRENT_SOURCE_DIR}/Builder
  30. ${CMAKE_CURRENT_SOURCE_DIR}/Iterator
  31. ${CMAKE_CURRENT_SOURCE_DIR}/Iterator/RingQueue
  32. ${CMAKE_CURRENT_SOURCE_DIR}/Combination
  33. )
  34. target_link_libraries(${this_exe} PRIVATE
  35. Qt${QT_VERSION_MAJOR}::Widgets
  36. Qt${QT_VERSION_MAJOR}::Core
  37. Qt${QT_VERSION_MAJOR}::Network
  38. # Qt5::Multimedia
  39. # Qt5::Xml
  40. # Qt5::Sql
  41. )
  42. target_link_libraries(${this_exe} PRIVATE
  43. # ${CURL_LIBRARY}
  44. # ${OpenSSL-1.1.1_LIB_LIBRARY}
  45. # CURL::libcurl
  46. External::spdlog
  47. )
  48. if(CMAKE_CXX_COMPILER_VERSION LESS 9.0)
  49. target_link_libraries(${this_exe} PRIVATE
  50. stdc++fs
  51. )
  52. endif()
  53. # target_link_libraries(${this_exe} PRIVATE
  54. # ${CURL_LIBRARY}
  55. # )
  56. # message(STATUS "CURL_LIBRARY: ${CURL_LIBRARY}")
  57. # if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
  58. # target_link_libraries(${this_exe} PRIVATE
  59. # # debug spdlogd.lib
  60. # # optimized spdlog.lib
  61. # )
  62. # elseif(CMAKE_CXX_COMPILER_ID MATCHES GNU)
  63. # target_link_libraries(${this_exe} PRIVATE
  64. # # debug
  65. # # optimized ${SM_DLL}
  66. # )
  67. # endif()