set(MODULE_NAME "spbase") set(MODULE_PREFIX "SPBASE") file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.c" "*.hpp") list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS "SpVitualDevice.h" "SpVirtualDevice.cpp" "testInherits.cpp" "Console.h" "Console.cpp" "sp_hcc.h" # no used anywhere "sp_hcc.c" ) if(MSVC) list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS "sp_dbg.c" "sp_tbs_unix.cpp" ) list(APPEND ${MODULE_PREFIX}_SRCS SpBase.rc) else() list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS "CodeSignVerify.cpp" "PadMisc.cpp" "SpBaseRoutine.h" "SpBaseRoutine.cpp" #"SpSecureClient.cpp" # remove this file temporary. #"spShareMemoryBase.h" #"spShareMemoryBase.cpp" "sp_checkEntity.cpp" "sp_checkEntity.h" "sp_groupProcess.cpp" "sp_groupProcess.h" #"sp_runTask.cpp" "sp_sps.c" #silverlight "sp_dbg.cpp" "sp_dbg.h" "sp_tbs_win.cpp" "sp_firewallControl.cpp" ) endif(MSVC) list(APPEND ${MODULE_PREFIX}_SRCS ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4/uuid4.cpp) #list(APPEND ${MODULE_PREFIX}_SRCS ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4/uuid.cpp) set(SPBASE_VERSION_STRING "1.1.1-dev2") rvc_set_win_dll_ver(${MODULE_PREFIX} ${SPBASE_VERSION_STRING}) list(APPEND ${MODULE_PREFIX}_LIBS libtoolkit RVCComm) if(WIN32) #add_definitions(-DSPBASE_EXPORTS -DSCEW_DLL) list(APPEND ${MODULE_PREFIX}_LIBS psapi imagehlp ws2_32) list(APPEND ${MODULE_PREFIX}_LIBS Version WinTrust Crypt32 # for CodeSignVerify DbgHelp #for SpBase.cpp GdiPlus #for GUI ) else() list(APPEND ${MODULE_PREFIX}_LIBS winpr) endif(WIN32) add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS}) set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "d") target_include_directories(${MODULE_NAME} PRIVATE ${RVC_COMMON_INCLUDE_DIR} ${RVC_TOOLKIT_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CONAN_INCLUDE_DIRS_JSONCPP} ${RVCFRAMEWORK_SOURCES_DIR}/RvcLogSdk ${RVCFRAMEWORK_SOURCES_DIR}/RvcRestfulSdk ${CMAKE_SOURCE_DIR}/ThirdParty/Include/uuid4 ) target_link_directories(${MODULE_NAME} PRIVATE ${CONAN_LIB_DIRS_JSONCPP} ) if(MSVC) target_compile_definitions(${MODULE_NAME} PRIVATE "-DSPBASE_EXPORTS") set(OTHER_LIBS "comsupp") else() set(OTHER_LIBS "") endif(MSVC) target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${${MODULE_PREFIX}_LIBS} ${PRIVATE_KEYWORD} ${CONAN_LIBS_JSONCPP} ${PRIVATE_KEYWORD} RVCLogSDK ${PRIVATE_KEYWORD} RVCRestfulSDK ${PRIVATE_KEYWORD} ${OTHER_LIBS} ) # target_add_cppcheck(${MODULE_NAME} FORCE_CHECK) if (BUILD_TESTING) add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS}) target_include_directories(${MODULE_NAME}_a PRIVATE ${RVC_COMMON_INCLUDE_DIR} ${RVC_TOOLKIT_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CONAN_INCLUDE_DIRS_JSONCPP}/json ${RVCFRAMEWORK_SOURCES_DIR}/RvcLogSdk ${RVCFRAMEWORK_SOURCES_DIR}/RvcRestfulSdk ) target_link_directories(${MODULE_NAME}_a PRIVATE ${CONAN_LIB_DIRS_JSONCPP} ) target_link_libraries(${MODULE_NAME}_a PRIVATE ${${MODULE_PREFIX}_LIBS} ${CONAN_LIBS_JSONCPP} RVCLogSDK RVCRestfulSDK) set_target_properties(${MODULE_NAME}_a PROPERTIES COMPILE_DEFINITIONS "SPABASE_LINKED_AS_STATIC_LIBRARY") add_subdirectory(test) endif() if(MSVC) 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 ) else() install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" LIBRARY DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries) endif(MSVC) if (WITH_PDB_SAVE AND MSVC AND BUILD_SHARED_LIBS) install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols) endif()