I don't see how creating a new host-tool is an improvement over using OS builtins?
On 2015-03-29 03:53, [email protected] wrote: > Author: hbelusca > Date: Sun Mar 29 01:53:10 2015 > New Revision: 66946 > > URL: http://svn.reactos.org/svn/reactos?rev=66946&view=rev > Log: > [CMAKE] > Improve the concatenate_files macro introduced by Timo in r52179 + r52182 and > hackfixed in r53914 . Notice that now it can take an arbitrary number of > files to be concatenated. Hence you need to specify first the output file, > and all the rest is the different files. > > [FREELDR] > Use the improved concatenate_files macro. > > Modified: > trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt > trunk/reactos/cmake/CMakeMacros.cmake > > Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt?rev=66946&r1=66945&r2=66946&view=diff > ============================================================================== > --- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] (original) > +++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] Sun Mar 29 > 01:53:10 2015 > @@ -226,10 +226,13 @@ > add_dependencies(freeldr_pe asm) > add_dependencies(freeldr_pe_dbg asm) > > +# Retrieve the full path to the generated file of the 'freeldr_pe' target > +get_target_property(_freeldr_pe_output_file freeldr_pe LOCATION) > + > concatenate_files( > + ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys > ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin > - freeldr_pe > - ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys) > + ${_freeldr_pe_output_file}) > > add_custom_target(freeldr ALL DEPENDS > ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys) > > @@ -238,9 +241,9 @@ > add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys > DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR livecd hybridcd NAME_ON_CD > setupldr.sys) > > concatenate_files( > + ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys > ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin > - freeldr_pe > - ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys) > + ${_freeldr_pe_output_file}) > > add_custom_target(setupldr ALL DEPENDS > ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys) > add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys > DESTINATION loader NO_CAB FOR bootcd regtest) > > Modified: trunk/reactos/cmake/CMakeMacros.cmake > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/CMakeMacros.cmake?rev=66946&r1=66945&r2=66946&view=diff > ============================================================================== > --- trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] (original) > +++ trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] Sun Mar 29 > 01:53:10 2015 > @@ -504,33 +504,12 @@ > endfunction() > endif() > > -if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") > - macro(to_win_path _cmake_path _native_path) > - string(REPLACE "/" "\\" ${_native_path} "${_cmake_path}") > - endmacro() > - > - # yeah the parameter mess sucks, but thats what works... > - function(concatenate_files _file1 _target2 _output) > - get_target_property(_file2 ${_target2} LOCATION) > - to_win_path("${_file1}" _real_file1) > - to_win_path("${_file2}" _real_file2) > - to_win_path("${_output}" _real_output) > - add_custom_command( > - OUTPUT ${_output} > - COMMAND cmd.exe /C "copy /Y /B ${_real_file1} + ${_real_file2} > ${_real_output} > nul" > - DEPENDS ${_file1} > - DEPENDS ${_target2}) > - endfunction() > -else() > - macro(concatenate_files _file1 _target2 _output) > - get_target_property(_file2 ${_target2} LOCATION) > - add_custom_command( > - OUTPUT ${_output} > - COMMAND cat ${_file1} ${_file2} > ${_output} > - DEPENDS ${_file1} > - DEPENDS ${_target2}) > - endmacro() > -endif() > +macro(concatenate_files _output) > + add_custom_command( > + OUTPUT ${_output} > + COMMAND native-cat ${ARGN} > ${_output} > + DEPENDS ${ARGN} native-cat) > +endmacro() > > function(add_importlibs _module) > add_dependency_node(${_module}) > > _______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev
