CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. set(MODULE_NAME "spbase")
  2. set(MODULE_PREFIX "SPBASE")
  3. file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.c" "*.hpp")
  4. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  5. "SpVitualDevice.h"
  6. "SpVirtualDevice.cpp"
  7. "testInherits.cpp"
  8. "Console.h"
  9. "Console.cpp"
  10. "sp_hcc.h" # no used anywhere
  11. "sp_hcc.c"
  12. )
  13. if(MSVC)
  14. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  15. "sp_dbg.c"
  16. "sp_tbs_unix.cpp"
  17. )
  18. list(APPEND ${MODULE_PREFIX}_SRCS SpBase.rc)
  19. else()
  20. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  21. "CodeSignVerify.cpp"
  22. "PadMisc.cpp"
  23. "SpBaseRoutine.h"
  24. "SpBaseRoutine.cpp"
  25. #"SpSecureClient.cpp" # remove this file temporary.
  26. #"spShareMemoryBase.h"
  27. #"spShareMemoryBase.cpp"
  28. "sp_checkEntity.cpp"
  29. "sp_checkEntity.h"
  30. "sp_groupProcess.cpp"
  31. "sp_groupProcess.h"
  32. #"sp_runTask.cpp"
  33. "sp_sps.c" #silverlight
  34. "sp_dbg.cpp"
  35. "sp_dbg.h"
  36. "sp_tbs_win.cpp"
  37. "sp_firewallControl.cpp"
  38. )
  39. endif(MSVC)
  40. list(APPEND ${MODULE_PREFIX}_SRCS ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4/uuid4.cpp)
  41. #list(APPEND ${MODULE_PREFIX}_SRCS ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4/uuid.cpp)
  42. set(SPBASE_VERSION_STRING "1.1.1-dev2")
  43. rvc_set_win_dll_ver(${MODULE_PREFIX} ${SPBASE_VERSION_STRING})
  44. list(APPEND ${MODULE_PREFIX}_LIBS libtoolkit RVCComm)
  45. if(WIN32)
  46. #add_definitions(-DSPBASE_EXPORTS -DSCEW_DLL)
  47. list(APPEND ${MODULE_PREFIX}_LIBS psapi imagehlp ws2_32)
  48. list(APPEND ${MODULE_PREFIX}_LIBS
  49. Version WinTrust Crypt32 # for CodeSignVerify
  50. DbgHelp #for SpBase.cpp
  51. GdiPlus #for GUI
  52. )
  53. else()
  54. list(APPEND ${MODULE_PREFIX}_LIBS winpr)
  55. endif(WIN32)
  56. add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
  57. set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "d")
  58. target_include_directories(${MODULE_NAME} PRIVATE
  59. ${RVC_COMMON_INCLUDE_DIR}
  60. ${RVC_TOOLKIT_INCLUDE_DIR}
  61. ${CMAKE_CURRENT_BINARY_DIR}
  62. ${CONAN_INCLUDE_DIRS_JSONCPP}
  63. ${RVCFRAMEWORK_SOURCES_DIR}/RvcLogSdk
  64. ${RVCFRAMEWORK_SOURCES_DIR}/RvcRestfulSdk
  65. ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4
  66. )
  67. target_link_directories(${MODULE_NAME} PRIVATE
  68. ${CONAN_LIB_DIRS_JSONCPP}
  69. )
  70. if(MSVC)
  71. target_compile_definitions(${MODULE_NAME} PRIVATE "-DSPBASE_EXPORTS")
  72. set(OTHER_LIBS "comsupp")
  73. else()
  74. set(OTHER_LIBS "")
  75. endif(MSVC)
  76. target_link_libraries(${MODULE_NAME}
  77. ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS}
  78. ${PRIVATE_KEYWORD} ${CONAN_LIBS_JSONCPP}
  79. ${PRIVATE_KEYWORD} RVCLogSDK
  80. ${PRIVATE_KEYWORD} RVCRestfulSDK
  81. ${PRIVATE_KEYWORD} ${OTHER_LIBS}
  82. )
  83. # target_add_cppcheck(${MODULE_NAME} FORCE_CHECK)
  84. if (BUILD_TESTING)
  85. add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
  86. target_include_directories(${MODULE_NAME}_a PRIVATE
  87. ${RVC_COMMON_INCLUDE_DIR}
  88. ${RVC_TOOLKIT_INCLUDE_DIR}
  89. ${CMAKE_CURRENT_BINARY_DIR}
  90. ${CONAN_INCLUDE_DIRS_JSONCPP}/json
  91. ${RVCFRAMEWORK_SOURCES_DIR}/RvcLogSdk
  92. ${RVCFRAMEWORK_SOURCES_DIR}/RvcRestfulSdk
  93. )
  94. target_link_directories(${MODULE_NAME}_a PRIVATE
  95. ${CONAN_LIB_DIRS_JSONCPP}
  96. )
  97. target_link_libraries(${MODULE_NAME}_a PRIVATE ${${MODULE_PREFIX}_LIBS} ${CONAN_LIBS_JSONCPP} RVCLogSDK RVCRestfulSDK)
  98. set_target_properties(${MODULE_NAME}_a PROPERTIES COMPILE_DEFINITIONS "SPABASE_LINKED_AS_STATIC_LIBRARY")
  99. add_subdirectory(test)
  100. endif()
  101. if(MSVC)
  102. install(TARGETS ${MODULE_NAME}
  103. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries
  104. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
  105. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries
  106. )
  107. else()
  108. install(TARGETS ${MODULE_NAME}
  109. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
  110. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  111. LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
  112. COMPONENT libraries)
  113. endif(MSVC)
  114. if (WITH_PDB_SAVE AND MSVC AND BUILD_SHARED_LIBS)
  115. install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols)
  116. endif()