CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. set(MODULE_NAME "spshell")
  2. set(MODULE_PREFIX "SPSHELL")
  3. set(${MODULE_PREFIX}_SRCS
  4. app.cpp
  5. log.cpp
  6. spshell.cpp
  7. stdafx.cpp
  8. svc.cpp
  9. IOCPSocketServer.cpp
  10. SpShellConsole.cpp
  11. TelnetServer.cpp
  12. )
  13. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
  14. if (WIN32)
  15. set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
  16. set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
  17. set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
  18. set (RC_VERSION_PATCH ${RVC_VERSION_BUILD})
  19. configure_file(
  20. ${CMAKE_SOURCE_DIR}/Version.rc.in
  21. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  22. @ONLY)
  23. set (${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  24. endif()
  25. include_directories(${RVCFRAMEWORK_SOURCES_DIR})
  26. include_directories(${RVCFRAMEWORK_SOURCES_DIR}/spbase)
  27. include_directories(${RVCFRAMEWORK_SOURCES_DIR}/libtoolkit)
  28. add_executable(${MODULE_NAME} WIN32 ${${MODULE_PREFIX}_SRCS})
  29. if(MSVC)
  30. # run as administration privilidege
  31. set_target_properties(${MODULE_NAME}
  32. PROPERTIES LINK_FLAGS
  33. "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")
  34. endif(MSVC)
  35. target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
  36. target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
  37. target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Widgets)
  38. list(APPEND ${MODULE_PREFIX}_LIBS libtoolkit spbase)
  39. if(MSVC)
  40. # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
  41. list(APPEND ${MODULE_PREFIX}_LIBS
  42. ws2_32
  43. DbgHelp
  44. psapi
  45. )
  46. else()
  47. list(APPEND ${MODULE_PREFIX}_LIBS winpr)
  48. endif()
  49. target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  50. install(TARGETS ${MODULE_NAME}
  51. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries
  52. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
  53. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries
  54. )
  55. if (WITH_PDB_SAVE AND MSVC)
  56. install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols)
  57. endif()