So I found this thread below and tried the command at the promp (Win7): cmake -E tar xvf
CMake Error: Problem with tar_open(): No such file or directory CMake Error: Problem extracting tar: ${TARDIR}/mytar.tar cmake -E tar xvf openssl-0.9.8a.tar CMake Error: Problem with tar_open(): No such file or directory CMake Error: Problem extracting tar: openssl-0.9.8a.tar so I do a: CMake Error: cmake version 2.8.0 Usage: cmake -E [command] [arguments ...] Available commands: chdir dir cmd [args]... - run command in a given directory rename oldname newname - rename a file or directory (on one volume) copy file destination - copy file to destination (either file or directory) copy_if_different in-file out-file - copy file if input has changed copy_directory source destination - copy directory 'source' content to directory 'destination' compare_files file1 file2 - check if file1 is same as file2 echo [string]... - displays arguments as text echo_append [string]... - displays arguments as text but no new line environment - display the current enviroment make_directory dir - create a directory md5sum file1 [...] - compute md5sum of files remove_directory dir - remove a directory and its contents remove [-f] file1 file2 ... - remove the file(s), use -f to force it tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar archive time command [args] ... - run command and return elapsed time touch file - touch a file. touch_nocreate file - touch a file but do not create it. build build_dir - build the project in build_dir. write_regv key value - write registry value delete_regv key - delete registry value comspec - on windows 9x use this for RunCommand And I pay particular attention to tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar archive and notice no xvf option. Is tar xvf implemnted? If so why tar and no untar? Curious. Brian On 25. Mar, 2009, at 10:28, ankit jain wrote: 2009/3/25 Michael Wild <themiwi-re5jqeeqqe8avxtiumw...@public.gmane.org><themiwi-re5jqeeqqe8avxtiumw...@public.gmane.org> On 25. Mar, 2009, at 9:33, ankit jain wrote: 2009/3/25 Michael Wild <themiwi-re5jqeeqqe8avxtiumw...@public.gmane.org><themiwi-re5jqeeqqe8avxtiumw...@public.gmane.org> [...] What I usually do is this: add_custom_command( OUTPUT ${TARDIR}/t1 COMMAND ${CMAKE_COMMAND} -E tar xvf ${TARDIR}/mytar.tar WORKING_DIRECTORY ${TARDIR} COMMENT "Extracting ${TARDIR}/mytar.tar" VERBATIM ) add_custom_target( extract_mytar DEPENDS ${TARDIR}/t1 ) This tells CMake how to obtain the file ${TARDIR}/t1 by unpacking mytar.tar. Then it adds a target which depends on that file. You then can have other targets depend on that by using add_dependencies. Thanks for your suggestions it works but the problem is that iam making a library which requires some source files which will come after extracting it from tar. In that making an custom target for it and then add_dependencies to that library to this custom build target does not solve the purpose. then how to include those files which is required by the library which came from tar. if you add all the files from the tar archive to the OUTPUT list of add_custom_command, CMake should automatically set the GENERATED property of those file to TRUE. If you don't want to do that, you still can set that property manually, using e.g.: set_source_files_properties( ${TARDIR}/t1 ${TARDIR}/t2 PROPERTIES GENERATED TRUE ) you then can use those files in a normal add_library or add_executable command. if you use the first approach (listing all files in the OUTPUT list), you don't even need the custom target, since CMake then will know how to "create" these files (by invoking the custom command). Is there any way by which we just give the name of folder where files has extracted and add_library command will take it by some means it is becoz if we dont know what files will be genrated inside that folder or if there are large no.of files then listing them in OUTPUT is really cumbersome.. ankit you could use execute_process( COMMAND ${CMAKE_COMMAND} -E tar tf ${TARDIR}/mytar.tar OUTPUT_VARIABLE tar_files ) to get a list of files contained in the tar file. However, I don't recommend this. It is much safer to really write the files out. If it hurts your eyes to put it in the CMakeLists.txt file, you can put the list in e.g. a file called files.cmake and INCLUDE that one from your CMakeLists.txt. DON'T use file(GLOB ...) or similar. That's a pretty bad idea... Michael _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Brian J. Davis
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake