using cmake -E for copy and mkdir in some macros
This commit is contained in:
@@ -425,55 +425,20 @@ if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xDarwin")
|
|||||||
set(__mac_host 1)
|
set(__mac_host 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
|
||||||
set(_add "")
|
|
||||||
if (${_is_dir})
|
|
||||||
set(_add "/")
|
|
||||||
endif()
|
|
||||||
file(TO_NATIVE_PATH "${_in_path}" ${_out_var})
|
|
||||||
string(REPLACE "//" "/" ${_out_var} "${${_out_var}}${_add}")
|
|
||||||
if (NOT "x${_out_dir}" STREQUAL "x")
|
|
||||||
string(LENGTH "${${_out_var}}" __sl)
|
|
||||||
math(EXPR __sl ${__sl}-1)
|
|
||||||
string(SUBSTRING "${${_out_var}}" 0 ${__sl} __substr)
|
|
||||||
get_filename_component(${_out_dir} "${__substr}" NAME)
|
|
||||||
#message("dirname src=\"${${_out_var}}\", len=${__sl} \"${__substr}\" = \"${${_out_dir}}\"")
|
|
||||||
endif()
|
|
||||||
string(REPLACE "/" "\\" ${_out_var} "${${_out_var}}")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(__make_dir _cmd _dest)
|
macro(__make_dir _cmd _dest)
|
||||||
if (__win_host)
|
set(${_cmd} ${${_cmd}} COMMAND cmake -E make_directory "${_dest}")
|
||||||
__make_win_path("${_dest}" __d 1 "")
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND if not exist "\"${__d}\"" mkdir "\"${__d}\"")
|
|
||||||
else()
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
|
||||||
endif()
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(__make_copy _cmd _dirs _files _dest)
|
macro(__make_copy _cmd _dirs _files _dest)
|
||||||
if (${_dirs} OR ${_files})
|
if (${_dirs} OR ${_files})
|
||||||
__make_dir(${_cmd} "${_dest}")
|
__make_dir(${_cmd} "${_dest}")
|
||||||
endif()
|
endif()
|
||||||
if (__win_host)
|
|
||||||
__make_win_path("${_dest}" _wdest 1 "")
|
|
||||||
foreach(_d ${${_dirs}})
|
foreach(_d ${${_dirs}})
|
||||||
__make_win_path("${_d}" _wsrc 1 _dirname)
|
set(${_cmd} ${${_cmd}} COMMAND cmake -E copy_directory "${_d}" "${_dest}/")
|
||||||
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r /e "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
|
||||||
endforeach()
|
endforeach()
|
||||||
foreach(_f ${${_files}})
|
foreach(_f ${${_files}})
|
||||||
__make_win_path("${_f}" _wsrc 0 "")
|
set(${_cmd} ${${_cmd}} COMMAND cmake -E copy "${_f}" "${_dest}/")
|
||||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
|
||||||
endforeach()
|
endforeach()
|
||||||
else()
|
|
||||||
foreach(_d ${${_dirs}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
foreach(_f ${${_files}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(__gather_deps _T _search_path_var _dep_libs_var _dep_libs_cs_var _added_)
|
macro(__gather_deps _T _search_path_var _dep_libs_var _dep_libs_cs_var _added_)
|
||||||
|
|||||||
Reference in New Issue
Block a user