CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #project(spbase)
  2. set(MODULE_NAME "spbase")
  3. set(MODULE_PREFIX "SPBASE")
  4. file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.c")
  5. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  6. "SpVitualDevice.h"
  7. "SpVirtualDevice.cpp"
  8. "testInherits.cpp"
  9. "Console.h"
  10. "Console.cpp"
  11. "sp_hcc.h" # no used anywhere
  12. "sp_hcc.c"
  13. )
  14. if(MSVC)
  15. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  16. "sp_dbg.c"
  17. )
  18. else()
  19. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  20. "CodeSignVerify.cpp"
  21. "PadMisc.cpp"
  22. "SpBaseRoutine.h"
  23. "SpBaseRoutine.cpp"
  24. "SpSecureClient.cpp" # remove this file temporary.
  25. "spShareMemoryBase.h"
  26. "spShareMemoryBase.cpp"
  27. "sp_checkEntity.cpp"
  28. "sp_checkEntity.h"
  29. "sp_groupProcess.cpp"
  30. "sp_groupProcess.h"
  31. "sp_runTask.cpp"
  32. "sp_sps.c" #silverlight
  33. "sp_dbg.cpp"
  34. "sp_dbg.h"
  35. )
  36. endif(MSVC)
  37. include_directories(${PROJECT_BINARY_DIR}/spbase)
  38. if (WIN32)
  39. set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
  40. set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
  41. set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
  42. configure_file(
  43. ${CMAKE_SOURCE_DIR}/Version.rc.in
  44. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  45. @ONLY)
  46. set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  47. list(APPEND ${MODULE_PREFIX}_SRCS "spbase.rc")
  48. endif()
  49. list(APPEND ${MODULE_PREFIX}_LIBS libtoolkit RVCComm)
  50. if(WIN32)
  51. #add_definitions(-DSPBASE_EXPORTS -DSCEW_DLL)
  52. list(APPEND ${MODULE_PREFIX}_LIBS psapi imagehlp ws2_32 scew)
  53. list(APPEND ${MODULE_PREFIX}_LIBS
  54. Version WinTrust Crypt32 # for CodeSignVerify
  55. DbgHelp #for SpBase.cpp
  56. GdiPlus #for GUI
  57. )
  58. else()
  59. list(APPEND ${MODULE_PREFIX}_LIBS winpr scew)
  60. endif(WIN32)
  61. add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
  62. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Common)
  63. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../libtoolkit)
  64. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/scew/scew)
  65. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../third_party/scew/expat-2.1.0/lib)
  66. if(MSVC)
  67. target_compile_definitions(${MODULE_NAME} PRIVATE "-DSPBASE_EXPORTS" "-DSCEW_DLL")
  68. else()
  69. endif(MSVC)
  70. target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  71. if (BUILD_TESTING)
  72. add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
  73. target_link_libraries(${MODULE_NAME}_a ${${MODULE_PREFIX}_LIBS})
  74. set_target_properties(${MODULE_NAME}_a PROPERTIES COMPILE_DEFINITIONS "SPABASE_LINKED_AS_STATIC_LIBRARY")
  75. # target_compile_definitions(${MODULE_NAME}_a PRIVATE "-DSPABASE_LINKED_AS_STATIC_LIBRARY")
  76. add_subdirectory(test)
  77. endif()
  78. install(TARGETS ${MODULE_NAME}
  79. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
  80. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  81. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
  82. COMPONENT libraries)