Browse Source

Z991239-632 #comment feature: 支持linux下安装后直接运行

gifur 5 năm trước cách đây
mục cha
commit
f384f2ea4f

+ 4 - 3
CMakeLists.txt

@@ -32,6 +32,7 @@ include(CheckIncludeFiles)
 include(CheckSymbolExists)
 include(ConfigOptions)
 include(GetGitRevisionDescription)
+include(ComplexLibrary)
 
 # include path enviroment for RVC
 include(BuildMakeSettings)
@@ -264,9 +265,9 @@ set(RVC_CONFIG_PATH    "${PACK_INSTALL_PREFIX_CUR_VER}/cfg")
 set(RVC_VENDOR_PATH  "${PACK_INSTALL_PREFIX_CUR_VER}/dep")
 set(RVC_SHARED_PATH   "${PACK_INSTALL_PREFIX_CUR_VER}/share")
 
-set(CMAKE_INSTALL_INCLUDEDIR ${RVC_INCLUDE_PATH})
-set(CMAKE_INSTALL_LIBDIR           ${RVC_LIBRARY_PATH})
-set(CMAKE_INSTALL_BINDIR          ${RVC_RUNTIME_PATH})
+#set(CMAKE_INSTALL_INCLUDEDIR ${RVC_INCLUDE_PATH})
+#set(CMAKE_INSTALL_LIBDIR           ${RVC_LIBRARY_PATH})
+#set(CMAKE_INSTALL_BINDIR          ${RVC_RUNTIME_PATH})
 
 set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_GENERATOR_PLATFORM}-${BUILD_TYPE_NAME}")
 set(CPACK_TOPLEVEL_TAG "${CMAKE_SYSTEM_NAME}-${CMAKE_GENERATOR_PLATFORM}-${BUILD_TYPE_NAME}")

+ 18 - 0
Common/SpUtility.hpp

@@ -5,6 +5,8 @@
 
 #include <algorithm>
 #include <cctype>
+#include <iomanip>
+#include <sstream>
 #include <time.h>
 #include "toolkit.h"
 
@@ -101,6 +103,22 @@ namespace SP {
 			return replaced;
 		}
 
+		template<typename T>
+		std::string fpToString(T value, int precision) {
+			std::ostringstream oss;
+			oss << std::setprecision(precision)
+				<< std::fixed
+				<< value;
+			std::string d = oss.str();
+			std::size_t i = d.find_last_not_of('0');
+			if (i != std::string::npos && i != d.size() - 1) {
+				if (d[i] == '.')
+					i++;
+				d = d.substr(0, i + 1);
+			}
+			return d;
+		}
+
 		inline std::string ExtractClassName(std::string const& className) 
 		{
 			std::string strClassName = className;

+ 13 - 5
DevAdapter/test/cardswiper/CMakelists.txt

@@ -25,8 +25,16 @@ if(SIMULATE_DEV_AND_TEST_TEMP)
     PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/dep")
 endif(SIMULATE_DEV_AND_TEST_TEMP)
 
-install(TARGETS ${MODULE_FULL_NAME} 
-RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
-ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
-LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-COMPONENT devadapters)
+if(MSVC)
+    install(TARGETS ${MODULE_FULL_NAME} 
+        RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+        COMPONENT devadapters)
+else(MSVC)
+    install(TARGETS ${MODULE_FULL_NAME} 
+        RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_VENDOR_PATH}"
+        COMPONENT devadapters)
+endif(MSVC)

+ 15 - 5
DevAdapter/test/pinpad/CMakeLists.txt

@@ -29,8 +29,18 @@ if(SIMULATE_DEV_AND_TEST_TEMP)
     PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/dep")
 endif(SIMULATE_DEV_AND_TEST_TEMP)
 
-install(TARGETS ${MODULE_FULL_NAME} 
-RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
-ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
-LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-COMPONENT devadapters)
+
+
+if(MSVC)
+    install(TARGETS ${MODULE_FULL_NAME} 
+        RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+        COMPONENT devadapters)
+else(MSVC)
+    install(TARGETS ${MODULE_FULL_NAME} 
+        RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_VENDOR_PATH}"
+        COMPONENT devadapters)
+endif(MSVC)

+ 9 - 1
Other/libpublicFun/CMakeLists.txt

