set(MODULE_NAME "spshell") set(MODULE_PREFIX "SPSHELL") set(${MODULE_PREFIX}_SRCS app.cpp log.cpp spshell.cpp stdafx.cpp svc.cpp IOCPSocketServer.cpp SpShellConsole.cpp TelnetServer.cpp ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) if (WIN32) set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR}) set (RC_VERSION_MINOR ${RVC_VERSION_MINOR}) set (RC_VERSION_BUILD ${RVC_VERSION_REVISION}) set (RC_VERSION_PATCH ${RVC_VERSION_BUILD}) configure_file( ${CMAKE_SOURCE_DIR}/Version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) set (${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) endif() include_directories(${RVCFRAMEWORK_SOURCES_DIR}) include_directories(${RVCFRAMEWORK_SOURCES_DIR}/spbase) include_directories(${RVCFRAMEWORK_SOURCES_DIR}/libtoolkit) add_executable(${MODULE_NAME} WIN32 ${${MODULE_PREFIX}_SRCS}) if(MSVC) # run as administration privilidege set_target_properties(${MODULE_NAME} PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS") endif(MSVC) target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Widgets) list(APPEND ${MODULE_PREFIX}_LIBS libtoolkit spbase) if(MSVC) # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS") list(APPEND ${MODULE_PREFIX}_LIBS ws2_32 DbgHelp psapi ) else() list(APPEND ${MODULE_PREFIX}_LIBS winpr) endif() target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries ) if (WITH_PDB_SAVE AND MSVC) install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols) endif()