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)
|
||||
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)
|
||||
if (__win_host)
|
||||
__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()
|
||||
set(${_cmd} ${${_cmd}} COMMAND cmake -E make_directory "${_dest}")
|
||||
endmacro()
|
||||
|
||||
macro(__make_copy _cmd _dirs _files _dest)
|
||||
if (${_dirs} OR ${_files})
|
||||
__make_dir(${_cmd} "${_dest}")
|
||||
endif()
|
||||
if (__win_host)
|
||||
__make_win_path("${_dest}" _wdest 1 "")
|
||||
foreach(_d ${${_dirs}})
|
||||
__make_win_path("${_d}" _wsrc 1 _dirname)
|
||||
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r /e "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cmake -E copy_directory "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
__make_win_path("${_f}" _wsrc 0 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cmake -E copy "${_f}" "${_dest}/")
|
||||
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()
|
||||
|
||||
macro(__gather_deps _T _search_path_var _dep_libs_var _dep_libs_cs_var _added_)
|
||||
|
||||
Reference in New Issue
Block a user