@@ -16,10 +16,18 @@ target_include_directories(${MODULE_NAME} PRIVATE
 
 target_compile_definitions(${MODULE_NAME} PUBLIC "LIBPUBLICFUN_EXPORTS")
 
-install(TARGETS ${MODULE_NAME} 
+if(MSVC)
+	install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     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)
 
 

+ 9 - 1
RVCComm/CMakeLists.txt

@@ -50,11 +50,19 @@ if (BUILD_TESTING)
 	add_subdirectory(test)
 endif()
 
-install(TARGETS ${MODULE_NAME} 
+if(MSVC)
+	install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     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_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
     install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)

+ 15 - 92
addin/cmake/ComplexLibrary.cmake

@@ -1,94 +1,17 @@
 
-
-include(EchoTarget)
-include(CMakeParseArguments)
-
-# - add a new library to a module for export
-#  MODULE - module the library belongs to
-#  LIBNAME - name of the library
-#   - if MODULE isn't set the NAME should must be in the form MODULE-NAME
-function(export_complex_library)
-	set(PREFIX "EXPORT_COMPLEX_LIBRARY")
-	cmake_parse_arguments(${PREFIX}
-			""
-			"LIBNAME;MODULE"
-			""
-			${ARGN})
-
-	if (NOT ${PREFIX}_LIBNAME)
-		message(FATAL_ERROR "export_complex_library requires a name to be set")
-	endif()
-	if (NOT ${PREFIX}_MODULE)
-		# get the module prefix and remove it from libname
-		string(REPLACE "-" ";" LIBNAME_LIST "${${PREFIX}_LIBNAME}")
-		list(GET LIBNAME_LIST 0 MODULE)
-		list(REMOVE_AT LIBNAME_LIST 0)
-		string(REPLACE ";" "-" LIBNAME "${LIBNAME_LIST}")
-	else()
-		set(MODULE ${${PREFIX}_MODULE})
-		set(LIBNAME ${${PREFIX}_LIBNAME})
-	endif()
-	if (NOT MODULE)
-		message(FATAL_ERROR "export_complex_library couldn't identify MODULE")
-	endif()
-	get_property(MEXPORTS GLOBAL PROPERTY ${MODULE}_EXPORTS)
-	list(APPEND MEXPORTS ${LIBNAME})
-	set_property(GLOBAL PROPERTY ${MODULE}_EXPORTS "${MEXPORTS}")
-endfunction(export_complex_library)
-
-macro(add_complex_library)
-
-	set(PREFIX "COMPLEX_LIBRARY")
-	
-	cmake_parse_arguments(${PREFIX}
-		"EXPORT"
-		"MODULE;TYPE;MONOLITHIC"
-		"SOURCES"
-		${ARGN})
-
-	string(TOUPPER "${${PREFIX}_MODULE}_TYPE" ${PREFIX}_TYPE_OPTION)
-	string(REGEX REPLACE "-" "_" ${PREFIX}_TYPE_OPTION ${${PREFIX}_TYPE_OPTION})
-
-	if(${${PREFIX}_MONOLITHIC})
-		add_library(${${PREFIX}_MODULE} ${${PREFIX}_TYPE} ${${PREFIX}_SOURCES})
-	else()
-		if (NOT DEFINED ${${PREFIX}_TYPE_OPTION})
-			add_library(${${PREFIX}_MODULE} ${${PREFIX}_SOURCES})
-		else()
-			add_library(${${PREFIX}_MODULE} ${${${PREFIX}_TYPE_OPTION}} ${${PREFIX}_SOURCES})
-		endif()
-	endif()
-	if (${PREFIX}_EXPORT)
-		export_complex_library(LIBNAME ${${PREFIX}_MODULE})
-	endif()
-
-endmacro(add_complex_library)
-
-if(${CMAKE_VERSION} VERSION_GREATER 2.8.8)
-	set(CMAKE_OBJECT_TARGET_SUPPORT 1)
-endif()
-
-function(create_object_cotarget target)
-
-	set(cotarget "${target}-objects")
-
-	get_target_property(${target}_TYPE ${target} TYPE)
-
-	if(NOT ((${target}_TYPE MATCHES "SHARED_LIBRARY") OR (${target}_TYPE MATCHES "SHARED_LIBRARY")))
-		return()
-	endif()
-
-	get_target_property(${target}_SOURCES ${target} SOURCES)
-	get_target_property(${target}_LINK_LIBRARIES ${target} LINK_LIBRARIES)
-	get_target_property(${target}_INCLUDE_DIRECTORIES ${target} INCLUDE_DIRECTORIES)
-
-	add_library(${cotarget} "OBJECT" ${${target}_SOURCES})
-
-	set_target_properties(${cotarget} PROPERTIES LINK_LIBRARIES "${${target}_LINK_LIBRARIES}")
-	set_target_properties(${cotarget} PROPERTIES INCLUDE_DIRECTORIES "${${target}_INCLUDE_DIRECTORIES}")
-
-	echo_target(${target})
-	echo_target(${cotarget})
-
-endfunction()
+macro(rvc_install_library _target _runtime_path, _archive_path _library_path _component)
+	if(MSVC)
+		    install(TARGETS ${_target} 
+				RUNTIME DESTINATION "${_runtime_path}"
+				ARCHIVE DESTINATION "${_archive_path}"
+				LIBRARY DESTINATION "${_library_path}"
+				COMPONENT ${_component})
+	else(MSVC)
+			install(TARGETS ${_target} 
+				RUNTIME DESTINATION "${_runtime_path}"
+				ARCHIVE DESTINATION "${_archive_path}"
+				LIBRARY DESTINATION "${_runtime_path}"
+				COMPONENT ${_component})
+	endif(MSVC)
+endmacro(rvc_install_library)
 

+ 9 - 1
libtoolkit/CMakeLists.txt

@@ -110,11 +110,19 @@ if (BUILD_TESTING)
 
 endif()
 
-install(TARGETS ${MODULE_NAME} 
+if(MSVC)
+    install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     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_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
     install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)

+ 14 - 5
module/CMakeLists.txt

@@ -76,11 +76,20 @@ endmacro(add_module_libraries)
 # 设置实体的安装拷贝路径
 # 对于 Windows 设置实体项目工程在解决方案的节点
 macro(deploy_module _module_prefix _module_name)
-    install(TARGETS ${_module_name} 
-    RUNTIME DESTINATION "${RVC_MODULE_PATH}"
-    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
-    LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-    COMPONENT modules)
+
+    if(MSVC)
+        install(TARGETS ${_module_name} 
+        RUNTIME DESTINATION "${RVC_MODULE_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+        COMPONENT modules)
+    else(MSVC)
+        install(TARGETS ${_module_name} 
+        RUNTIME DESTINATION "${RVC_MODULE_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_MODULE_PATH}"
+        COMPONENT modules)
+    endif(MSVC)
 
     if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
         install(FILES ${RVC_PDB_BINARY_DIR}/${_module_name}.pdb 

+ 9 - 1
spbase/CMakeLists.txt

@@ -89,11 +89,19 @@ if (BUILD_TESTING)
 	add_subdirectory(test)
 endif()
 
-install(TARGETS ${MODULE_NAME} 
+if(MSVC)
+    install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     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_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
     install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)

+ 14 - 5
test/module/CMakeLists.txt

@@ -76,11 +76,20 @@ endmacro(add_module_libraries)
 # 设置实体的安装拷贝路径
 # 对于 Windows 设置实体项目工程在解决方案的节点
 macro(deploy_module _module_prefix _module_name)
-    install(TARGETS ${_module_name} 
-    RUNTIME DESTINATION "${RVC_MODULE_PATH}"
-    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
-    LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-    COMPONENT modules)
+
+    if(MSVC)
+        install(TARGETS ${_module_name} 
+        RUNTIME DESTINATION "${RVC_MODULE_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+        COMPONENT modules)
+    else(MSVC)
+        install(TARGETS ${_module_name} 
+        RUNTIME DESTINATION "${RVC_MODULE_PATH}"
+        ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+        LIBRARY DESTINATION "${RVC_MODULE_PATH}"
+        COMPONENT modules)
+    endif(MSVC)
 
     if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
         install(FILES ${RVC_PDB_BINARY_DIR}/${_module_name}.pdb 

+ 8 - 0
third_party/openssl-1.1.1d/crypto/CMakeLists.txt

@@ -317,8 +317,16 @@ endif()
 #    LIBRARY DESTINATION lib
 #    ARCHIVE DESTINATION lib )
 
+if(MSVC)
 install(TARGETS crypto
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
     COMPONENT libraries)
+else()
+install(TARGETS crypto
+    RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
+    COMPONENT libraries)
+endif(MSVC)

+ 13 - 4
third_party/openssl-1.1.1d/ssl/CMakeLists.txt

@@ -64,7 +64,16 @@ if( MSVC )
   endif()
 endif()
 
-install( TARGETS ssl
-    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
+if(MSVC)
+install(TARGETS ssl
+    RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+    COMPONENT libraries)
+else()
+install(TARGETS ssl
+    RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
+    COMPONENT libraries)
+endif(MSVC)

+ 9 - 1
third_party/scew/CMakeLists.txt

@@ -65,8 +65,16 @@ if(INSTALL_DEVELOP_FILES)
 	install(FILES ${scew_header} DESTINATION "${RVC_INCLUDE_PATH}/third_party/scew" COMPONENT headers)
 endif(INSTALL_DEVELOP_FILES)
 
+if(MSVC)
 install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
-	COMPONENT libraries)
+	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)

+ 13 - 3
third_party/scew/expat-2.1.0/CMakeLists.txt

@@ -63,9 +63,19 @@ endif(BUILD_shared)
 
 add_library(expat ${_SHARED} ${expat_SRCS})
 
-install(TARGETS expat RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-                      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-                      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+if(MSVC)
+install(TARGETS expat
+    RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
+	COMPONENT libraries)
+else()
+install(TARGETS expat
+    RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
+	COMPONENT libraries)
+endif(MSVC)
 
 set(prefix ${CMAKE_INSTALL_PREFIX})
 set(exec_prefix "\${prefix}/bin")

+ 9 - 1
winpr/libwinpr/CMakeLists.txt

@@ -145,11 +145,19 @@ target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${WINPR_LIBS_PRIVATE} ${
 
 
 #install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries EXPORT WinPRTargets)
-install(TARGETS ${MODULE_NAME} 
+if(MSVC)
+    install(TARGETS ${MODULE_NAME} 
     RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
     ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
     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_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
     get_target_property(OUTPUT_FILENAME ${MODULE_NAME} OUTPUT_NAME)