|
@@ -91,7 +91,14 @@ endif()
|
|
|
# Turn on solution folders (2.8.4+)
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
|
-set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install") # /${RVC_VERSION}
|
|
|
+# 在 Windows 下用 "/" 会报错
|
|
|
+STRING(REGEX REPLACE "^([A-Z]*.)([/\\].*)" "\\1" CURRENT_DISK "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
+message(STATUS "current disk: ${CURRENT_DISK}")
|
|
|
+set(OUTPUT_VERSION_PATH "${CURRENT_DISK}\\run\\version\\${RVC_VERSION}")
|
|
|
+message(STATUS "current OUTPUT_VERSION_PATH: ${OUTPUT_VERSION_PATH}")
|
|
|
+
|
|
|
+set(CMAKE_INSTALL_PREFIX "${OUTPUT_VERSION_PATH}")
|
|
|
+#set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install") # /${RVC_VERSION}
|
|
|
# 如果使用绝对路径,会导致 CPack 因 CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION 失败
|
|
|
# set(RVC_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include")
|
|
|
# set(RVC_LIBRARY_PATH "${CMAKE_INSTALL_LIBDIR}")
|
|
@@ -101,7 +108,23 @@ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install") # /${RVC_VERSION}
|
|
|
set(RVC_INCLUDE_PATH "include")
|
|
|
set(RVC_LIBRARY_PATH "lib")
|
|
|
set(RVC_RUNTIME_PATH "bin")
|
|
|
-set(RVC_MODULE_LIBRARY_PATH "mod")
|
|
|
+# set(RVC_MODULE_LIBRARY_PATH "${CMAKE_BINARY_DIR}/mod")
|
|
|
+
|
|
|
+macro(copy_output_on_build module_name output_subdir)
|
|
|
+ set(target_name ${module_name})
|
|
|
+ set(output_dir ${OUTPUT_VERSION_PATH}\\${output_subdir})
|
|
|
+ if(NOT EXISTS ${output_dir} OR NOT IS_DIRECTORY ${output_dir})
|
|
|
+
|
|
|
+ endif()
|
|
|
+ add_custom_command(TARGET ${target_name} PRE_BUILD
|
|
|
+ COMMAND ${CMAKE_COMMAND}
|
|
|
+ ARGS -E make_directory ${output_dir})
|
|
|
+ add_custom_command(TARGET ${target_name} POST_BUILD
|
|
|
+ COMMAND ${CMAKE_COMMAND} -E copy
|
|
|
+ $<TARGET_FILE:${target_name}>
|
|
|
+ ${OUTPUT_VERSION_PATH}/${output_subdir}
|
|
|
+ )
|
|
|
+endmacro(copy_output_on_build)
|
|
|
|
|
|
if (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_CONFIGURATION_TYPES STREQUAL Debug)
|
|
|
message(STATUS "debug type")
|
|
@@ -193,4 +216,11 @@ endif()
|
|
|
|
|
|
include(CPack)
|
|
|
|
|
|
+function(package_static_libs output_library)
|
|
|
+ get_target_property(libtype ${output_library} TYPE)
|
|
|
+ if(NOT libtype STREQUAL "STATIC_LIBRARY" OR NOT libtype STREQUAL "EXECUTABLE ")
|
|
|
+ message(FATAL_ERROR "can only process static library or execuate program.")
|
|
|
+ endif()
|
|
|
+ get_target_property(libfile ${output_library} LOCATION)
|
|
|
+endfunction()
|
|
|
|